<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Nelson's Blog</title>
    <link>http://nelson.pixnet.net/blog</link>
    <description>Everything about computer applications and my stuffs.</description>
    <pubDate>Thu, 05 Nov 2015 16:18:38 +0800</pubDate>
    <lastBuildDate>Thu, 05 Nov 2015 16:18:38 +0800</lastBuildDate>
    <managingEditor>Nelson@not-valid.com (Nelson)</managingEditor>
    <copyright>Copyright 2003-2023 Nelson,Pixnet Digital Media Coporation. All rights reserved.</copyright>
    <generator>PIXNET Media Digital Coporation</generator>
    <language>zh</language>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>3600</ttl>
    <item>
      <title><![CDATA[必備的 Xcode plugins]]></title>
      <link>http://nelson.pixnet.net/blog/post/43036090</link>
      <guid>http://nelson.pixnet.net/blog/post/43036090</guid>
      <description><![CDATA[不得不說 Xcode 的功能跟其他 IDE 相比，真的挺陽春的，多虧網路上一堆熱心的開發者，幫忙開發了不少 plugins，稍稍補強了 Xcode 的功能。底下就列出我目前有用到的 plugins，當作一個備忘，也歡迎大家跟我分享好用的 plugins。

強烈推薦使用&nbsp;Alcatraz&nbsp;管理這些 plugins！


AutoHighlightSymbol
Xcode 有內建高亮度同一個變數的功能，但它所謂的高亮度只是為每個變數底部加上虛線，所以很難讓人注意到。這個 plugin 加強了原有的功能，當選中某個變數的時候，同一個變數都會自動加上背景高亮度。當想要追蹤某個變數在函式的哪些地方被用到時，這個 plugin 就會非常有用。另外這也是我寫的第一個 Xcode plugin :D

Backlight
高亮度當前列，這是很多編輯器都有的功能，不知道為何 Xcode 沒有內建。

BBUFullIssueNavigator&nbsp;(新版的 Xcode 已經不需要它了)
當有 issue 產生的時候，顯示完整的 issue 內容，而不是只有顯示前幾行。

BBUncrustifyPlugin-Xcode
支援 Uncrustify 跟 ClangFormat 這兩種程式碼整理工具，可以方便的讓程式碼擁有一致的風格。

DerivedData Exterminator
有時候 Xcode 會因為舊的 derived data 而有奇妙的問題，這個工具讓你可以快速的清除 derived data。

FuzzyAutocomplete
最好用的程式碼自動補完工具，能夠大幅減少打字的次數，加快開發速度。尤其 Objective-C 的程式碼通常都很長，有了這個工具之後真的差很多。

HTYCopyIssue
開發難免會出現 error，這個工具可以幫忙快速複製錯誤訊息，然後一鍵搜尋 Google 或 StackOverflow 有關這個錯誤的資訊。

IntelliPaste
讓你更方便的複製貼上 method 跟 RGB color。

KSImageNamed
自動補完圖片檔名，並且還提供圖片預覽功能，讓你不會選錯圖片。

MLAutoReplace
透過自訂的設定檔，可以自動取代某些字串，加快開發速度。

ColorSense for Xcode
方便預覽與輸入顏色的工具，調整 UI 的時候非常好用。

Dash Plugin for Xcode
將 Dash 整合到 Xcode，方便開發者查詢文件。

ProjectWindowName
它會改變 Project/Workspace window title，將 project name 附加到 file name 前面。如果你會同時開啟多個 project 或 workspace，這個工具能讓你輕鬆辨別每個檔案。

SCXcodeSwitchExpander
自動補完&nbsp;switch-case，減少許多打字次數，又可以避免漏打某個選項，非常方便。

SCXcodeTabSwitcher
用&nbsp;⌘cmd + [1..9]&nbsp;切換分頁。

VVDocumenter-Xcode
幫你快速產生註解，並且符合 appledoc，Doxygen，或 HeaderDoc 格式。

XcodePlus Delete Line
這個工具做的事情很簡單，就是透過熱鍵快速刪除一行或多行程式碼。

XReset
不用啟動模擬器就能重設模擬器的設定與內容。
]]></description>
      <content:encoded><![CDATA[<p>不得不說 Xcode 的功能跟其他 IDE 相比，真的挺陽春的，多虧網路上一堆熱心的開發者，幫忙開發了不少 plugins，稍稍補強了 Xcode 的功能。底下就列出我目前有用到的 plugins，當作一個備忘，也歡迎大家跟我分享好用的 plugins。
</p>
<p>強烈推薦使用&nbsp;<a href="http://alcatraz.io/">Alcatraz</a>&nbsp;管理這些 plugins！
</p>
<hr>
<h4><a href="https://github.com/chiahsien/AutoHighlightSymbol">AutoHighlightSymbol</a></h4>
<p>Xcode 有內建高亮度同一個變數的功能，但它所謂的高亮度只是為每個變數底部加上虛線，所以很難讓人注意到。這個 plugin 加強了原有的功能，當選中某個變數的時候，同一個變數都會自動加上背景高亮度。當想要追蹤某個變數在函式的哪些地方被用到時，這個 plugin 就會非常有用。另外這也是我寫的第一個 Xcode plugin :D
</p>
<h4><a href="https://github.com/limejelly/Backlight-for-XCode">Backlight</a></h4>
<p>高亮度當前列，這是很多編輯器都有的功能，不知道為何 Xcode 沒有內建。
</p>
<h4><del><a href="https://github.com/neonichu/BBUFullIssueNavigator">BBUFullIssueNavigator</a></del>&nbsp;(新版的 Xcode 已經不需要它了)</h4>
<p>當有 issue 產生的時候，顯示完整的 issue 內容，而不是只有顯示前幾行。
</p>
<h4><a href="https://github.com/benoitsan/BBUncrustifyPlugin-Xcode">BBUncrustifyPlugin-Xcode</a></h4>
<p>支援 Uncrustify 跟 ClangFormat 這兩種程式碼整理工具，可以方便的讓程式碼擁有一致的風格。
</p>
<h4><a href="https://github.com/kattrali/deriveddata-exterminator">DerivedData Exterminator</a></h4>
<p>有時候 Xcode 會因為舊的 derived data 而有奇妙的問題，這個工具讓你可以快速的清除 derived data。
</p>
<h4><a href="https://github.com/FuzzyAutocomplete/FuzzyAutocompletePlugin">FuzzyAutocomplete</a></h4>
<p>最好用的程式碼自動補完工具，能夠大幅減少打字的次數，加快開發速度。尤其 Objective-C 的程式碼通常都很長，有了這個工具之後真的差很多。
</p>
<h4><a href="https://github.com/hanton/CopyIssue-Xcode-Plugin">HTYCopyIssue</a></h4>
<p>開發難免會出現 error，這個工具可以幫忙快速複製錯誤訊息，然後一鍵搜尋 Google 或 StackOverflow 有關這個錯誤的資訊。
</p>
<h4><a href="https://github.com/RobertGummesson/IntelliPaste-for-XCode">IntelliPaste</a></h4>
<p>讓你更方便的複製貼上 method 跟 RGB color。
</p>
<h4><a href="https://github.com/ksuther/KSImageNamed-Xcode">KSImageNamed</a></h4>
<p>自動補完圖片檔名，並且還提供圖片預覽功能，讓你不會選錯圖片。
</p>
<h4><a href="https://github.com/molon/MLAutoReplace">MLAutoReplace</a></h4>
<p>透過自訂的設定檔，可以自動取代某些字串，加快開發速度。
</p>
<h4><a href="https://github.com/omz/ColorSense-for-Xcode">ColorSense for Xcode</a></h4>
<p>方便預覽與輸入顏色的工具，調整 UI 的時候非常好用。
</p>
<h4><a href="https://github.com/omz/Dash-Plugin-for-Xcode">Dash Plugin for Xcode</a></h4>
<p>將 Dash 整合到 Xcode，方便開發者查詢文件。
</p>
<h4><a href="https://github.com/sleifer/ProjectWindowName">ProjectWindowName</a></h4>
<p>它會改變 Project/Workspace window title，將 project name 附加到 file name 前面。如果你會同時開啟多個 project 或 workspace，這個工具能讓你輕鬆辨別每個檔案。
</p>
<h4><a href="https://github.com/stefanceriu/SCXcodeSwitchExpander">SCXcodeSwitchExpander</a></h4>
<p>自動補完&nbsp;<code>switch-case</code>，減少許多打字次數，又可以避免漏打某個選項，非常方便。
</p>
<h4><a href="https://github.com/stefanceriu/SCXcodeTabSwitcher">SCXcodeTabSwitcher</a></h4>
<p>用&nbsp;<code>⌘cmd + [1..9]</code>&nbsp;切換分頁。
</p>
<h4><a href="https://github.com/onevcat/VVDocumenter-Xcode">VVDocumenter-Xcode</a></h4>
<p>幫你快速產生註解，並且符合 appledoc，Doxygen，或 HeaderDoc 格式。
</p>
<h4><a href="https://github.com/payliu/XcodePlus">XcodePlus Delete Line</a></h4>
<p>這個工具做的事情很簡單，就是透過熱鍵快速刪除一行或多行程式碼。
</p>
<h4><a href="https://github.com/chroman/XReset">XReset</a></h4>
<p>不用啟動模擬器就能重設模擬器的設定與內容。
</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/43036090">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F43036090"></div>]]></content:encoded>
      <pubDate>Thu, 05 Nov 2015 16:18:38 +0800</pubDate>
      <category><![CDATA[未分類]]></category>
      <comments>http://nelson.pixnet.net/blog/post/43036090#comments</comments>
    </item>
    <item>
      <title><![CDATA[開發產品學到的一些事]]></title>
      <link>http://nelson.pixnet.net/blog/post/42931646</link>
      <guid>http://nelson.pixnet.net/blog/post/42931646</guid>
      <description><![CDATA[這幾年都在 start-up 打滾，跟著做了一些產品，也有一些小小心得，就紀錄下來跟各位分享討論。

不要一開始就寫程式
你（或你們公司）想到了一個好點子，這時你要做的第一件事是什麼？馬上捲起袖子把點子實作出來嗎？千萬不是！你們要做的第一件事是確認真的有客戶需要這個點子，而不是草率投入大量時間、人力、金錢成本，最後做出來的東西卻可能沒人要。

或許你會想說東西都還沒做出個雛形來，怎麼知道有沒有客戶呢？方法有很多種，例如你們可以把點子解釋給陌生人聽，看看對方的反應如何。或是先快速開發一個 landing page 來介紹你們的點子，並收集使用者的回饋。

確定真的有人需要這個點子，並且確定這個點子真的需要寫程式之後，再開始動手寫。

寫好 User Story
你可以不寫 Spec，但千萬不能沒寫 User Story。User Story 的寫法很簡單，長得大概就像這樣：「為了解決什麼問題，身為一個使用者，我希望在某種情況下，能夠做某件事」。

寫 User Story 有幾個好處：


	可以讓所有人都看得懂因為 User Story 就是用大家都明白的語言，把想要做的事寫出來，所以無論是不是技術背景的人，都可以看懂「為何需要這個功能、這個功能是為了解決什麼問題」。
	可以幫助整理思路因為你得把你在什麼情境底下想要完成什麼功能寫出來，在寫的過程當中就可以整理自己的思路，檢查這樣的需求是否合理。然後因為大家都能看懂，所以無論是否有技術背景的人，都可以一起來討論，這樣就可以幫忙找出盲點，並且完善整個需求。
	可以讓開發者用最適合的解法解決問題為什麼我會覺得不需要寫 Spec 呢，因為寫 Spec 的人不一定是要開發的人，所以很容易就寫出很莫名其妙的 Spec。更糟糕的是，有可能一開始就寫 Spec，少了互相討論完善的階段，結果最後整個歪掉。所以我會說不要寫 Spec，寫 User Story 就好，然後把 User Story 寫完整。有經驗的開發者看到 User Story 自然就會找出最適合的方式去解決問題。千萬不要外行領導內行，亂下指導棋。
	方便驗收既然 User Story 都寫得那麼完善了，要驗收的時候只要一一對照 User Story 就可以知道是否完成所有需求。對驗收人員來說，看 User Story 就會知道這個功能到底是什麼，也就代表很容易就能理解要驗收什麼。

一定要使用版本控制系統
版本控制系統的好處我就不多說了，無論是單打獨鬥或是團隊合作都應該要用版本控制系統。我個人最推薦的當然是&nbsp;Git，雖然它的入門門檻頗高，但熟悉它之後所帶來的好處真是讓人無法抗拒的。

近年來 Git 有越來越多好用的 GUI，已經大大降低初學者上手的難度，SourceTree、Tower、GitUp&nbsp;都是不錯的選擇。至於要如何將版本控制系統整合到你的開發流程，可以先參考&nbsp;Git Flow&nbsp;跟&nbsp;GitHub Flow，再逐步調整成適合你們團隊的作法。

有了版本控制，當然就得記得要下版本號，如果不知道該怎麼決定版本號，可以參考語意化版本號的作法。

不必一開始就寫測試
可能有些人覺得這是邪魔歪道，不過我真心這麼覺得：「你應該寫測試，但你不應該一開始就寫測試」。

身處在 start-up，無論前期的思慮有多麼周到，產品的需求還是很容易就會變更。如果採用「測試先行」的話，最後你會發現絕大多數開發的時間都拿去寫測試了，而且因為需求在前期很容易變更，所以你的測試也很容易一改再改因而難以重複使用。（P.S. 降低需求變更機率的一個方法就是好好寫 User story）

所以我會建議，等產品到達一定的穩定度之後（例如主要的功能或畫面都已經固定），再來補上測試。到時可以特地安排一段時間專心來寫測試，或是在需要重構程式的時候邊重構邊補上測試。

善用追蹤工具
做任何決定之前都要有所本，不要突然「通靈」了就做出莫名其妙的決策。那要根據什麼做決定呢？很簡單，讓數據說話。善用至少一款追蹤工具（GA、Mixpanel、Flurry、Kissmetrics、Keen IO、Customer.io、Segment&nbsp;等等）並在上線第一天就開始追蹤使用者的行為，這樣才能知道有多少使用者在用你的產品，以及如何用你的產品。總之，就是要透過數據收集與分析，來了解你的使用者。

日後當你要做 growth hacking 的時候，追蹤工具更是不可少，你會需要這些追蹤工具來幫你統計，看哪些修改會有助於你的業務成長，哪些修改反而會讓業務衰退，以及成長或衰退了多少。

如果有開發 APP 的話，你也會需要想辦法取得 crash log，這樣才知道程式掛在哪，我推薦使用&nbsp;Crashlytics&nbsp;幫你收集分析這些 crash log，它非常的好用。

愛用第三方元件
近年來 open source 越來越受到歡迎，網路上有各式各樣的第三方元件讓你取用，所以真的沒必要每一樣功能都自幹，如果有現成的可以符合你的需求，就大膽的用吧。再加上第三方元件的管理程式（像是蘋果開發者常用的&nbsp;CocoaPods&nbsp;跟&nbsp;Carthage）也越做越好，早期會遇到的第三方元件版本控管問題已經很少見了，所以我建議各位可以盡量用第三方元件，或是將第三方元件修改成符合自己需求，沒事不要自己造輪子。

方便的更新機制
隨著時間過去，你的產品需求一定會有所變化，該怎麼向後相容以及如何要求使用者升級就變成一件不得不面對的問題，這裡我有幾點建議讓你參考。


	設計 API 的時候要考慮版本化同一支 API 背後的商業邏輯很有可能會變化，如果一開始設計的時候沒有考慮版本化，你就會為了 API 名稱而大傷腦筋：可能原本的叫做&nbsp;checkout，後來叫做&nbsp;checkout_new，再後來叫做&nbsp;the_new_checkout。但如果一開始有考慮版本化的話，你就可以一開始叫做&nbsp;checkout/v1，後來叫做&nbsp;checkout/v2。或是直接改 API end point，例如一開始的 end point 是&nbsp;api.myserver.com/v1/，後來的是&nbsp;api.myserver.com/v2。
	呼叫 API 的時候附上環境參數雖然現在送 request 的時候，大部分都會在 header 附上 client 的一些資訊，但每個 client 送出的 request header 格式有可能並不統一，所以要 server 去 parse header 來取得所需資訊，其實成本蠻高的。比較方便的方法是，client 每次在呼叫 API 的時候就主動附帶一些參數讓 server 好判斷。例如可以送&nbsp;platform&nbsp;參數指明是&nbsp;ios / android / web，device&nbsp;指明是&nbsp;phone / tablet / desktop，version&nbsp;表示程式的版本等等。Server 就可以根據這些參數有不同的邏輯與回應資料，例如根據&nbsp;device&nbsp;回傳不同尺寸的圖片網址，或是根據&nbsp;version&nbsp;來得知對方是否使用最新版本。
	In-App Announcement如果一開始就有設計 in-app announcement 機制的話，就可以更輕易讓使用者得知最新消息。例如有新版本可以下載了，讓使用者知道有什麼新功能並引導使用者去下載。或是有在舉辦什麼活動的時候，也可以透過這個機制讓使用者知道（例如 Uber 時常會舉辦不同活動，車子圖示也會跟著變）。或是有什麼新貼圖、新佈景主題、新內容，也可以讓使用者知道（例如 Line 或各款遊戲）。
	儲存資料的時候要考慮版本化有很多時候我們必須儲存一些資料在本機，可能是透過寫入設定檔或是寫入資料庫，如果儲存資料的時候有考慮到版本化，之後要處理資料相容或是要將舊資料轉換成新資料的時候，都會相對簡單許多。

寫文件
所有人都知道寫文件的重要，但是大概沒人會喜歡寫文件，但其實文件沒那麼難寫。文件存在的理由是什麼？不就是為了日後的查詢參考嗎。

所以 User Story 就是文件的一部分，你一邊設計產品的同時，就一邊在寫文件了。這樣有沒有覺得寫 User Story 很划算，會不會更有動力寫好它！

程式碼註解也是文件的一種，現在有很多工具能夠將註解轉換成說明檔，日後只要註解有所變動，說明檔就會自動更新，這可以幫忙省下超多時間。像我們的後端都會在程式碼裡頭註解說明這支 API 的用途是什麼、傳入的參數是代表什麼意思、是什麼型態、是否可以不傳、回傳值是什麼、有可能產生哪些 error，對應的 error code 是什麼等等。我個人覺得，維護程式碼的註解比額外維護一份說明文件（可能是 wiki 或是 doc 等等）簡單多了。

文件也不是寫完丟在一旁就算了，它是讓人日後可以查詢參考的，所以最好可以把所有文件統一放在一個地方，然後有個方便的作法讓人查詢（可能是規劃良好的目錄結構，或是提供搜尋功能等等）。

簡單來說，文件有三大重點：要完整、要保持最新版本、要讓人找得到。

畫 Wireframe
通常設計師會畫好 wireframe 讓工程師知道整個使用流程，明白該從哪個畫面跳到哪個畫面。如果很不幸的，你們公司沒有這種東西（可能是不見了或根本就沒有），那 APP 開發工程師就認份一點自己畫一個吧。對工程師來說，畫這個並不難，只要把 APP 每個畫面都擷取下來，然後用箭頭把彼此之間的前後關係串起來就可以了。

擁有一份完整的 wireframe 的好處在於，當你們想要增刪或修改某些功能的時候，可以把 wireframe 拿出來，看看增刪或修改這個功能之後，整個使用流程是否順暢合理。千萬不要功能都做完，才發現流程變得卡卡的，這樣浪費的成本太高了。


老實說，就算每一點都做到了，也不保證你的產品會成功，但絕對會讓你開發一款新產品時比較不會走歪，就算歪了也可以早一點救回來，降低你犯錯的成本。
]]></description>
      <content:encoded><![CDATA[<p>這幾年都在 start-up 打滾，跟著做了一些產品，也有一些小小心得，就紀錄下來跟各位分享討論。
</p>
<h1>不要一開始就寫程式</h1>
<p>你（或你們公司）想到了一個好點子，這時你要做的第一件事是什麼？馬上捲起袖子把點子實作出來嗎？千萬不是！你們要做的第一件事是<strong><code>確認真的有客戶需要這個點子</code></strong>，而不是草率投入大量時間、人力、金錢成本，最後做出來的東西卻可能沒人要。
</p>
<p>或許你會想說東西都還沒做出個雛形來，怎麼知道有沒有客戶呢？方法有很多種，例如你們可以把點子解釋給陌生人聽，看看對方的反應如何。或是先快速開發一個 landing page 來介紹你們的點子，並收集使用者的回饋。
</p>
<p>確定真的有人需要這個點子，並且確定這個點子真的需要寫程式之後，再開始動手寫。
</p>
<h1>寫好 User Story</h1>
<p>你可以不寫 Spec，但千萬不能沒寫 User Story。User Story 的寫法很簡單，長得大概就像這樣：「為了解決什麼問題，身為一個使用者，我希望在某種情況下，能夠做某件事」。
</p>
<p>寫 User Story 有幾個好處：
</p>
<ol>
	<li>可以讓所有人都看得懂因為 User Story 就是用大家都明白的語言，把想要做的事寫出來，所以無論是不是技術背景的人，都可以看懂「為何需要這個功能、這個功能是為了解決什麼問題」。</li>
	<li>可以幫助整理思路因為你得把你在什麼情境底下想要完成什麼功能寫出來，在寫的過程當中就可以整理自己的思路，檢查這樣的需求是否合理。然後因為大家都能看懂，所以無論是否有技術背景的人，都可以一起來討論，這樣就可以幫忙找出盲點，並且完善整個需求。</li>
	<li>可以讓開發者用最適合的解法解決問題為什麼我會覺得不需要寫 Spec 呢，因為寫 Spec 的人不一定是要開發的人，所以很容易就寫出很莫名其妙的 Spec。更糟糕的是，有可能一開始就寫 Spec，少了互相討論完善的階段，結果最後整個歪掉。所以我會說不要寫 Spec，寫 User Story 就好，然後把 User Story 寫完整。有經驗的開發者看到 User Story 自然就會找出最適合的方式去解決問題。千萬不要外行領導內行，亂下指導棋。</li>
	<li>方便驗收既然 User Story 都寫得那麼完善了，要驗收的時候只要一一對照 User Story 就可以知道是否完成所有需求。對驗收人員來說，看 User Story 就會知道這個功能到底是什麼，也就代表很容易就能理解要驗收什麼。</li>
</ol>
<h1>一定要使用版本控制系統</h1>
<p>版本控制系統的好處我就不多說了，無論是單打獨鬥或是團隊合作都應該要用版本控制系統。我個人最推薦的當然是&nbsp;<a href="https://git-scm.com/">Git</a>，雖然它的入門門檻頗高，但熟悉它之後所帶來的好處真是讓人無法抗拒的。
</p>
<p>近年來 Git 有越來越多好用的 GUI，已經大大降低初學者上手的難度，<a href="https://www.sourcetreeapp.com/">SourceTree</a>、<a href="http://www.git-tower.com/">Tower</a>、<a href="http://gitup.co/">GitUp</a>&nbsp;都是不錯的選擇。至於要如何將版本控制系統整合到你的開發流程，可以先參考&nbsp;<a href="http://nvie.com/posts/a-successful-git-branching-model/">Git Flow</a>&nbsp;跟&nbsp;<a href="https://guides.github.com/introduction/flow/">GitHub Flow</a>，再逐步調整成適合你們團隊的作法。
</p>
<p>有了版本控制，當然就得記得要下版本號，如果不知道該怎麼決定版本號，可以參考<a href="http://semver.org/">語意化版本號</a>的作法。
</p>
<h1>不必一開始就寫測試</h1>
<p>可能有些人覺得這是邪魔歪道，不過我真心這麼覺得：「你應該寫測試，但你不應該一開始就寫測試」。
</p>
<p>身處在 start-up，無論前期的思慮有多麼周到，產品的需求還是很容易就會變更。如果採用「測試先行」的話，最後你會發現絕大多數開發的時間都拿去寫測試了，而且因為需求在前期很容易變更，所以你的測試也很容易一改再改因而難以重複使用。（P.S. 降低需求變更機率的一個方法就是好好寫 User story）
</p>
<p>所以我會建議，等產品到達一定的穩定度之後（例如主要的功能或畫面都已經固定），再來補上測試。到時可以特地安排一段時間專心來寫測試，或是在需要重構程式的時候邊重構邊補上測試。
</p>
<h1>善用追蹤工具</h1>
<p>做任何決定之前都要有所本，不要突然「通靈」了就做出莫名其妙的決策。那要根據什麼做決定呢？很簡單，讓數據說話。善用至少一款追蹤工具（<a href="http://www.google.com/intl/zh-TW/analytics/">GA</a>、<a href="https://mixpanel.com/">Mixpanel</a>、<a href="http://www.flurry.com/">Flurry</a>、<a href="https://kissmetrics.com/">Kissmetrics</a>、<a href="https://keen.io/">Keen IO</a>、<a href="http://customer.io/">Customer.io</a>、<a href="https://segment.com/">Segment</a>&nbsp;等等）並在上線第一天就開始追蹤使用者的行為，這樣才能知道有多少使用者在用你的產品，以及如何用你的產品。總之，就是要透過數據收集與分析，來了解你的使用者。
</p>
<p>日後當你要做 growth hacking 的時候，追蹤工具更是不可少，你會需要這些追蹤工具來幫你統計，看哪些修改會有助於你的業務成長，哪些修改反而會讓業務衰退，以及成長或衰退了多少。
</p>
<p>如果有開發 APP 的話，你也會需要想辦法取得 crash log，這樣才知道程式掛在哪，我推薦使用&nbsp;<a href="https://try.crashlytics.com/">Crashlytics</a>&nbsp;幫你收集分析這些 crash log，它非常的好用。
</p>
<h1>愛用第三方元件</h1>
<p>近年來 open source 越來越受到歡迎，網路上有各式各樣的第三方元件讓你取用，所以真的沒必要每一樣功能都自幹，如果有現成的可以符合你的需求，就大膽的用吧。再加上第三方元件的管理程式（像是蘋果開發者常用的&nbsp;<a href="https://cocoapods.org/">CocoaPods</a>&nbsp;跟&nbsp;<a href="https://github.com/Carthage/Carthage">Carthage</a>）也越做越好，早期會遇到的第三方元件版本控管問題已經很少見了，所以我建議各位可以盡量用第三方元件，或是將第三方元件修改成符合自己需求，沒事不要自己造輪子。
</p>
<h1>方便的更新機制</h1>
<p>隨著時間過去，你的產品需求一定會有所變化，該怎麼向後相容以及如何要求使用者升級就變成一件不得不面對的問題，這裡我有幾點建議讓你參考。
</p>
<ul>
	<li>設計 API 的時候要考慮版本化同一支 API 背後的商業邏輯很有可能會變化，如果一開始設計的時候沒有考慮版本化，你就會為了 API 名稱而大傷腦筋：可能原本的叫做&nbsp;<code>checkout</code>，後來叫做&nbsp;<code>checkout_new</code>，再後來叫做&nbsp;<code>the_new_checkout</code>。但如果一開始有考慮版本化的話，你就可以一開始叫做&nbsp;<code>checkout/v1</code>，後來叫做&nbsp;<code>checkout/v2</code>。或是直接改 API end point，例如一開始的 end point 是&nbsp;<code>api.myserver.com/v1/</code>，後來的是&nbsp;<code>api.myserver.com/v2</code>。</li>
	<li>呼叫 API 的時候附上環境參數雖然現在送 request 的時候，大部分都會在 header 附上 client 的一些資訊，但每個 client 送出的 request header 格式有可能並不統一，所以要 server 去 parse header 來取得所需資訊，其實成本蠻高的。比較方便的方法是，client 每次在呼叫 API 的時候就主動附帶一些參數讓 server 好判斷。例如可以送&nbsp;<code>platform</code>&nbsp;參數指明是&nbsp;<code>ios / android / web</code>，<code>device</code>&nbsp;指明是&nbsp;<code>phone / tablet / desktop</code>，<code>version</code>&nbsp;表示程式的版本等等。Server 就可以根據這些參數有不同的邏輯與回應資料，例如根據&nbsp;<code>device</code>&nbsp;回傳不同尺寸的圖片網址，或是根據&nbsp;<code>version</code>&nbsp;來得知對方是否使用最新版本。</li>
	<li>In-App Announcement如果一開始就有設計 in-app announcement 機制的話，就可以更輕易讓使用者得知最新消息。例如有新版本可以下載了，讓使用者知道有什麼新功能並引導使用者去下載。或是有在舉辦什麼活動的時候，也可以透過這個機制讓使用者知道（例如 Uber 時常會舉辦不同活動，車子圖示也會跟著變）。或是有什麼新貼圖、新佈景主題、新內容，也可以讓使用者知道（例如 Line 或各款遊戲）。</li>
	<li>儲存資料的時候要考慮版本化有很多時候我們必須儲存一些資料在本機，可能是透過寫入設定檔或是寫入資料庫，如果儲存資料的時候有考慮到版本化，之後要處理資料相容或是要將舊資料轉換成新資料的時候，都會相對簡單許多。</li>
</ul>
<h1>寫文件</h1>
<p>所有人都知道寫文件的重要，但是大概沒人會喜歡寫文件，但其實文件沒那麼難寫。文件存在的理由是什麼？不就是為了日後的查詢參考嗎。
</p>
<p>所以 User Story 就是文件的一部分，你一邊設計產品的同時，就一邊在寫文件了。這樣有沒有覺得寫 User Story 很划算，會不會更有動力寫好它！
</p>
<p>程式碼註解也是文件的一種，現在有很多工具能夠將註解轉換成說明檔，日後只要註解有所變動，說明檔就會自動更新，這可以幫忙省下超多時間。像我們的後端都會在程式碼裡頭註解說明這支 API 的用途是什麼、傳入的參數是代表什麼意思、是什麼型態、是否可以不傳、回傳值是什麼、有可能產生哪些 error，對應的 error code 是什麼等等。我個人覺得，維護程式碼的註解比額外維護一份說明文件（可能是 wiki 或是 doc 等等）簡單多了。
</p>
<p>文件也不是寫完丟在一旁就算了，它是讓人日後可以查詢參考的，所以最好可以把所有文件統一放在一個地方，然後有個方便的作法讓人查詢（可能是規劃良好的目錄結構，或是提供搜尋功能等等）。
</p>
<p>簡單來說，文件有三大重點：要完整、要保持最新版本、要讓人找得到。
</p>
<h1>畫 Wireframe</h1>
<p>通常設計師會畫好 wireframe 讓工程師知道整個使用流程，明白該從哪個畫面跳到哪個畫面。如果很不幸的，你們公司沒有這種東西（可能是不見了或根本就沒有），那 APP 開發工程師就認份一點自己畫一個吧。對工程師來說，畫這個並不難，只要把 APP 每個畫面都擷取下來，然後用箭頭把彼此之間的前後關係串起來就可以了。
</p>
<p>擁有一份完整的 wireframe 的好處在於，當你們想要增刪或修改某些功能的時候，可以把 wireframe 拿出來，看看增刪或修改這個功能之後，整個使用流程是否順暢合理。千萬不要功能都做完，才發現流程變得卡卡的，這樣浪費的成本太高了。
</p>
<hr>
<p>老實說，就算每一點都做到了，也不保證你的產品會成功，但絕對會讓你開發一款新產品時比較不會走歪，就算歪了也可以早一點救回來，降低你犯錯的成本。<br>
</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/42931646">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F42931646"></div>]]></content:encoded>
      <pubDate>Wed, 07 Oct 2015 17:57:49 +0800</pubDate>
      <category><![CDATA[未分類]]></category>
      <comments>http://nelson.pixnet.net/blog/post/42931646#comments</comments>
    </item>
    <item>
      <title><![CDATA[如何正確設定 AFNetworking 的安全連線]]></title>
      <link>http://nelson.pixnet.net/blog/post/42329797</link>
      <guid>http://nelson.pixnet.net/blog/post/42329797</guid>
      <description><![CDATA[TL;DR
前一陣子 AFNetworking 被爆出存在安全性漏洞，它們也針對這件事情發出聲明稿。
簡單的說，就是建議開發者使用最新版的 AFNetworking，並且啟用安全連線。不過它們也承認這一部份的說明文件沒有寫得很齊全，所以困擾了不少開發者。
今天花了一點時間研究，順手把它記錄下來。安全相關的東西不是我的專長，所以如果有任何錯誤的地方，請留言告訴我。

取得安全憑證
1. 確認有使用安全連線
如果你跟遠端伺服器是透過 HTTP 連線，那就不是安全連線，如果是 HTTPS 那就是安全連線。
2. 準備好網站的安全憑證
接下來我們需要憑證檔(Certification file)，它的副檔名是 .cer，你可以跟你們的網站管理員詢問，通常他們都知道怎麼拿到這個檔案。
如果你的網站管理員沒有 .cer 檔，只有 .crt 檔，那你可以透過以下這行指令轉檔，要注意的是它是採用 DER 編碼格式（請自行將 myWebsite 替換成你想要的名字）：
openssl x509 -in myWebsite.crt -out myWebsite.cer -outform der
如果很不幸的，你的網站管理員連 .crt 檔都沒有，那你也可以使用下列這一整行指令從你們的網站取得憑證（請自行將 www.mywebsite.com 替換成你們的網址）：
openssl s_client -connect www.mywebsite.com:443 &lt;/dev/null 2&gt;/dev/null | openssl x509 -outform DER &gt; myWebsite.cer
現在你有一個憑證檔了。
3. 將憑證加入你的專案
將你的憑證拖拉放到 Xcode 專案底下，記得要把 Copy items if needed 跟 Add to targets 打勾。

好了，事前準備都做完，接著我們來設定 AFNetworking。
設定 AFNetworking
1. Pinning Mode
AFNetworking 的安全相關設定放在 AFSecurityPolicy，它定義了三種 SSL Pinning Mode:

/*
 `AFSSLPinningModeNone`
 Do not used pinned certificates to validate servers.

 `AFSSLPinningModePublicKey`
 Validate host certificates against public keys of pinned certificates.

 `AFSSLPinningModeCertificate`
 Validate host certificates against pinned certificates.
*/
typedef NS_ENUM(NSUInteger, AFSSLPinningMode) {
    AFSSLPinningModeNone,
    AFSSLPinningModePublicKey,
    AFSSLPinningModeCertificate,
};


關於 pinning mode 詳細的說明可以參考這篇文章，簡單的說就是你可以將憑證跟你的 APP 一起打包，藉由此機制來避免中間人偽造憑證的風險。

AFSSLPinningModeNone : 你不必將憑證跟你的 APP 一起打包，完全信任伺服器的憑證
AFSSLPinningModeCertificate : 比對伺服器憑證跟你的憑證是否完全匹配
AFSSLPinningModePublicKey : 只比對伺服器憑證的 public key 跟你的憑證的 public key 是否匹配

那要選用何種模式比較好呢？
AFSSLPinningModeCertificate 比較安全但也比較麻煩，它會比對你打包的憑證跟伺服器的憑證是否一致。因為你的憑證是跟 APP 一起打包的，這也就代表說如果你的憑證過期了或是變動了，你就得出一版新的 APP 而且舊版 APP 的憑證就失效了。你也可以在每次 APP 啟動時，就自動連到某個伺服器下載最新的憑證，不過此時這個下載連線就會是有風險的。
AFSSLPinningModePublicKey 則是只有比對憑證裡的 public key，所以即使伺服器憑證有所變動，只要 public key 不變，就能通過驗證。
所以如果你能確保每個使用者總是使用最新版本的 APP（例如是公司企業內部專用的），那就可以考慮 AFSSLPinningModeCertificate，否則的話選擇 AFSSLPinningModePublicKey 是比較實際的作法。
2. Certification Chain

/**
 Whether to evaluate an entire SSL certificate chain, or just the leaf certificate. Defaults to `YES`.
 */
@property (nonatomic, assign) BOOL validatesCertificateChain;


你的憑證是某家機構發出的，該機構的憑證是由更高一級的機構發出的，一路往上追，最後會到一個根機構，這樣一串由各機構發出的憑證稱為 certification chain。
如果你把 validatesCertificateChain 設為 YES，那就得把這一整串憑證都打包進你的 APP，必須每個驗證都通過才算通過。如果設為 NO，只需要打包你自己的憑證就夠了。
3. 如何使用 AFSecurityPolicy
這裡以最新版的 AFNetworking 為例，假設你有一個 APIManager 處理所有的 API call，它繼承自 AFHTTPSessionManager，我們可以設定它的 security policy 如下：

@interface APIManager : AFHTTPSessionManager
+ (APIManager *)sharedInstance;
@end

@implementation APIManager
+ (APIManager *)sharedInstance {
  static APIManager *_sharedClient = nil;
  static dispatch_once_t onceToken;

  dispatch_once(&amp;onceToken, ^{
    NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
    _sharedClient = [[APIManager alloc] initWithBaseURL:nil sessionConfiguration:sessionConfiguration];
    AFSecurityPolicy *policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModePublicKey];
    policy.validatesCertificateChain = NO;
    _sharedClient.securityPolicy = policy;
  });

  return _sharedClient;
}
@end


好了，到此大功告成，你已經正確設定好安全連線了！
錯誤排解
Q: 為什麼我可以連上其他的網址？我不是應該只能連上憑證綁定的網址嗎？

檢查 validatesDomainName 是否設為 NO 了，是的話就將它改成 YES。
檢查是否連到 http 開頭的網址，非安全連線是不受限制的。

Q: 為什麼有打包憑證了，還是會連線失敗？

確認你的憑證有加到你的 target 裡頭，拖拉到 Xcode 時要把 Copy items if needed 跟 Add to targets 打勾。
如果 validatesCertificateChain 是 YES，記得把它改成 NO，或是把上級憑證也一同打包進 APP。

參考文件
https://github.com/AFNetworking/AFNetworking/issues/2673https://github.com/rnapier/RNPinnedCertValidatorhttp://stackoverflow.com/a/24625969http://oncenote.com/2014/10/21/Security-1-HTTPS/]]></description>
      <content:encoded><![CDATA[<h2>TL;DR</h2>
<p>前一陣子 <a href="https://github.com/AFNetworking/AFNetworking">AFNetworking</a> 被爆出存在安全性漏洞，它們也針對這件事情發出<a href="https://github.com/AFNetworking/AFNetworking">聲明稿</a>。</p>
<p>簡單的說，就是建議開發者使用最新版的 AFNetworking，並且啟用安全連線。不過它們也承認這一部份的說明文件沒有寫得很齊全，所以困擾了不少開發者。</p>
<p>今天花了一點時間研究，順手把它記錄下來。安全相關的東西不是我的專長，所以如果有任何錯誤的地方，請留言告訴我。</p>
<p><!--more--></p>
<h2>取得安全憑證</h2>
<h4>1. 確認有使用安全連線</h4>
<p>如果你跟遠端伺服器是透過 HTTP 連線，那就不是安全連線，如果是 HTTPS 那就是安全連線。</p>
<h4>2. 準備好網站的安全憑證</h4>
<p>接下來我們需要憑證檔(Certification file)，它的副檔名是 <code>.cer</code>，你可以跟你們的網站管理員詢問，通常他們都知道怎麼拿到這個檔案。</p>
<p>如果你的網站管理員沒有 <code>.cer</code> 檔，只有 <code>.crt</code> 檔，那你可以透過以下這行指令轉檔，要注意的是它是採用 <strong>DER</strong> 編碼格式（請自行將 <strong>myWebsite</strong> 替換成你想要的名字）：</p>
<p><code>openssl x509 -in myWebsite.crt -out myWebsite.cer -outform der</code></p>
<p>如果很不幸的，你的網站管理員連 <code>.crt</code> 檔都沒有，那你也可以使用下列這一整行指令從你們的網站取得憑證（請自行將 <strong><a href="http://www.mywebsite.com">www.mywebsite.com</a></strong> 替換成你們的網址）：</p>
<p><code>openssl s_client -connect www.mywebsite.com:443 &lt;/dev/null 2&gt;/dev/null | openssl x509 -outform DER &gt; myWebsite.cer</code></p>
<p>現在你有一個憑證檔了。</p>
<h4>3. 將憑證加入你的專案</h4>
<p>將你的憑證拖拉放到 Xcode 專案底下，記得要把 <code>Copy items if needed</code> 跟 <code>Add to targets</code> 打勾。</p>
<p><img src="https://farm8.staticflickr.com/7709/17119573630_0bebee9a7b_o.png" alt="" /></p>
<p>好了，事前準備都做完，接著我們來設定 AFNetworking。</p>
<h2>設定 AFNetworking</h2>
<h4>1. Pinning Mode</h4>
<p>AFNetworking 的安全相關設定放在 <code>AFSecurityPolicy</code>，它定義了三種 SSL Pinning Mode:</p>
<div class="highlight">
<pre><span class="cm">/*
 `AFSSLPinningModeNone`
 Do not used pinned certificates to validate servers.

 `AFSSLPinningModePublicKey`
 Validate host certificates against public keys of pinned certificates.

 `AFSSLPinningModeCertificate`
 Validate host certificates against pinned certificates.
*/</span>
<span class="k">typedef</span> <span class="nf">NS_ENUM</span><span class="p">(</span><span class="n">NSUInteger</span><span class="p">,</span> <span class="n">AFSSLPinningMode</span><span class="p">)</span> <span class="p">{</span>
    <span class="n">AFSSLPinningModeNone</span><span class="p">,</span>
    <span class="n">AFSSLPinningModePublicKey</span><span class="p">,</span>
    <span class="n">AFSSLPinningModeCertificate</span><span class="p">,</span>
<span class="p">};</span>
</pre>
</div>
<p>關於 pinning mode 詳細的說明可以參考<a href="https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning#What_Is_Pinning.3F">這篇文章</a>，簡單的說就是你可以將憑證跟你的 APP 一起打包，藉由此機制來避免中間人偽造憑證的風險。</p>
<ul>
<li><code>AFSSLPinningModeNone</code> : 你不必將憑證跟你的 APP 一起打包，完全信任伺服器的憑證</li>
<li><code>AFSSLPinningModeCertificate</code> : 比對伺服器憑證跟你的憑證是否完全匹配</li>
<li><code>AFSSLPinningModePublicKey</code> : 只比對伺服器憑證的 public key 跟你的憑證的 public key 是否匹配</li>
</ul>
<p><strong>那要選用何種模式比較好呢？</strong></p>
<p><code>AFSSLPinningModeCertificate</code> 比較安全但也比較麻煩，它會比對你打包的憑證跟伺服器的憑證是否一致。因為你的憑證是跟 APP 一起打包的，這也就代表說如果你的憑證過期了或是變動了，你就得出一版新的 APP 而且舊版 APP 的憑證就失效了。你也可以在每次 APP 啟動時，就自動連到某個伺服器下載最新的憑證，不過此時這個下載連線就會是有風險的。</p>
<p><code>AFSSLPinningModePublicKey</code> 則是只有比對憑證裡的 public key，所以即使伺服器憑證有所變動，只要 public key 不變，就能通過驗證。</p>
<p>所以如果你能確保每個使用者總是使用最新版本的 APP（例如是公司企業內部專用的），那就可以考慮 <code>AFSSLPinningModeCertificate</code>，否則的話選擇 <code>AFSSLPinningModePublicKey</code> 是比較實際的作法。</p>
<h4>2. Certification Chain</h4>
<div class="highlight">
<pre><span class="cm">/**
 Whether to evaluate an entire SSL certificate chain, or just the leaf certificate. Defaults to `YES`.
 */</span>
<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">validatesCertificateChain</span><span class="p">;</span>
</pre>
</div>
<p>你的憑證是某家機構發出的，該機構的憑證是由更高一級的機構發出的，一路往上追，最後會到一個根機構，這樣一串由各機構發出的憑證稱為 certification chain。</p>
<p>如果你把 <code>validatesCertificateChain</code> 設為 YES，那就得把這一整串憑證都打包進你的 APP，必須每個驗證都通過才算通過。如果設為 NO，只需要打包你自己的憑證就夠了。</p>
<h4>3. 如何使用 AFSecurityPolicy</h4>
<p>這裡以最新版的 AFNetworking 為例，假設你有一個 <code>APIManager</code> 處理所有的 API call，它繼承自 <code>AFHTTPSessionManager</code>，我們可以設定它的 security policy 如下：</p>
<div class="highlight">
<pre><span class="k">@interface</span> <span class="nc">APIManager</span> <span class="p">:</span> <span class="nc">AFHTTPSessionManager</span>
<span class="k">+</span> <span class="p">(</span><span class="n">APIManager</span> <span class="o">*</span><span class="p">)</span><span class="n">sharedInstance</span><span class="p">;</span>
<span class="k">@end</span>

<span class="k">@implementation</span> <span class="nc">APIManager</span>
<span class="k">+</span> <span class="p">(</span><span class="n">APIManager</span> <span class="o">*</span><span class="p">)</span><span class="n">sharedInstance</span> <span class="p">{</span>
  <span class="k">static</span> <span class="n">APIManager</span> <span class="o">*</span><span class="n">_sharedClient</span> <span class="o">=</span> <span class="nb">nil</span><span class="p">;</span>
  <span class="k">static</span> <span class="n">dispatch_once_t</span> <span class="n">onceToken</span><span class="p">;</span>

  <span class="n">dispatch_once</span><span class="p">(</span><span class="o">&amp;</span><span class="n">onceToken</span><span class="p">,</span> <span class="o">^</span><span class="p">{</span>
    <span class="n">NSURLSessionConfiguration</span> <span class="o">*</span><span class="n">sessionConfiguration</span> <span class="o">=</span> <span class="p">[</span><span class="n">NSURLSessionConfiguration</span> <span class="nf">defaultSessionConfiguration</span><span class="p">];</span>
    <span class="n">_sharedClient</span> <span class="o">=</span> <span class="p">[[</span><span class="n">APIManager</span> <span class="nf">alloc</span><span class="p">]</span> <span class="nf">initWithBaseURL</span><span class="p">:</span><span class="nb">nil</span> <span class="nf">sessionConfiguration</span><span class="p">:</span><span class="n">sessionConfiguration</span><span class="p">];</span>
    <span class="n">AFSecurityPolicy</span> <span class="o">*</span><span class="n">policy</span> <span class="o">=</span> <span class="p">[</span><span class="n">AFSecurityPolicy</span> <span class="nf">policyWithPinningMode</span><span class="p">:</span><span class="n">AFSSLPinningModePublicKey</span><span class="p">];</span>
    <span class="n">policy</span><span class="p">.</span><span class="n">validatesCertificateChain</span> <span class="o">=</span> <span class="nb">NO</span><span class="p">;</span>
    <span class="n">_sharedClient</span><span class="p">.</span><span class="n">securityPolicy</span> <span class="o">=</span> <span class="n">policy</span><span class="p">;</span>
  <span class="p">});</span>

  <span class="k">return</span> <span class="n">_sharedClient</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">@end</span>
</pre>
</div>
<p>好了，到此大功告成，你已經正確設定好安全連線了！</p>
<h2>錯誤排解</h2>
<h5>Q: 為什麼我可以連上其他的網址？我不是應該只能連上憑證綁定的網址嗎？</h5>
<ol>
<li>檢查 <code>validatesDomainName</code> 是否設為 NO 了，是的話就將它改成 YES。</li>
<li>檢查是否連到 <code>http</code> 開頭的網址，非安全連線是不受限制的。</li>
</ol>
<h5>Q: 為什麼有打包憑證了，還是會連線失敗？</h5>
<ol>
<li>確認你的憑證有加到你的 target 裡頭，拖拉到 Xcode 時要把 <code>Copy items if needed</code> 跟 <code>Add to targets</code> 打勾。</li>
<li>如果 <code>validatesCertificateChain</code> 是 YES，記得把它改成 NO，或是把上級憑證也一同打包進 APP。</li>
</ol>
<h2>參考文件</h2>
<p><a href="https://github.com/AFNetworking/AFNetworking/issues/2673" rel="nofollow" target="_blank">https://github.com/AFNetworking/AFNetworking/issues/2673</a><br /><a href="https://github.com/rnapier/RNPinnedCertValidator" rel="nofollow" target="_blank">https://github.com/rnapier/RNPinnedCertValidator</a><br /><a href="http://stackoverflow.com/a/24625969" rel="nofollow" target="_blank">http://stackoverflow.com/a/24625969</a><br /><a href="http://oncenote.com/2014/10/21/Security-1-HTTPS/" rel="nofollow" target="_blank">http://oncenote.com/2014/10/21/Security-1-HTTPS/</a></p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/42329797">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F42329797"></div>]]></content:encoded>
      <pubDate>Mon, 04 May 2015 21:21:58 +0800</pubDate>
      <category><![CDATA[未分類]]></category>
      <comments>http://nelson.pixnet.net/blog/post/42329797#comments</comments>
    </item>
    <item>
      <title><![CDATA[Xcode 底下如何統一程式碼風格]]></title>
      <link>http://nelson.pixnet.net/blog/post/42304954</link>
      <guid>http://nelson.pixnet.net/blog/post/42304954</guid>
      <description><![CDATA[在網路上已經有很多人分享各種 Objective-C 的程式碼風格，例如 NYTimes、GitHub、Ray Wenderlich，我相信各位讀者公司應該也有一套自己的規範（如果沒有，那請趕快制定一套吧！），所以今天我不是要分享我們的程式碼規範，而是要來說說要怎麼將不符合規範的程式碼轉成合乎規範。
我研究了一些程式碼美化的工具，最後選用的是 BBUncrustifyPlugin-Xcode 這個 Xcode plugin，它最早只有支援 Uncrustify，最近也開始支援 ClangFormat 了，我個人是比較偏好 Uncrustify，因為它可以調整的選項比較多。

它需要一份設定檔，設定檔的名稱與存放位置有其規定，引用自官方文件：

Uncrustify configuration: The configuration file must be located in the current directory or any parent directories of the source file. The file is named .uncrustifyconfig or uncrustify.cfg. Uncrustify looks for the configuration in the additional folders: Home Folder and ~/.uncrustify/uncrustify.cfg.

這是我的 uncrustify.cfg 設定檔，我把它放在個人家目錄底下，當然你也可以考慮把它放在專案目錄下並加到版本控制系統裡，讓這個專案的參與成員們都能有一致的程式碼風格。
當然每個人的風格都不一樣，需要的設定也都不同，我推薦可以使用 UncrustifyX 這個 GUI 來調整個別設定。因為可以設定的選項實在是太多了，所以找出適合自己設定的過程其實還挺累的，但我覺得這個過程是值得的，累一次之後就輕鬆了。
當你安裝好 BBUncrustifyPlugin-Xcode 這個 Xcode plugin 之後，你會發現它無法設定快速鍵，每次都得用滑鼠去點選單實在是一件很沒有效率的事情。沒關係，我們可以透過 Mac 內建的快速鍵設定來為選單加上快速鍵。請看下圖：

希望這篇文章能幫助到各位，讓大家都能擁有一致的程式碼風格：）
&nbsp;]]></description>
      <content:encoded><![CDATA[<p>在網路上已經有很多人分享各種 Objective-C 的程式碼風格，例如 <a href="https://github.com/NYTimes/objective-c-style-guide">NYTimes</a>、<a href="https://github.com/github/objective-c-conventions">GitHub</a>、<a href="https://github.com/raywenderlich/objective-c-style-guide">Ray Wenderlich</a>，我相信各位讀者公司應該也有一套自己的規範（如果沒有，那請趕快制定一套吧！），所以今天我不是要分享我們的程式碼規範，而是要來說說要怎麼將不符合規範的程式碼轉成合乎規範。</p>
<p>我研究了一些程式碼美化的工具，最後選用的是 <a href="https://github.com/benoitsan/BBUncrustifyPlugin-Xcode">BBUncrustifyPlugin-Xcode</a> 這個 Xcode plugin，它最早只有支援 <a href="http://uncrustify.sourceforge.net/">Uncrustify</a>，最近也開始支援 <a href="http://clang.llvm.org/docs/ClangFormat.html">ClangFormat</a> 了，我個人是比較偏好 <a href="http://uncrustify.sourceforge.net/">Uncrustify</a>，因為它可以調整的選項比較多。</p>
<p><!--more--></p>
<p>它需要一份設定檔，設定檔的名稱與存放位置有其規定，引用自官方文件：</p>
<blockquote>
<p>Uncrustify configuration: The configuration file must be located in the current directory or any parent directories of the source file. The file is named <code>.uncrustifyconfig</code> or <code>uncrustify.cfg</code>. Uncrustify looks for the configuration in the additional folders: <code>Home Folder</code> and <code>~/.uncrustify/uncrustify.cfg</code>.</p>
</blockquote>
<p>這是<a href="https://gist.github.com/chiahsien/8230812">我的 uncrustify.cfg 設定檔</a>，我把它放在個人家目錄底下，當然你也可以考慮把它放在專案目錄下並加到版本控制系統裡，讓這個專案的參與成員們都能有一致的程式碼風格。</p>
<p>當然每個人的風格都不一樣，需要的設定也都不同，我推薦可以使用 <a href="https://github.com/ryanmaxwell/UncrustifyX">UncrustifyX</a> 這個 GUI 來調整個別設定。因為可以設定的選項實在是太多了，所以找出適合自己設定的過程其實還挺累的，但我覺得這個過程是值得的，累一次之後就輕鬆了。</p>
<p>當你安裝好 <a href="https://github.com/benoitsan/BBUncrustifyPlugin-Xcode">BBUncrustifyPlugin-Xcode</a> 這個 Xcode plugin 之後，你會發現它無法設定快速鍵，每次都得用滑鼠去點選單實在是一件很沒有效率的事情。沒關係，我們可以透過 Mac 內建的快速鍵設定來為選單加上快速鍵。請看下圖：</p>
<p><a title="Flickr 上 nelson_tai 的 快速鍵設定" href="http://www.flickr.com/photos/nelson_tai/12770661164/"><img src="http://farm8.staticflickr.com/7303/12770661164_39b6cf6c85_z.jpg" alt="快速鍵設定" width="600" height="537" /></a></p>
<p>希望這篇文章能幫助到各位，讓大家都能擁有一致的程式碼風格：）</p>
<p>&nbsp;</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/42304954">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F42304954"></div>]]></content:encoded>
      <pubDate>Thu, 30 Apr 2015 16:01:12 +0800</pubDate>
      <category><![CDATA[未分類]]></category>
      <comments>http://nelson.pixnet.net/blog/post/42304954#comments</comments>
    </item>
    <item>
      <title><![CDATA[相片後製軟體 Perfect Effects 8 限時免費中]]></title>
      <link>http://nelson.pixnet.net/blog/post/40807336</link>
      <guid>http://nelson.pixnet.net/blog/post/40807336</guid>
      <description><![CDATA[Perfect Effects 8 是一套相片後製軟體，支援 Windows 跟 Mac 平台，原價近 $100 美金，這幾天正在限時免費中。有在玩攝影的朋友可以考慮抓回去玩玩看，只不過它的硬體需求不低，下載前要注意一下。
只要填寫好基本資料跟 Email，它就會把下載網址跟序號寄給你囉！
活動頁面：http://www.ononesoftware.com/landing/pe8offer]]></description>
      <content:encoded><![CDATA[<p>Perfect Effects 8 是一套相片後製軟體，支援 Windows 跟 Mac 平台，原價近 $100 美金，這幾天正在限時免費中。有在玩攝影的朋友可以考慮抓回去玩玩看，只不過它的硬體需求不低，下載前要注意一下。</p>
<p>只要填寫好基本資料跟 Email，它就會把下載網址跟序號寄給你囉！</p>
<p>活動頁面：<a href="http://www.ononesoftware.com/landing/pe8offer">http://www.ononesoftware.com/landing/pe8offer</a></p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/40807336">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F40807336"></div>]]></content:encoded>
      <pubDate>Wed, 07 May 2014 11:06:18 +0800</pubDate>
      <category><![CDATA[Mac 生活]]></category>
      <comments>http://nelson.pixnet.net/blog/post/40807336#comments</comments>
    </item>
    <item>
      <title><![CDATA[請升級到 iOS 7 吧]]></title>
      <link>http://nelson.pixnet.net/blog/post/39734329</link>
      <guid>http://nelson.pixnet.net/blog/post/39734329</guid>
      <description><![CDATA[蘋果已經發出通知，要開發者從明年 2/1 開始，開發的 APP 都要針對 iOS 7 設計，不然可能就無法上架。
這招真聰明啊～各位還在撐著不升級的朋友們，快點升級到 iOS 7 吧，不然很快你就沒有新 APP 可以玩了！]]></description>
      <content:encoded><![CDATA[<p>蘋果已經發出通知，要開發者從明年 2/1 開始，開發的 APP 都要針對 iOS 7 設計，不然可能就無法上架。</p>
<p>這招真聰明啊～各位還在撐著不升級的朋友們，快點升級到 iOS 7 吧，不然很快你就沒有新 APP 可以玩了！</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/39734329">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F39734329"></div>]]></content:encoded>
      <pubDate>Wed, 18 Dec 2013 15:07:13 +0800</pubDate>
      <category><![CDATA[閒聊]]></category>
      <comments>http://nelson.pixnet.net/blog/post/39734329#comments</comments>
    </item>
    <item>
      <title><![CDATA[我們的新 APP「料理日記」上架囉！]]></title>
      <link>http://nelson.pixnet.net/blog/post/39652669</link>
      <guid>http://nelson.pixnet.net/blog/post/39652669</guid>
      <description><![CDATA[經過好幾個月的努力，敝社的全新 iPhone App「料理日記」終於上架了！
我們明白，有許多的使用者是很喜歡作料理的，只是卻不想寫食譜，可能是覺得自己文筆不夠好、或是不太會操作電腦或打字、或是一邊作料理一邊拍照很麻煩，有太多事情阻擾妳喜愛料理喜愛分享的心。我們也明白，有很多廚房新手看到一道料理，很想親手做做看，卻卡在其中幾個步驟不確定該怎麼做，但又不知道該如何請教作者。
所以我們開發了一款全新的 APP - 「料理日記」，讓喜愛料理的朋友們可以更方便拍照分享妳的手作料理，也更容易跟其他一樣喜愛料理的朋友們互相交流心得。同時我們也內建了精美的貼圖與文字功能，讓妳可以打造自己獨一無二的料理日記！
還猶豫什麼呢，快下載回去玩玩看，再度找回料理的樂趣吧，它可是免費的喔！
https://itunes.apple.com/tw/app/liao-li-ri-ji/id765368183?mt=8




]]></description>
      <content:encoded><![CDATA[<p>經過好幾個月的努力，敝社的全新 iPhone App「<a href="https://itunes.apple.com/tw/app/liao-li-ri-ji/id765368183?mt=8">料理日記</a>」終於上架了！</p>
<p>我們明白，有許多的使用者是很喜歡作料理的，只是卻不想寫食譜，可能是覺得自己文筆不夠好、或是不太會操作電腦或打字、或是一邊作料理一邊拍照很麻煩，有太多事情阻擾妳喜愛料理喜愛分享的心。我們也明白，有很多廚房新手看到一道料理，很想親手做做看，卻卡在其中幾個步驟不確定該怎麼做，但又不知道該如何請教作者。</p>
<p>所以我們開發了一款全新的 APP - 「<a href="https://itunes.apple.com/tw/app/liao-li-ri-ji/id765368183?mt=8">料理日記</a>」，讓喜愛料理的朋友們可以更方便拍照分享妳的手作料理，也更容易跟其他一樣喜愛料理的朋友們互相交流心得。同時我們也內建了精美的貼圖與文字功能，讓妳可以打造自己獨一無二的料理日記！</p>
<p>還猶豫什麼呢，快下載回去玩玩看，再度找回料理的樂趣吧，它可是免費的喔！</p>
<p><a href="https://itunes.apple.com/tw/app/liao-li-ri-ji/id765368183?mt=8">https://itunes.apple.com/tw/app/liao-li-ri-ji/id765368183?mt=8</a></p>
<p><img title="screen568x568" src="http://pic.pimg.tw/nelson/1387163639-2527506324.jpg" alt="screen568x568" border="0" /></p>
<p><img title="screen568x568-2" src="http://pic.pimg.tw/nelson/1387163639-2403198043.jpg" alt="screen568x568-2" border="0" /></p>
<p><img title="screen568x568-3" src="http://pic.pimg.tw/nelson/1387163639-1483869817.jpg?v=1387163641" alt="screen568x568-3" border="0" /></p>
<p><img title="screen568x568-4" src="http://pic.pimg.tw/nelson/1387163639-81688850.jpg" alt="screen568x568-4" border="0" /></p>
<p><img title="screen568x568-5" src="http://pic.pimg.tw/nelson/1387163639-3757898155.jpg" alt="screen568x568-5" border="0" /></p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/39652669">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F39652669"></div>]]></content:encoded>
      <pubDate>Mon, 16 Dec 2013 11:16:09 +0800</pubDate>
      <category><![CDATA[iApp]]></category>
      <comments>http://nelson.pixnet.net/blog/post/39652669#comments</comments>
    </item>
    <item>
      <title><![CDATA[解決 iOS 7 手勢失效的問題]]></title>
      <link>http://nelson.pixnet.net/blog/post/39556663</link>
      <guid>http://nelson.pixnet.net/blog/post/39556663</guid>
      <description><![CDATA[在開發 iOS 程式的時候，有很多機會會用到手勢偵測（gesture recognizer），或許有一個場景是這樣的：

你有個 superview，裡頭有 subview，裡頭還有 sub-subview，還有 sub-sub-subview
每個 view 都放了一或多個手勢偵測

我們會直覺的認為：既然 view 是一層層疊起來，那應該是最上層的手勢偵測失敗，才會傳遞到下一層手勢偵測，若是又失敗就繼續往下傳遞。
這在之前的 iOS 似乎都運作的好好的，但不知道為何，到了 iOS 7 竟然出錯了 - 有時候上層的手勢沒有被辨識到，反而是下層的手勢先被執行了！難道不是最上層的手勢先被執行嗎？我的程式碼哪裡寫錯了嗎？
這一定是 iOS 7 的 bug 啦！
很不幸的，當你認真翻閱蘋果文件時，你會發現它有說：

手勢辨識的順序是不保證的，並非越上層的手勢就會越早被辨識


咦？那為什麼之前都運作的好好的？啊災～應該是 iOS 7 又改了什麼機制吧。那要怎麼解決呢？還好 iOS 7 的 &lt;UIGestureRecognizerDelegate&gt; 引進了以下兩個新方法：
1
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer  這個方法的意思是說：是否要 gestureRecognizer 被判定偵測失敗了，才可以偵測 otherGestureRecognizer。
2
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer  這個方法的意思是說：是否要 otherGestureRecognizer 被判定失敗了，才可以偵測 gestureRecognizer。
兩個方法長得很像，很容易搞混。使用時機不太一樣，看哪個比較適合你的使用情境就挑哪個來用。

參考資料： Should superview's gesture cancel subview's gesture in iOS 7?Problems with gesture recognizer in iOS 7]]></description>
      <content:encoded><![CDATA[<p>在開發 iOS 程式的時候，有很多機會會用到手勢偵測（gesture recognizer），或許有一個場景是這樣的：</p>
<ul>
<li>你有個 superview，裡頭有 subview，裡頭還有 sub-subview，還有 sub-sub-subview</li>
<li>每個 view 都放了一或多個手勢偵測</li>
</ul>
<p>我們會直覺的認為：既然 view 是一層層疊起來，那應該是最上層的手勢偵測失敗，才會傳遞到下一層手勢偵測，若是又失敗就繼續往下傳遞。</p>
<p>這在之前的 iOS 似乎都運作的好好的，但不知道為何，到了 iOS 7 竟然出錯了 - 有時候上層的手勢沒有被辨識到，反而是下層的手勢先被執行了！難道不是最上層的手勢先被執行嗎？我的程式碼哪裡寫錯了嗎？</p>
<p><strong>這一定是 iOS 7 的 bug 啦！</strong></p>
<p>很不幸的，當你認真翻閱蘋果文件時，你會發現它有說：</p>
<blockquote>
<p>手勢辨識的順序是不保證的，並非越上層的手勢就會越早被辨識</p>
</blockquote>
<p><!-- more --></p>
<p>咦？那為什麼之前都運作的好好的？啊災～應該是 iOS 7 又改了什麼機制吧。那要怎麼解決呢？還好 iOS 7 的 <code>&lt;UIGestureRecognizerDelegate&gt;</code> 引進了以下兩個新方法：</p>
<h4>1</h4>
<p><code>- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer </code> 這個方法的意思是說：是否要 <code>gestureRecognizer</code> 被判定偵測失敗了，才可以偵測 <code>otherGestureRecognizer</code>。</p>
<h4>2</h4>
<p><code>- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer </code> 這個方法的意思是說：是否要 <code>otherGestureRecognizer</code> 被判定失敗了，才可以偵測 <code>gestureRecognizer</code>。</p>
<p>兩個方法長得很像，很容易搞混。使用時機不太一樣，看哪個比較適合你的使用情境就挑哪個來用。</p>
<hr />
<p>參考資料： <br /><a href="http://stackoverflow.com/questions/19095165/should-superviews-gesture-cancel-subviews-gesture-in-ios-7">Should superview's gesture cancel subview's gesture in iOS 7?</a><br /><a href="http://stackoverflow.com/questions/19126391/problems-with-gesture-recognizer-in-ios-7">Problems with gesture recognizer in iOS 7</a></p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/39556663">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F39556663"></div>]]></content:encoded>
      <pubDate>Thu, 12 Dec 2013 10:49:02 +0800</pubDate>
      <category><![CDATA[文件]]></category>
      <comments>http://nelson.pixnet.net/blog/post/39556663#comments</comments>
    </item>
    <item>
      <title><![CDATA[[iOS] 擁有 Placeholder 的 UITextView]]></title>
      <link>http://nelson.pixnet.net/blog/post/39213175</link>
      <guid>http://nelson.pixnet.net/blog/post/39213175</guid>
      <description><![CDATA[iOS 的 UITextField 有 placeholder 的功能，可是 UITextView 卻沒有，想當然爾，一定早就有人寫好現成的元件了。我本來是用 SAMTextView，可是在某些英文字型底下，它無法漂亮的呈現中文，送 pull request 給作者又石沈大海，最後不得已只好基於原有程式碼，自己來修改一套。
GitHub 網址在這裡：CHTTextView

環境需求

ARC
iOS 6+

特色

簡單易用，就跟一般 UITextView 沒兩樣，只是多了設定 placeholder 的屬性
無論是什麼文字或字體，都可以(近乎)完美呈現 placeholder

安裝方式
手動安裝
把 CHTTextView.{h,m} 加到你的 Xcode project
CocoaPods
在 Podfile 加入一行 pod 'CHTTextView' 即可
Demo
自行參考 Sample project，在這個 project 裡頭，你可以輕易修改字型與字體大小，看看 placeholder 是否能完美呈現。
感謝
CHTTextView 受到 SAMTextView 的啟發，並基於該程式碼作進一步的修改。]]></description>
      <content:encoded><![CDATA[<p>iOS 的 UITextField 有 placeholder 的功能，可是 UITextView 卻沒有，想當然爾，一定早就有人寫好現成的元件了。我本來是用 <a href="https://github.com/soffes/SAMTextView">SAMTextView</a>，可是在某些英文字型底下，它無法漂亮的呈現中文，送 pull request 給作者又石沈大海，最後不得已只好基於原有程式碼，自己來修改一套。</p>
<p>GitHub 網址在這裡：<a href="https://github.com/chiahsien/CHTTextView">CHTTextView</a></p>
<p><img src="https://raw.github.com/chiahsien/CHTTextView/master/Screenshot.png" alt="Screenshot" /></p>
<h2><!-- more -->環境需求</h2>
<ul>
<li>ARC</li>
<li>iOS 6+</li>
</ul>
<h2>特色</h2>
<ul>
<li>簡單易用，就跟一般 UITextView 沒兩樣，只是多了設定 placeholder 的屬性</li>
<li>無論是什麼文字或字體，都可以(近乎)完美呈現 placeholder</li>
</ul>
<h2>安裝方式</h2>
<h3>手動安裝</h3>
<p>把 <code>CHTTextView.{h,m}</code> 加到你的 Xcode project</p>
<h3>CocoaPods</h3>
<p>在 Podfile 加入一行 <code>pod 'CHTTextView'</code> 即可</p>
<h2>Demo</h2>
<p>自行參考 <code>Sample</code> project，在這個 project 裡頭，你可以輕易修改字型與字體大小，看看 placeholder 是否能完美呈現。</p>
<h2>感謝</h2>
<p>CHTTextView 受到 <a href="https://github.com/soffes/SAMTextView">SAMTextView</a> 的啟發，並基於該程式碼作進一步的修改。</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/39213175">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F39213175"></div>]]></content:encoded>
      <pubDate>Mon, 25 Nov 2013 10:38:39 +0800</pubDate>
      <category><![CDATA[Mac 生活]]></category>
      <comments>http://nelson.pixnet.net/blog/post/39213175#comments</comments>
    </item>
    <item>
      <title><![CDATA[單指即可移動、旋轉、縮放、刪除的 UIView]]></title>
      <link>http://nelson.pixnet.net/blog/post/38887606</link>
      <guid>http://nelson.pixnet.net/blog/post/38887606</guid>
      <description><![CDATA[
最近因為工作上需要可自由移動、縮放、旋轉的 View，在網路上找了一些別人寫好的元件，可是用來用去都不太順手，所以就自己刻了一個，秉持著取之於社群、用之於社群的概念，在這裡野人獻曝一番。
GitHub 網址在這裡：CHTStickerView
CHTStickerView 是一個 UIView 的 subclass，它讓開發者可以輕易建立一個可移動、旋轉、縮放、刪除的 UIView，而且以上這些動作，只需要一隻手指頭就可以完成。
它有以下這些特色：

獨立。不需要額外的函式庫或 framework
自訂性高。
簡單易用。

你可以直接把程式碼複製到你的專案裡頭，也可以透過 CocoaPods 安裝，這也是我比較建議的作法。
用法很簡單，看看 Sample 以及 Header File 就知道怎麼用了。歡迎大家抓去玩玩看，更歡迎送 pull request 給我！]]></description>
      <content:encoded><![CDATA[<p><img class="center" src="https://raw.github.com/chiahsien/CHTStickerView/master/screenshot.png" alt="Screen Shot" /></p>
<p>最近因為工作上需要可自由移動、縮放、旋轉的 View，在網路上找了一些別人寫好的元件，可是用來用去都不太順手，所以就自己刻了一個，秉持著取之於社群、用之於社群的概念，在這裡野人獻曝一番。</p>
<p>GitHub 網址在這裡：<a href="https://github.com/chiahsien/CHTStickerView">CHTStickerView</a></p>
<p>CHTStickerView 是一個 UIView 的 subclass，它讓開發者可以輕易建立一個可移動、旋轉、縮放、刪除的 UIView，而且以上這些動作，只需要一隻手指頭就可以完成。</p>
<p>它有以下這些特色：</p>
<ul>
<li>獨立。不需要額外的函式庫或 framework</li>
<li>自訂性高。</li>
<li>簡單易用。</li>
</ul>
<p>你可以直接把程式碼複製到你的專案裡頭，也可以透過 <a href="http://cocoapods.org/">CocoaPods</a> 安裝，這也是我比較建議的作法。</p>
<p>用法很簡單，看看 Sample 以及 Header File 就知道怎麼用了。歡迎大家抓去玩玩看，更歡迎送 pull request 給我！</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/38887606">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F38887606"></div>]]></content:encoded>
      <pubDate>Wed, 06 Nov 2013 00:00:09 +0800</pubDate>
      <category><![CDATA[Mac 生活]]></category>
      <comments>http://nelson.pixnet.net/blog/post/38887606#comments</comments>
    </item>
    <item>
      <title><![CDATA[讓 Xcode 專案易於版本控制的方法]]></title>
      <link>http://nelson.pixnet.net/blog/post/38454077</link>
      <guid>http://nelson.pixnet.net/blog/post/38454077</guid>
      <description><![CDATA[若是你有多人協同開發 Mac/iOS 專案，並且有使用版本控制系統的話，一定會在合併 Xcode 專案檔時吃到不少苦頭，一個不小心就會誤刪某些檔案的參照，或是重複某些檔案的參照。
最近發現一個好用的 script，可以用它來幫忙「根據檔名排序」專案檔裡頭的檔案。原本你的專案可能是混雜了檔案與群組資料夾，但經過這個 script 排序之後，專案會變成所有的群組資料夾排在最前面，接著才是檔案，而且群組資料夾裡頭的內容也會被排序。
因為被排序過，所以在合併不同版本的時候，就可以容易看出哪些項目是新增或刪除，若是不小心重複參照了某些檔案，也比較容易找出來。
這個 script 名叫 sort-Xcode-project-file，假設你把它跟 MyApp.xcodeproj 檔放在同一目錄，那你可以執行以下指令來排序（MyApp 請自行代換成你的 app 名稱）
 perl sort-Xcode-project-file MyApp.xcodeproj/project.pbxproj 

使用小提示：

最好從一開始就使用它，可以免去後續許多合併的麻煩
要好好規劃群組資料夾，檔案盡量放到群組資料夾裡頭
可以把它加到 Build Phase，每次編譯專案之後就自動排序一次
]]></description>
      <content:encoded><![CDATA[<p>若是你有多人協同開發 Mac/iOS 專案，並且有使用版本控制系統的話，一定會在合併 Xcode 專案檔時吃到不少苦頭，一個不小心就會誤刪某些檔案的參照，或是重複某些檔案的參照。</p>
<p>最近發現一個好用的 script，可以用它來幫忙「根據檔名排序」專案檔裡頭的檔案。原本你的專案可能是混雜了檔案與群組資料夾，但經過這個 script 排序之後，專案會變成所有的群組資料夾排在最前面，接著才是檔案，而且群組資料夾裡頭的內容也會被排序。</p>
<p>因為被排序過，所以在合併不同版本的時候，就可以容易看出哪些項目是新增或刪除，若是不小心重複參照了某些檔案，也比較容易找出來。</p>
<p>這個 script 名叫 <a href="https://github.com/WebKit/webkit/blob/master/Tools/Scripts/sort-Xcode-project-file">sort-Xcode-project-file</a>，假設你把它跟 <code>MyApp.xcodeproj</code> 檔放在同一目錄，那你可以執行以下指令來排序（MyApp 請自行代換成你的 app 名稱）</p>
<p><code> perl sort-Xcode-project-file MyApp.xcodeproj/project.pbxproj </code></p>
<hr />
<h3>使用小提示：</h3>
<ul>
<li>最好從一開始就使用它，可以免去後續許多合併的麻煩</li>
<li>要好好規劃群組資料夾，檔案盡量放到群組資料夾裡頭</li>
<li>可以把它加到 <code>Build Phase</code>，每次編譯專案之後就自動排序一次</li>
</ul>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/38454077">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F38454077"></div>]]></content:encoded>
      <pubDate>Mon, 21 Oct 2013 21:12:37 +0800</pubDate>
      <category><![CDATA[文件]]></category>
      <comments>http://nelson.pixnet.net/blog/post/38454077#comments</comments>
    </item>
    <item>
      <title><![CDATA[[分享] 網誌備份瀏覽器 v1.1.1]]></title>
      <link>http://nelson.pixnet.net/blog/post/217766</link>
      <guid>http://nelson.pixnet.net/blog/post/217766</guid>
      <description><![CDATA[感謝免費資源網路社群的詳細介紹文！
由於無名小站即將要關閉，所以這一篇文章又再度受到不少人的關注，因此趁這個機會再次整理一下文章，教大家怎們使用網誌備份瀏覽器。
1.
當然是要先去無名小站，把你的資料備份下來，或許是因為大家都在備份，所以需要一小段時間，請耐心等待。
2.
備份完成之後會得到一個壓縮檔，下載之後解壓縮，會得到許多檔案，我們需要「wretch_yyyy-mm-dd_movabletype.txt」。注意，是 movabletype.txt 檔，不是 blog.xml 檔！
3.
到 這裡 下載我寫的瀏覽器，用它來開啟「wretch_yyyy-mm-dd_movabletype.txt」，沒意外的話應該可以瀏覽你的備份檔了。
4.
如果文章裡頭有插入無名相簿的圖片的話，看不到圖片是正常的，因為無名有擋圖片外連。況且無名都要倒了，你還預期會看到無名相簿裡頭的圖片嗎？
以上，祝各位搬家順利！
]]></description>
      <content:encoded><![CDATA[<p>感謝<a href="http://www.freegroup.org/2013/09/blog-backup-viewer/"><span style="font-size: 12pt;"><strong>免費資源網路社群的詳細介紹文</strong></span></a>！</p>
<p>由於無名小站即將要關閉，所以這一篇文章又再度受到不少人的關注，因此趁這個機會再次整理一下文章，教大家怎們使用網誌備份瀏覽器。</p>
<p><span style="font-size: 12pt;"><strong>1.</strong></span></p>
<p>當然是要先去無名小站，把你的資料備份下來，或許是因為大家都在備份，所以需要一小段時間，請耐心等待。</p>
<p><span style="font-size: 12pt;"><strong>2.</strong></span></p>
<p>備份完成之後會得到一個壓縮檔，下載之後解壓縮，會得到許多檔案，我們需要<span style="color: #ff0000; font-size: 10pt;"><strong>「wretch_yyyy-mm-dd_movabletype.txt」</strong></span>。注意，是 movabletype.txt 檔，不是 blog.xml 檔！</p>
<p><span style="font-size: 12pt;"><strong>3.</strong></span></p>
<p>到 <span style="font-size: 14pt;"><a href="https://github.com/chiahsien/BlogBackupViewer">這裡</a></span> 下載我寫的瀏覽器，用它來開啟「wretch_yyyy-mm-dd_movabletype.txt」，沒意外的話應該可以瀏覽你的備份檔了。</p>
<p><span style="font-size: 12pt;"><strong>4.</strong></span></p>
<p>如果文章裡頭有插入無名相簿的圖片的話，看不到圖片是正常的，因為無名有擋圖片外連。況且無名都要倒了，你還預期會看到無名相簿裡頭的圖片嗎？</p>
<p>以上，祝各位搬家順利！</p>
<p><img src="https://github.com/chiahsien/BlogBackupViewer/raw/master/Screenshots/BBV-04.jpg" alt="" width="579" height="530" /></p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/217766">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F217766"></div>]]></content:encoded>
      <pubDate>Mon, 02 Sep 2013 23:04:03 +0800</pubDate>
      <category><![CDATA[我的作品]]></category>
      <comments>http://nelson.pixnet.net/blog/post/217766#comments</comments>
    </item>
    <item>
      <title><![CDATA[實用的 Objective-C 第三方元件]]></title>
      <link>http://nelson.pixnet.net/blog/post/32693591</link>
      <guid>http://nelson.pixnet.net/blog/post/32693591</guid>
      <description><![CDATA[開發 iOS APP 有一段時間了，期間也用了不少第三方元件，感謝有這些第三方元件，讓我提高了開發的速度與品質。趁著今天這個機會，把幾個很常用的元件記錄下來，給大家作個參考，如果你有在用什麼很棒的元件的話，也歡迎留言跟我分享：）
底下這些是我幾乎在每個 APP 都會用到的，可說是必備元件：


Cocoapods 用了許多的第三方元件，每個元件都有自己的 dependency，還要三不五時去查看這些元件有沒有新版本，對此你感到疲累了嗎？Cocoapods 是你的好朋友，有了它之後，以上的問題都不再是問題，它會幫你處理得好好的。底下我提到的所有元件，都可以透過 Cocoapods 管理喔。


AFNetworking 它大概已經是 Mac/iOS APP 開發的業界標準了吧，它幫我們把所有網路連線的麻煩事都處理掉了，而且它的架構漂亮有彈性、功能又強大，更重要的是它一直有在更新。所以別猶豫了，只要開發的 APP 需要網路連線，用它就對了。
如果你覺得 AFNetworking 太過複雜或強大，你也可以試試看 MKNetworkKit，它相對簡單許多，該有的功能也都有，已經能夠滿足一般的需求。那為什麼我比較推薦 AFNetworking 呢？因為一來支援它的延伸套件比較多，二來是這個作者更新比較勤快。


SDWebImage 有很多時候我們必須從網路下載圖片（例如顯示頭像、顯示網路照片），這個元件可以讓我們很輕鬆的處理這項工作，不用擔心快取、圖像解碼等問題，而且它還可以自訂快取大小、過期時間、以及其他比較細節的調整。附帶一提的是，它讓 UIImageView 能夠顯示 GIF 跟 WebP 格式的圖檔。
另外，作者也寫了一篇 How is SDWebImage better than X?，你可以看過之後再決定要不要用它。


Mantle 現在越來越多的 API 都是採用 JSON 格式傳資料，所以我們在跟 server 溝通的時候，就需要將 JSON 格式轉換成我們自己的 Object，或是將我們的 Object 轉換成 JSON 格式。轉換的過程其實不難，只是一段又一段類似的程式碼看起來就是既無趣又冗長。
還好現在有了 Mantle，讓我們可以輕鬆的在 JSON &lt;-&gt; Object 之間自由轉換，對於一些常見的型態（例如字串或 URL）它都已經內建轉換規則了，若是有特殊情況，我們也可以自訂轉換規則。


Nimbus 它的前身就是 Three20，但它不只是改名字而已，而是徹徹底底的大改變，最大的改變就是它的文件齊全了。說穿了 Nimbus 就是一堆好用元件的大補帖，你可以挑自己需要的元件來用。
我最喜歡它的 NIModel 元件，它讓 UITableView 的 dataSource 跟 delegate 不再跟 View Controller 混在一起，整個架構切乾淨了。當你需要在一個 View Controller 裡頭複雜一點的 UITableView、或是靜態的 UITableView、或是多個 UITableView 的時候，就能體會它帶來的好處。


BlocksKit 自從 Clang 支援 Blocks 之後，Blocks 就變成我最喜愛的特性之一。適當的使用它，會讓程式碼看起來更好讀也更簡潔。BlocksKit 則是將 Blocks 特性帶到了 Objective-C 的所有基本元件上。


ViewDeck 由於裝置螢幕尺寸的限制，滑動顯示左/右側選單幾乎成了大多數 APP 的基本介面（例如 Facebook），ViewDeck 提供了這種介面的基本架構，你只要把自己的 View Controller 放進去就可以了。


SSPullToRefresh 喜歡下拉更新嗎？SSPullToRefresh 提供一個簡單的介面讓你完成這個功能。


SVProgressHUD 由於受到網路連線速度或是裝置處理資料速度的限制，所以 APP 裡頭有許多動作是不同步的，因此我們需要適時的提示使用者。SVProgressHUD 就是一個簡單又夠用的提示器，它可以顯示代表忙碌的旋轉指示器、進度提示、一個圖示、或一小段文字。


底下這些元件不是那麼必備，但時常有機會用到：


iRate 一個提示使用者到 App Store 幫你的 APP 寫評語打分數的小工具。


iVersion 自動檢查 App Store 上有沒有新版的 APP，有的話就提醒使用者去下載，同時也可以顯示版本更新紀錄。有一些使用者就是都沒有在更新 APP 的，有了這個小工具，或多或少可以提高使用者更新的意願。


Routable 有的 APP 的畫面架構非常複雜，點了這個按鈕可以切換到這個畫面，點了那個選單又可以切換到那個畫面，不管是寫程式碼還是透過 Storyboard 切換，都是一整個糾結啊！還好，現在有了 Routable 之後，切換畫面就像在切換 URL 一樣簡單。


PSTCollectionView iOS 6 推出了一項很吸引人的新功能，名叫「UICollectionView」，可惜它是 iOS 6 以上才能用，而且它有一些奇怪的問題存在。因此國外有神人開發了這套 PSTCollectionView，不僅完全相容 UICollectionView，而且 iOS 4/5 都能用，也沒有官方的那些問題存在。若你想要顯現漂亮的排版又想兼容 iOS 5 的話，絕對要試試看這個元件。


SSKeychain 它將蘋果複雜難用的 keychain 包裝起來，讓使用者可以輕鬆取用。若是有儲存帳號密碼等需要加密的資料時，這會是一個好工具。


ShareKit 希望使用者多多分享你的 APP 所提供的內容嗎？試試看 ShareKit！它內建了分享到多種網路服務的功能，你可以只挑你想要的來用。


LineKit 想要分享資料給 Line 上朋友，可是 ShareKit 卻沒提供這個功能怎麼辦？沒關係，試試看 LineKit！



當然還有一些我用過的第三方元件沒有寫進來，不過上述這幾個應該已經滿足絕大多數的使用情境了，哪天我有想到其他好用的元件再補上來吧。
對了，ManiacDev.com 這個網站時常會介紹一些好用的第三方元件，有興趣的朋友可以來這裡挖寶。
你有自己推薦的元件嗎，記得要留言跟我分享喔！]]></description>
      <content:encoded><![CDATA[<p>開發 iOS APP 有一段時間了，期間也用了不少第三方元件，感謝有這些第三方元件，讓我提高了開發的速度與品質。趁著今天這個機會，把幾個很常用的元件記錄下來，給大家作個參考，如果你有在用什麼很棒的元件的話，也歡迎留言跟我分享：）</p>
<h3>底下這些是我幾乎在每個 APP 都會用到的，可說是必備元件：<!-- more --></h3>
<ul>
<li>
<p><a href="http://cocoapods.org/">Cocoapods</a> <br />用了許多的第三方元件，每個元件都有自己的 dependency，還要三不五時去查看這些元件有沒有新版本，對此你感到疲累了嗎？<a href="http://cocoapods.org/">Cocoapods</a> 是你的好朋友，有了它之後，以上的問題都不再是問題，它會幫你處理得好好的。底下我提到的所有元件，都可以透過 <a href="http://cocoapods.org/">Cocoapods</a> 管理喔。</p>
</li>
<li>
<p><a href="https://github.com/AFNetworking/AFNetworking">AFNetworking</a> <br />它大概已經是 Mac/iOS APP 開發的業界標準了吧，它幫我們把所有網路連線的麻煩事都處理掉了，而且它的架構漂亮有彈性、功能又強大，更重要的是它一直有在更新。所以別猶豫了，只要開發的 APP 需要網路連線，用它就對了。</p>
<p>如果你覺得 <a href="https://github.com/AFNetworking/AFNetworking">AFNetworking</a> 太過複雜或強大，你也可以試試看 <a href="https://github.com/MugunthKumar/MKNetworkKit">MKNetworkKit</a>，它相對簡單許多，該有的功能也都有，已經能夠滿足一般的需求。那為什麼我比較推薦 <a href="https://github.com/AFNetworking/AFNetworking">AFNetworking</a> 呢？因為一來支援它的延伸套件比較多，二來是這個作者更新比較勤快。</p>
</li>
<li>
<p><a href="https://github.com/rs/SDWebImage">SDWebImage</a> <br />有很多時候我們必須從網路下載圖片（例如顯示頭像、顯示網路照片），這個元件可以讓我們很輕鬆的處理這項工作，不用擔心快取、圖像解碼等問題，而且它還可以自訂快取大小、過期時間、以及其他比較細節的調整。附帶一提的是，它讓 UIImageView 能夠顯示 GIF 跟 WebP 格式的圖檔。</p>
<p>另外，作者也寫了一篇 <a href="https://github.com/rs/SDWebImage/wiki/How-is-SDWebImage-better-than-X%3F">How is SDWebImage better than X?</a>，你可以看過之後再決定要不要用它。</p>
</li>
<li>
<p><a href="https://github.com/github/Mantle">Mantle</a> <br />現在越來越多的 API 都是採用 JSON 格式傳資料，所以我們在跟 server 溝通的時候，就需要將 JSON 格式轉換成我們自己的 Object，或是將我們的 Object 轉換成 JSON 格式。轉換的過程其實不難，只是一段又一段類似的程式碼看起來就是既無趣又冗長。</p>
<p>還好現在有了 <a href="https://github.com/github/Mantle">Mantle</a>，讓我們可以輕鬆的在 JSON &lt;-&gt; Object 之間自由轉換，對於一些常見的型態（例如字串或 URL）它都已經內建轉換規則了，若是有特殊情況，我們也可以自訂轉換規則。</p>
</li>
<li>
<p><a href="http://docs.nimbuskit.info/index.html">Nimbus</a> <br />它的前身就是 Three20，但它不只是改名字而已，而是徹徹底底的大改變，最大的改變就是它的文件齊全了。說穿了 <a href="http://docs.nimbuskit.info/index.html">Nimbus</a> 就是一堆好用元件的大補帖，你可以挑自己需要的元件來用。</p>
<p>我最喜歡它的 NIModel 元件，它讓 UITableView 的 dataSource 跟 delegate 不再跟 View Controller 混在一起，整個架構切乾淨了。當你需要在一個 View Controller 裡頭複雜一點的 UITableView、或是靜態的 UITableView、或是多個 UITableView 的時候，就能體會它帶來的好處。</p>
</li>
<li>
<p><a href="https://github.com/pandamonia/BlocksKit">BlocksKit</a> <br />自從 Clang 支援 Blocks 之後，Blocks 就變成我最喜愛的特性之一。適當的使用它，會讓程式碼看起來更好讀也更簡潔。<a href="https://github.com/pandamonia/BlocksKit">BlocksKit</a> 則是將 Blocks 特性帶到了 Objective-C 的所有基本元件上。</p>
</li>
<li>
<p><a href="https://github.com/Inferis/ViewDeck">ViewDeck</a> <br />由於裝置螢幕尺寸的限制，滑動顯示左/右側選單幾乎成了大多數 APP 的基本介面（例如 Facebook），<a href="https://github.com/Inferis/ViewDeck">ViewDeck</a> 提供了這種介面的基本架構，你只要把自己的 View Controller 放進去就可以了。</p>
</li>
<li>
<p><a href="https://github.com/samsoffes/sspulltorefresh">SSPullToRefresh</a> <br />喜歡下拉更新嗎？<a href="https://github.com/samsoffes/sspulltorefresh">SSPullToRefresh</a> 提供一個簡單的介面讓你完成這個功能。</p>
</li>
<li>
<p><a href="http://samvermette.com/199">SVProgressHUD</a> <br />由於受到網路連線速度或是裝置處理資料速度的限制，所以 APP 裡頭有許多動作是不同步的，因此我們需要適時的提示使用者。<a href="http://samvermette.com/199">SVProgressHUD</a> 就是一個簡單又夠用的提示器，它可以顯示代表忙碌的旋轉指示器、進度提示、一個圖示、或一小段文字。</p>
</li>
</ul>
<h3>底下這些元件不是那麼必備，但時常有機會用到：</h3>
<ul>
<li>
<p><a href="https://github.com/nicklockwood/iRate">iRate</a> <br />一個提示使用者到 App Store 幫你的 APP 寫評語打分數的小工具。</p>
</li>
<li>
<p><a href="https://github.com/nicklockwood/iVersion">iVersion</a> <br />自動檢查 App Store 上有沒有新版的 APP，有的話就提醒使用者去下載，同時也可以顯示版本更新紀錄。有一些使用者就是都沒有在更新 APP 的，有了這個小工具，或多或少可以提高使用者更新的意願。</p>
</li>
<li>
<p><a href="https://github.com/usepropeller/routable-ios">Routable</a> <br />有的 APP 的畫面架構非常複雜，點了這個按鈕可以切換到這個畫面，點了那個選單又可以切換到那個畫面，不管是寫程式碼還是透過 Storyboard 切換，都是一整個糾結啊！還好，現在有了 <a href="https://github.com/usepropeller/routable-ios">Routable</a> 之後，切換畫面就像在切換 URL 一樣簡單。</p>
</li>
<li>
<p><a href="https://github.com/steipete/PSTCollectionView">PSTCollectionView</a> <br />iOS 6 推出了一項很吸引人的新功能，名叫「UICollectionView」，可惜它是 iOS 6 以上才能用，而且它有一些奇怪的問題存在。因此國外有神人開發了這套 <a href="https://github.com/steipete/PSTCollectionView">PSTCollectionView</a>，不僅完全相容 UICollectionView，而且 iOS 4/5 都能用，也沒有官方的那些問題存在。若你想要顯現漂亮的排版又想兼容 iOS 5 的話，絕對要試試看這個元件。</p>
</li>
<li>
<p><a href="https://github.com/soffes/sskeychain">SSKeychain</a> <br />它將蘋果複雜難用的 keychain 包裝起來，讓使用者可以輕鬆取用。若是有儲存帳號密碼等需要加密的資料時，這會是一個好工具。</p>
</li>
<li>
<p><a href="http://getsharekit.com/">ShareKit</a> <br />希望使用者多多分享你的 APP 所提供的內容嗎？試試看 <a href="http://getsharekit.com/">ShareKit</a>！它內建了分享到多種網路服務的功能，你可以只挑你想要的來用。</p>
</li>
<li>
<p><a href="https://github.com/dlackty/LineKit">LineKit</a> <br />想要分享資料給 Line 上朋友，可是 <a href="http://getsharekit.com/">ShareKit</a> 卻沒提供這個功能怎麼辦？沒關係，試試看 <a href="https://github.com/dlackty/LineKit">LineKit</a>！</p>
</li>
</ul>
<hr />
<p>當然還有一些我用過的第三方元件沒有寫進來，不過上述這幾個應該已經滿足絕大多數的使用情境了，哪天我有想到其他好用的元件再補上來吧。</p>
<p>對了，<a href="http://maniacdev.com/">ManiacDev.com</a> 這個網站時常會介紹一些好用的第三方元件，有興趣的朋友可以來這裡挖寶。</p>
<p>你有自己推薦的元件嗎，記得要留言跟我分享喔！</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/32693591">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F32693591"></div>]]></content:encoded>
      <pubDate>Thu, 29 Aug 2013 22:13:54 +0800</pubDate>
      <category><![CDATA[文件]]></category>
      <comments>http://nelson.pixnet.net/blog/post/32693591#comments</comments>
    </item>
    <item>
      <title><![CDATA[公司用到的一些工具]]></title>
      <link>http://nelson.pixnet.net/blog/post/32607631</link>
      <guid>http://nelson.pixnet.net/blog/post/32607631</guid>
      <description><![CDATA[目前的公司跟上一個公司都算是 start-up，所以在協同作業上用到的工具也跟傳統公司不太一樣，趁著今天有點時間，把我們用到的工具整理一下跟大家分享。

Gmail、Google Calendar、Google Drive
Gmail 容量夠大、主機夠穩定、各種裝置都能存取，而且 Google 帳號真的很好用，所以毫無意外的我們將 Gmail 作為首選，如此一來我們也不用打造自己的郵件系統。
Google Calendar 的好處則是在於，所有的同仁能把自己的行事曆公開出來，讓每個人都看得到。這樣大家都知道彼此接下來要幹嘛，突然沒來上班也知道是請假了還是出差了；若是有同仁忘記自己的行程，別人也能提醒一下；如果要規劃團體出遊，也比較容易知道哪天是大家都可以的日子。
Google Drive 可以讓我們把一些文件丟上去，統一有個地方可以查詢文件，也方便大家一起修改，更能確保每個人看到的都是最新版的文件。這麼方便的東西真的要大力的用才對！
我在 Google教我的101個工作最佳化：效率第一名的數位工作實踐法 這本書裡頭也有分享我們使用 Google 工具的一些具體作法，感興趣的人不妨買來看看。
Dropbox
Dropbox 它的空間夠大，各種裝置與平台都能用，用起來就跟一般資料夾沒兩樣，毫無學習曲線，所以我們在分享檔案的時候都是透過 Dropbox。再加上它還有資料回復功能，不管是修改或是刪除檔案，都能回復到之前的版本，多了一層保障更加安心。
如果你還沒用過 Dropbox，那就快點申請一個吧！
GitHub
我們使用 Git 作為版本控制工具，Git 的好處在網路上已經有太多人分享過了，我在這裡就不再多提，感興趣的話可以參考我的投影片。
我們沒有額外架設自己的版本控制系統，而是直接採用 GitHub。我們所有的程式碼都在上面，我們遵循 git-flow 的開發流程，而且每次程式修改之後，我們都在上面審核與討論。
對了，我最喜歡的 git 指令是 rebase 跟 stash，你呢？
Asana
我們用 Asana 來建立專案，專案底下可以紀錄 issue 以及待辦事項，每個事項都可以指定負責人、tag、due date，事項底下還可以建立子項目，同仁們也可以直接在每個事項底下留言討論。
更方便的是，我們可以透過拖拉的方式決定某事項是今天要做、接下來要做、還是有空再說，一眼就能清楚知道每個人的工作進度。
HipChat
HipChat 是一個強大的聊天工具，我們開了許多不同主題的聊天室（例如：網站與伺服器、APP 開發、行銷等等），它也可以進行一對一聊天，傳檔案、表情符號、圖片等等更不是問題。
但最棒的是，它可以讓我們接許多腳本，完成很多額外的事情。例如我們接上 GitHub，當有人修改東西或留言，就可以收到通知。我們也有接上一隻自己寫的機器人，幫忙處理許多瑣事，像是決定午餐要吃什麼之類的...
Google Analytics
我們用它得知使用者用的作業系統版本、APP 版本、地區分布、使用頻率、最常使用的功能等統計資料。有這些資料將會很有用，例如可以決定是否還要繼續支援舊版本，或是根據使用者最常用的功能決定修 BUG 的順序之類的。
Crashlytics
人有失手、馬有失蹄、程式有當機，我們透過 Crashlytics 收集當機報告，藉此快速找出當機原因並且修正它們。
App Annie
它讓我們很方便知道每個 APP 的下載情況、使用者的評論、使用者的評分、使用者付費比例等統計資料。
Test Flight
我們透過 Test Flight 發佈 beta 程式，讓同事們跟 beta tester 可以幫忙測試。

簡單的說，我們的工作大量依賴網路工具，透過這些工具讓我們即使沒有見面，也能方便的協同工作。有句廣告台詞不是這麼說的嘛

整個城市，就是我的辦公室
]]></description>
      <content:encoded><![CDATA[<p>目前的公司跟上一個公司都算是 start-up，所以在協同作業上用到的工具也跟傳統公司不太一樣，趁著今天有點時間，把我們用到的工具整理一下跟大家分享。</p>
<p><!-- more --></p>
<h3>Gmail、Google Calendar、Google Drive</h3>
<p>Gmail 容量夠大、主機夠穩定、各種裝置都能存取，而且 Google 帳號真的很好用，所以毫無意外的我們將 Gmail 作為首選，如此一來我們也不用打造自己的郵件系統。</p>
<p>Google Calendar 的好處則是在於，所有的同仁能把自己的行事曆公開出來，讓每個人都看得到。這樣大家都知道彼此接下來要幹嘛，突然沒來上班也知道是請假了還是出差了；若是有同仁忘記自己的行程，別人也能提醒一下；如果要規劃團體出遊，也比較容易知道哪天是大家都可以的日子。</p>
<p>Google Drive 可以讓我們把一些文件丟上去，統一有個地方可以查詢文件，也方便大家一起修改，更能確保每個人看到的都是最新版的文件。這麼方便的東西真的要大力的用才對！</p>
<p>我在 <a href="http://www.books.com.tw/exep/prod/booksfile.php?item=0010583256">Google教我的101個工作最佳化：效率第一名的數位工作實踐法</a> 這本書裡頭也有分享我們使用 Google 工具的一些具體作法，感興趣的人不妨買來看看。</p>
<h3>Dropbox</h3>
<p>Dropbox 它的空間夠大，各種裝置與平台都能用，用起來就跟一般資料夾沒兩樣，毫無學習曲線，所以我們在分享檔案的時候都是透過 Dropbox。再加上它還有資料回復功能，不管是修改或是刪除檔案，都能回復到之前的版本，多了一層保障更加安心。</p>
<p>如果你還沒用過 Dropbox，那就快點<a href="http://db.tt/qnM7XYHt">申請一個</a>吧！</p>
<h3>GitHub</h3>
<p>我們使用 Git 作為版本控制工具，Git 的好處在網路上已經有太多人分享過了，我在這裡就不再多提，感興趣的話可以參考<a href="http://www.slideshare.net/nelson0805/git-in-a-nutshell-11096230">我的投影片</a>。</p>
<p>我們沒有額外架設自己的版本控制系統，而是直接採用 GitHub。我們所有的程式碼都在上面，我們遵循 <a href="http://nvie.com/posts/a-successful-git-branching-model/">git-flow</a> 的開發流程，而且每次程式修改之後，我們都在上面審核與討論。</p>
<p>對了，我最喜歡的 git 指令是 rebase 跟 stash，你呢？</p>
<h3>Asana</h3>
<p>我們用 Asana 來建立專案，專案底下可以紀錄 issue 以及待辦事項，每個事項都可以指定負責人、tag、due date，事項底下還可以建立子項目，同仁們也可以直接在每個事項底下留言討論。</p>
<p>更方便的是，我們可以透過拖拉的方式決定某事項是今天要做、接下來要做、還是有空再說，一眼就能清楚知道每個人的工作進度。</p>
<h3>HipChat</h3>
<p>HipChat 是一個強大的聊天工具，我們開了許多不同主題的聊天室（例如：網站與伺服器、APP 開發、行銷等等），它也可以進行一對一聊天，傳檔案、表情符號、圖片等等更不是問題。</p>
<p>但最棒的是，它可以讓我們接許多腳本，完成很多額外的事情。例如我們接上 GitHub，當有人修改東西或留言，就可以收到通知。我們也有接上一隻自己寫的機器人，幫忙處理許多瑣事，像是決定午餐要吃什麼之類的...</p>
<h3>Google Analytics</h3>
<p>我們用它得知使用者用的作業系統版本、APP 版本、地區分布、使用頻率、最常使用的功能等統計資料。有這些資料將會很有用，例如可以決定是否還要繼續支援舊版本，或是根據使用者最常用的功能決定修 BUG 的順序之類的。</p>
<h3>Crashlytics</h3>
<p>人有失手、馬有失蹄、程式有當機，我們透過 Crashlytics 收集當機報告，藉此快速找出當機原因並且修正它們。</p>
<h3>App Annie</h3>
<p>它讓我們很方便知道每個 APP 的下載情況、使用者的評論、使用者的評分、使用者付費比例等統計資料。</p>
<h3>Test Flight</h3>
<p>我們透過 Test Flight 發佈 beta 程式，讓同事們跟 beta tester 可以幫忙測試。</p>
<hr />
<p>簡單的說，我們的工作大量依賴網路工具，透過這些工具讓我們即使沒有見面，也能方便的協同工作。有句廣告台詞不是這麼說的嘛</p>
<blockquote>
<p>整個城市，就是我的辦公室</p>
</blockquote>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/32607631">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F32607631"></div>]]></content:encoded>
      <pubDate>Sat, 17 Aug 2013 16:08:08 +0800</pubDate>
      <category><![CDATA[閒聊]]></category>
      <comments>http://nelson.pixnet.net/blog/post/32607631#comments</comments>
    </item>
    <item>
      <title><![CDATA[「Google教我的101個工作最佳化」今日66折]]></title>
      <link>http://nelson.pixnet.net/blog/post/32484207</link>
      <guid>http://nelson.pixnet.net/blog/post/32484207</guid>
      <description><![CDATA[前一陣子承蒙 esor huang（異塵行者）邀約，一起完成了 Google 工作術的改版 - Google教我的101個工作最佳化：效率第一名的數位工作實踐法，這本書不僅登上博客來的暢銷書，還被選為「今日66折」的熱賣書籍。
特此公告這個好消息，對這本書有興趣的讀者可別錯過這個好機會囉！
馬上去看看 &gt;&gt; Google教我的101個工作最佳化：效率第一名的數位工作實踐法]]></description>
      <content:encoded><![CDATA[<p>前一陣子承蒙 <a href="http://www.playpcesor.com/"><span>esor huang（異塵行者）</span></a>邀約，一起完成了 Google 工作術的改版 - <a href="http://www.books.com.tw/exep/prod/booksfile.php?item=0010583256"><span>Google教我的101個工作最佳化：效率第一名的數位工作實踐法</span></a>，這本書不僅登上博客來的暢銷書，還被選為「今日66折」的熱賣書籍。</p>
<p>特此公告這個好消息，對這本書有興趣的讀者可別錯過這個好機會囉！</p>
<p>馬上去看看 &gt;&gt; <a href="http://www.books.com.tw/exep/prod/booksfile.php?item=0010583256"><span>Google教我的101個工作最佳化：效率第一名的數位工作實踐法</span></a></p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/32484207">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F32484207"></div>]]></content:encoded>
      <pubDate>Mon, 29 Jul 2013 11:27:49 +0800</pubDate>
      <category><![CDATA[好物推薦]]></category>
      <comments>http://nelson.pixnet.net/blog/post/32484207#comments</comments>
    </item>
    <item>
      <title><![CDATA[學習 iOS App 開發的一些心得]]></title>
      <link>http://nelson.pixnet.net/blog/post/32374389</link>
      <guid>http://nelson.pixnet.net/blog/post/32374389</guid>
      <description><![CDATA[接觸 iOS App 開發至今也快要兩年了，把一些心得感想記錄下來，或許能幫助一些人。

事前準備
進入這個世界，有些東西是你需要事先準備好的，說穿了，就是你的設備跟知識。
一台蘋果電腦
開發蘋果的東西，沒有蘋果電腦怎麼行呢？如果你手頭拮据的話，買台 Mac Mini 就能動工了，但如果預算足夠的話，建議買台 MacBook Air 或 MacBook Pro，方便你能隨時移動，走到哪就寫到哪。至於要買 Pro 或是 Air，那就看你需求跟預算了，反正若只是要開發程式，這兩者都綽綽有餘。
熟悉 C 語言以及物件導向
開發 iOS App 用的程式語言是 Objective-C，它是 C 語言的 superset，支援所有 C 語言的功能，並且加上物件導向的能力。所以你只要熟悉 C 語言以及物件導向的觀念，就可以快速上手 Objective-C，剩下的就只是習慣 Objective-C 的語法及特性而已。
英文能力不能太差
Objective-C 有個特色就是它寫出來的程式碼「就像在閱讀一段句子、一篇文章」，你怎麼說話的，就怎麼寫程式 - 當然，指的是用英文說話。所以你英文能力不能太差，否則你將無法寫出順暢的程式碼，也無法輕易看懂別人的程式碼。這是它跟其他常見的程式語言最大的不同點，一開始可能會不太適應，但久了之後你會愛上它的。另外你會需要看大量的文件，這些幾乎都是英文，所以需要有一定的英文底子。

入門
好了，事前準備都完成了，接下來可以開始動工。我當初完全是自學，所以我的分享基本上就是我自學的過程。我自學的方式很簡單，就是大量閱讀（看教學、看書、看官方文件）跟實做，實做的部份我幫不了你，所以來聊聊我看了哪些東西。


Stanford University: CS193p 這是國外史丹佛大學的開放課程，你可以在 iTunes U 找到它，整個課程看完之後，對於如何開發就已經有一定的理解了。我強烈建議一定要先看完這整套課程，再繼續去閱讀其他的東西。它大概也是 iOS 開發最有名的課程，我相信很多開發者其實都是「同學」。


iOS 5 &amp; iOS 6 by Tutorials 當你對如何開發有個基本的理解，知道整個開發流程要怎麼套起來，可是卻對許多比較細節的部份還懵懵懂懂，這時候你需要的是有人一步步告訴你每個元件是做什麼用的、還有要怎麼去用它。因此你需要看這本書，它是由國外知名的 iOS 開發教學網站所編寫的，每一篇教學都從頭到尾寫得很仔細，非常適合新手。有了它，你將可以減少許多摸索的時間。


進階
當你對基礎開發已經有一定的熟悉度之後，我建議你一定要看看以下這幾本書，它們會讓你知道更多 Objective-C 的細節，也會知道如何寫出更好、更有效率的程式碼。但，拜託，如果你對基礎還很不熟的話，請千萬不要來看這些東西，學會一些花俏的技巧、腦袋塞了一堆一知半解的理論，對你來說不是件好事。


iOS 6 Programming: Pushing the Limits 由 Rob Napier 跟 Mugunth Kumar 共同撰寫的這本書，提到該如何設計程式架構，以及怎麼做才能讓 App 執行得更順暢。看了之後你會發覺「阿～原來要這樣子設計架構比較順」或是「原來還有這種技巧」。


Effective Objective-C 2.0: 52 Specific Ways to Improve Your iOS and OS X Programs 由 Matt Galloway 撰寫的這本書，講到了許多比較細節的東西，包含一些語言特性是如何運作的，以及開發的一些 Best Practice。適當的使用他提到的方法，會讓你更輕易的完成某些功能，也能讓程式碼更簡潔、更不易出錯。


WWDC Videos 每年蘋果開發者大會（WWDC）總是會推出一堆新東西，開發者們要接收這些資訊的最快方法就是把這些大會錄影看過一遍。當然，我們的時間有限，只要挑感興趣的看就好。


網路資源
現在網路這麼發達，很多資訊都在網路上流通，當然吸收新知最快最方便的管道就是透過無遠弗屆的網路。底下列出我有在觀看的部落格跟我 follow 的 twitter，我每天從這些地方吸收到許多的新知。
部落格

iOS App Dev Libraries, Controls, Tutorials, Examples and Tools
NSCookbook.com
Ray Wenderlich
Mobiletuts+
NSHipster
Matt Galloway
the joe conway blog
Use Your Loaf
MKBlog
objc.io
iOS Dev Weekly

Twitter

Romain Briche
Mattt Thompson
Oliver Letterer
objc.io
Matt Galloway
Florian Kugler
Krzysztof Zabłocki
Rob Napier
Dave Verwer
Peter Steinberger
Joe Conway
Ray Wenderlich
Mugunth Kumar

我總是能從這些 twitter 的發文以及他們跟他人的交談互動中，學到一些新的東西。

寫在最後
現在要學習 iOS 開發的門檻已經比當初我學習的時候低太多了，如果你對這一塊有興趣有熱情，那就快跳進來吧！相對於其他平台的開發者而言，iOS 開發者最開心的事情就是一般使用者非常樂意接受新版的作業系統（根據 Apple 統計，目前 iOS 6 的普及率有 9x%，iOS 5 + iOS 6 有 99%），所以我們可以開心的使用最新的技術去打造 App；但相對的，最痛苦的事情就是我們得一直追著最新的技術，每年的 WWDC（蘋果開發者大會）大概是我們最期待也最害怕的時刻。
最後，就以這句大家耳熟能詳的話來總結吧：

Stay Hungry, Stay Foolish!
]]></description>
      <content:encoded><![CDATA[<p>接觸 iOS App 開發至今也快要兩年了，把一些心得感想記錄下來，或許能幫助一些人。</p>
<hr />
<h3>事前準備</h3>
<p>進入這個世界，有些東西是你需要事先準備好的，說穿了，就是你的設備跟知識。</p>
<h4>一台蘋果電腦</h4>
<p>開發蘋果的東西，沒有蘋果電腦怎麼行呢？如果你手頭拮据的話，買台 Mac Mini 就能動工了，但如果預算足夠的話，建議買台 MacBook Air 或 MacBook Pro，方便你能隨時移動，走到哪就寫到哪。至於要買 Pro 或是 Air，那就看你需求跟預算了，反正若只是要開發程式，這兩者都綽綽有餘。</p>
<h4>熟悉 C 語言以及物件導向</h4>
<p>開發 iOS App 用的程式語言是 Objective-C，它是 C 語言的 superset，支援所有 C 語言的功能，並且加上物件導向的能力。所以你只要熟悉 C 語言以及物件導向的觀念，就可以快速上手 Objective-C，剩下的就只是習慣 Objective-C 的語法及特性而已。</p>
<h4>英文能力不能太差</h4>
<p>Objective-C 有個特色就是它寫出來的程式碼「就像在閱讀一段句子、一篇文章」，你怎麼說話的，就怎麼寫程式 - 當然，指的是用英文說話。所以你英文能力不能太差，否則你將無法寫出順暢的程式碼，也無法輕易看懂別人的程式碼。這是它跟其他常見的程式語言最大的不同點，一開始可能會不太適應，但久了之後你會愛上它的。另外你會需要看大量的文件，這些幾乎都是英文，所以需要有一定的英文底子。</p>
<hr />
<h3>入門</h3>
<p>好了，事前準備都完成了，接下來可以開始動工。我當初完全是自學，所以我的分享基本上就是我自學的過程。我自學的方式很簡單，就是大量閱讀（看教學、看書、看官方文件）跟實做，實做的部份我幫不了你，所以來聊聊我看了哪些東西。</p>
<ol>
<li>
<p><a href="http://cs193p.stanford.edu">Stanford University: CS193p</a><br /> 這是國外史丹佛大學的開放課程，你可以在 iTunes U 找到它，整個課程看完之後，對於如何開發就已經有一定的理解了。我強烈建議一定要先看完這整套課程，再繼續去閱讀其他的東西。它大概也是 iOS 開發最有名的課程，我相信很多開發者其實都是「同學」。</p>
</li>
<li>
<p><a href="http://www.raywenderlich.com/store/ios-5-and-ios-6-by-tutorials-bundle">iOS 5 &amp; iOS 6 by Tutorials</a><br /> 當你對如何開發有個基本的理解，知道整個開發流程要怎麼套起來，可是卻對許多比較細節的部份還懵懵懂懂，這時候你需要的是有人一步步告訴你每個元件是做什麼用的、還有要怎麼去用它。因此你需要看這本書，它是由國外知名的 iOS 開發教學網站所編寫的，每一篇教學都從頭到尾寫得很仔細，非常適合新手。有了它，你將可以減少許多摸索的時間。</p>
</li>
</ol><hr />
<h3>進階</h3>
<p>當你對基礎開發已經有一定的熟悉度之後，我建議你一定要看看以下這幾本書，它們會讓你知道更多 Objective-C 的細節，也會知道如何寫出更好、更有效率的程式碼。但，拜託，如果你對基礎還很不熟的話，請千萬不要來看這些東西，學會一些花俏的技巧、腦袋塞了一堆一知半解的理論，對你來說不是件好事。</p>
<ol>
<li>
<p><a href="http://www.amazon.com/gp/product/1118449959/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1118449959&amp;linkCode=as2&amp;tag=blogmugunthku-20">iOS 6 Programming: Pushing the Limits</a><br /> 由 Rob Napier 跟 Mugunth Kumar 共同撰寫的這本書，提到該如何設計程式架構，以及怎麼做才能讓 App 執行得更順暢。看了之後你會發覺「阿～原來要這樣子設計架構比較順」或是「原來還有這種技巧」。</p>
</li>
<li>
<p><a href="http://www.informit.com/store/effective-objective-c-2.0-52-specific-ways-to-improve-9780133386967">Effective Objective-C 2.0: 52 Specific Ways to Improve Your iOS and OS X Programs</a><br /> 由 Matt Galloway 撰寫的這本書，講到了許多比較細節的東西，包含一些語言特性是如何運作的，以及開發的一些 Best Practice。適當的使用他提到的方法，會讓你更輕易的完成某些功能，也能讓程式碼更簡潔、更不易出錯。</p>
</li>
<li>
<p><a href="https://developer.apple.com/videos">WWDC Videos</a><br /> 每年蘋果開發者大會（WWDC）總是會推出一堆新東西，開發者們要接收這些資訊的最快方法就是把這些大會錄影看過一遍。當然，我們的時間有限，只要挑感興趣的看就好。</p>
</li>
</ol><hr />
<h3>網路資源</h3>
<p>現在網路這麼發達，很多資訊都在網路上流通，當然吸收新知最快最方便的管道就是透過無遠弗屆的網路。底下列出我有在觀看的部落格跟我 follow 的 twitter，我每天從這些地方吸收到許多的新知。</p>
<h4>部落格</h4>
<ul>
<li><a title="iOS App Dev Libraries, Controls, Tutorials, Examples and Tools" href="http://maniacdev.com/">iOS App Dev Libraries, Controls, Tutorials, Examples and Tools</a></li>
<li><a title="NSCookbook.com : Home - iOS Programming Tutorials In Recipe Form" href="http://nscookbook.com/">NSCookbook.com</a></li>
<li><a title="Ray Wenderlich | Tutorials for iPhone / iOS Developers and Gamers" href="http://www.raywenderlich.com/">Ray Wenderlich</a></li>
<li><a title="Mobiletuts+ | iPhone, Android, Windows and BlackBerry mobile development tutorials." href="http://mobile.tutsplus.com/">Mobiletuts+</a></li>
<li><a title="NSHipster" href="http://nshipster.com/">NSHipster</a></li>
<li><a title="Matt Galloway" href="http://www.galloway.me.uk/">Matt Galloway</a></li>
<li><a href="http://thejoeconwayblog.wordpress.com/">the joe conway blog</a></li>
<li><a title="Use Your Loaf" href="http://useyourloaf.com/">Use Your Loaf</a></li>
<li><a title="MKBlog" href="http://blog.mugunthkumar.com/">MKBlog</a></li>
<li><a title="objc.io" href="http://www.objc.io/">objc.io</a></li>
<li><a href="http://iosdevweekly.com/">iOS Dev Weekly</a></li>
</ul>
<h4>Twitter</h4>
<ul>
<li><a href="https://twitter.com/romainbriche">Romain Briche</a></li>
<li><a href="https://twitter.com/mattt">Mattt Thompson</a></li>
<li><a href="https://twitter.com/oletterer">Oliver Letterer</a></li>
<li><a href="https://twitter.com/objcio">objc.io</a></li>
<li><a href="https://twitter.com/mattjgalloway">Matt Galloway</a></li>
<li><a href="https://twitter.com/floriankugler">Florian Kugler</a></li>
<li><a href="https://twitter.com/merowing_">Krzysztof Zabłocki</a></li>
<li><a href="https://twitter.com/cocoaphony">Rob Napier</a></li>
<li><a href="https://twitter.com/daveverwer">Dave Verwer</a></li>
<li><a href="https://twitter.com/steipete">Peter Steinberger</a></li>
<li><a href="https://twitter.com/joeconwaybnr">Joe Conway</a></li>
<li><a href="https://twitter.com/rwenderlich">Ray Wenderlich</a></li>
<li><a href="https://twitter.com/mugunthkumar">Mugunth Kumar</a></li>
</ul>
<p>我總是能從這些 twitter 的發文以及他們跟他人的交談互動中，學到一些新的東西。</p>
<hr />
<h3>寫在最後</h3>
<p>現在要學習 iOS 開發的門檻已經比當初我學習的時候低太多了，如果你對這一塊有興趣有熱情，那就快跳進來吧！相對於其他平台的開發者而言，iOS 開發者最開心的事情就是一般使用者非常樂意接受新版的作業系統（根據 Apple 統計，目前 iOS 6 的普及率有 9x%，iOS 5 + iOS 6 有 99%），所以我們可以開心的使用最新的技術去打造 App；但相對的，最痛苦的事情就是我們得一直追著最新的技術，每年的 WWDC（蘋果開發者大會）大概是我們最期待也最害怕的時刻。</p>
<p>最後，就以這句大家耳熟能詳的話來總結吧：</p>
<blockquote>
<p>Stay Hungry, Stay Foolish!</p>
</blockquote>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/32374389">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F32374389"></div>]]></content:encoded>
      <pubDate>Sat, 06 Jul 2013 16:58:06 +0800</pubDate>
      <category><![CDATA[讀書心得]]></category>
      <comments>http://nelson.pixnet.net/blog/post/32374389#comments</comments>
    </item>
    <item>
      <title><![CDATA[Mr. Reader 更新了]]></title>
      <link>http://nelson.pixnet.net/blog/post/32315739</link>
      <guid>http://nelson.pixnet.net/blog/post/32315739</guid>
      <description><![CDATA[隨著 Google Reader 收山的腳步越來越接近，你是否已經找好替代品了呢？目前我是用 feedly 作為替代品，似乎這也是最多人的選擇。畢竟，它可以完整匯入 Google Reader 的訂閱清單，又有網頁版跟 iPhone / iPad / Android App，沒有理由不選擇它。
只是用了這麼久，雖然它一直都有在進步，我還是覺得它的 App 不夠好用，比不上我原本在用的 Mr. Reader，但在找到更好的替代品之前，也只好將就著用了。
終於，我找到更好的選擇了，那就是新版的 Mr. Reader！新版的 Mr. Reader 支援的訂閱來源變多了，目前它支援 BazQux Reader、Feedbin、FeedHQ、feedly、Feed Wrangler 跟 Fever。
所以我現在網頁版就用 feedly，iPad App 就用 Mr. Reader，美好的日子又回來了。
或許你會好奇，為什麼我那麼愛用 Mr. Reader？理由當然有很多啦，像是我喜歡它的介面、高度可自訂、穩定、運作速度快、更新頻繁等等，但最重要的原因只有一個：它可以記住我每個文章來源的閱讀模式！有些來源是 RSS 全文輸出，有些來源要連回原始網頁看，有些來源要用 Pocket / Instapaper / Readibility 取得乾淨的全文，這些它通通都記得。
相信我，這個功能真的會讓你的閱讀體驗變得非常的流暢。光是這個功能就值得我花 $3.99 去購買它了！我之前也有特別寫一篇文章介紹 Mr. Reader，有興趣的人可以去看看：）
PS: 除了 Mr. Reader 跟 feedly 之外，Newsify 跟 Reeder、 Reeder for iPad 也是值得一試的 iOS App。]]></description>
      <content:encoded><![CDATA[<p>隨著 Google Reader 收山的腳步越來越接近，你是否已經找好替代品了呢？目前我是用 <a href="http://cloud.feedly.com">feedly</a> 作為替代品，似乎這也是最多人的選擇。畢竟，它可以完整匯入 Google Reader 的訂閱清單，又有網頁版跟 iPhone / iPad / Android App，沒有理由不選擇它。</p>
<p>只是用了這麼久，雖然它一直都有在進步，我還是覺得它的 App 不夠好用，比不上我原本在用的 <a href="http://www.curioustimes.de/mrreader/">Mr. Reader</a>，但在找到更好的替代品之前，也只好將就著用了。</p>
<p>終於，我找到更好的選擇了，那就是<strong>新版</strong>的 <a href="http://www.curioustimes.de/mrreader/">Mr. Reader</a>！新版的 <a href="http://www.curioustimes.de/mrreader/">Mr. Reader</a> 支援的訂閱來源變多了，目前它支援 <a href="https://bazqux.com/">BazQux Reader</a>、<a href="http://feedbin.me/">Feedbin</a>、<a href="https://feedhq.org/">FeedHQ</a>、<a href="http://cloud.feedly.com">feedly</a>、<a href="http://feedwrangler.net/">Feed Wrangler</a> 跟 <a href="http://feedafever.com/">Fever</a>。</p>
<p>所以我現在網頁版就用 <a href="http://cloud.feedly.com">feedly</a>，iPad App 就用 <a href="http://www.curioustimes.de/mrreader/">Mr. Reader</a>，美好的日子又回來了。</p>
<p>或許你會好奇，為什麼我那麼愛用 <a href="http://www.curioustimes.de/mrreader/">Mr. Reader</a>？理由當然有很多啦，像是我喜歡它的介面、高度可自訂、穩定、運作速度快、更新頻繁等等，但最重要的原因只有一個：它可以記住我每個文章來源的閱讀模式！有些來源是 RSS 全文輸出，有些來源要連回原始網頁看，有些來源要用 Pocket / Instapaper / Readibility 取得乾淨的全文，這些它通通都記得。</p>
<p>相信我，這個功能真的會讓你的閱讀體驗變得非常的流暢。光是這個功能就值得我花 $3.99 去購買它了！我之前也有特別<a href="http://nelson.pixnet.net/blog/post/30640790">寫一篇文章介紹 Mr. Reader</a>，有興趣的人可以去看看：）</p>
<p>PS: 除了 <a href="http://www.curioustimes.de/mrreader/">Mr. Reader</a> 跟 <a href="http://cloud.feedly.com">feedly</a> 之外，<a href="https://itunes.apple.com/tw/app/newsify-your-rss-news-blog/id510153374?mt=8">Newsify</a> 跟 <a href="https://itunes.apple.com/tw/app/reeder/id325502379?mt=8">Reeder</a>、 <a href="https://itunes.apple.com/tw/app/reeder-for-ipad/id375661689?mt=8">Reeder for iPad</a> 也是值得一試的 iOS App。</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/32315739">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F32315739"></div>]]></content:encoded>
      <pubDate>Fri, 28 Jun 2013 10:14:32 +0800</pubDate>
      <category><![CDATA[iApp]]></category>
      <comments>http://nelson.pixnet.net/blog/post/32315739#comments</comments>
    </item>
    <item>
      <title><![CDATA[[攝影] 二訪老梅石槽衝日出]]></title>
      <link>http://nelson.pixnet.net/blog/post/31981479</link>
      <guid>http://nelson.pixnet.net/blog/post/31981479</guid>
      <description><![CDATA[之前去了一次老梅，終於看到那魂牽夢縈已久的綠石槽，當時就下定決心要再找一天回來，看能不能拍到日出。終於讓我盼到一個沒下雨的假日 (是說，時常都在假日下雨是怎樣...)，就跟 Vicjuan 七早八早從汐止衝去老梅啦。
上次我只帶了相機，其他什麼設備都沒帶，這次特地準備了腳架跟 ND16 減光鏡，希望能拍出一些不一樣的東西。



一早來到這邊就發現事情不太妙，因為一來雲層很厚，二來正好在漲潮，三來那一片綠意已經消失得差不多了，想到無法拍到日出時那一大片綠石槽，心中不免有些小小失落。不過既來之則安之，這次有了腳架跟減光鏡，就來玩看看長曝效果吧。想不到效果還挺有趣的，拍出了像是半片冰原的感覺，也拍到沙灘上海浪混然天成的畫作。

接著我轉移了陣地，找到一小片還留著綠藻的石槽，趁著潮水稍微回退的空檔，拍下了這張照片。由於天色的關係，加上使用 ND16 減光鏡來長時間曝光，整張照片最後顯現出一種褐暗色調，讓我覺得像是中國傳統水墨畫，非常有趣！


潮水來來去去，雖然是在漲潮時段，也還是有露出大片海岸地形的機會。我就趁著這些機會，繼續往海裡走去，最後拍下這張彷彿被雲霧繚繞的群島，這也是我本次拍攝結果最喜愛的照片之一。

最後要離開收拾器材時，很幸運的發現了耶穌光，趕緊拿起收到一半的相機，拍下這美好的一刻。才一個轉眼，耶穌光就已經不見了。能以這張照片作為結尾，真是令人開心！
雖然被笑說七早八早不睡覺，跑去海邊吹海風泡冷水，真是搞不懂我們在想什麼，不過回家整理照片看到拍出來的成品，還是很高興的覺得這一趟沒有白跑啊：）]]></description>
      <content:encoded><![CDATA[<p>之前<a href="http://nelson.pixnet.net/blog/post/31960053">去了一次老梅</a>，終於看到那魂牽夢縈已久的綠石槽，當時就下定決心要再找一天回來，看能不能拍到日出。終於讓我盼到一個沒下雨的假日 (是說，時常都在假日下雨是怎樣...)，就跟 <a href="http://vicjuan.org/">Vicjuan</a> 七早八早從汐止衝去老梅啦。</p>
<p>上次我只帶了相機，其他什麼設備都沒帶，這次特地準備了腳架跟 ND16 減光鏡，希望能拍出一些不一樣的東西。<!-- more --></p>
<p><a href="http://www.flickr.com/photos/7770988@N04/8664736648" target="_blank"><img src="http://farm9.staticflickr.com/8266/8664736648_57638d4bf5_c.jpg" alt="2013-04-07_01" /></a></p>
<p><a href="http://www.flickr.com/photos/7770988@N04/8664736434" target="_blank"><img src="http://farm9.staticflickr.com/8263/8664736434_23cff2a602_c.jpg" alt="2013-04-07_02" /></a></p>
<p><a href="http://www.flickr.com/photos/7770988@N04/8663635601" target="_blank"><img src="http://farm9.staticflickr.com/8248/8663635601_9cca035e1b_c.jpg" alt="2013-04-07_05" /></a></p>
<p>一早來到這邊就發現事情不太妙，因為一來雲層很厚，二來正好在漲潮，三來那一片綠意已經消失得差不多了，想到無法拍到日出時那一大片綠石槽，心中不免有些小小失落。不過既來之則安之，這次有了腳架跟減光鏡，就來玩看看長曝效果吧。想不到效果還挺有趣的，拍出了像是半片冰原的感覺，也拍到沙灘上海浪混然天成的畫作。</p>
<p><a href="http://www.flickr.com/photos/7770988@N04/8664735386" target="_blank"><img src="http://farm9.staticflickr.com/8243/8664735386_8e1058250d_c.jpg" alt="2013-04-07_06" /></a></p>
<p>接著我轉移了陣地，找到一小片還留著綠藻的石槽，趁著潮水稍微回退的空檔，拍下了這張照片。由於天色的關係，加上使用 ND16 減光鏡來長時間曝光，整張照片最後顯現出一種褐暗色調，讓我覺得像是中國傳統水墨畫，非常有趣！</p>
<p><a href="http://www.flickr.com/photos/7770988@N04/8663633783" target="_blank"><img src="http://farm9.staticflickr.com/8242/8663633783_8137b82697_c.jpg" alt="2013-04-07_13" /></a></p>
<p><a href="http://www.flickr.com/photos/7770988@N04/8664732228" target="_blank"><img src="http://farm9.staticflickr.com/8242/8664732228_e45946f505_c.jpg" alt="2013-04-07_19" /></a></p>
<p>潮水來來去去，雖然是在漲潮時段，也還是有露出大片海岸地形的機會。我就趁著這些機會，繼續往海裡走去，最後拍下這張彷彿被雲霧繚繞的群島，這也是我本次拍攝結果最喜愛的照片之一。</p>
<p><a href="http://www.flickr.com/photos/7770988@N04/8664731954" target="_blank"><img src="http://farm9.staticflickr.com/8249/8664731954_7078fc7cff_c.jpg" alt="2013-04-07_20" /></a></p>
<p>最後要離開收拾器材時，很幸運的發現了耶穌光，趕緊拿起收到一半的相機，拍下這美好的一刻。才一個轉眼，耶穌光就已經不見了。能以這張照片作為結尾，真是令人開心！</p>
<p>雖然被笑說七早八早不睡覺，跑去海邊吹海風泡冷水，真是搞不懂我們在想什麼，不過回家整理照片看到拍出來的成品，還是很高興的覺得這一趟沒有白跑啊：）</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/31981479">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F31981479"></div>]]></content:encoded>
      <pubDate>Sun, 21 Apr 2013 12:19:44 +0800</pubDate>
      <category><![CDATA[外拍]]></category>
      <comments>http://nelson.pixnet.net/blog/post/31981479#comments</comments>
    </item>
    <item>
      <title><![CDATA[自己就是婚禮顧問之幕後廠商大公開]]></title>
      <link>http://nelson.pixnet.net/blog/post/31979257</link>
      <guid>http://nelson.pixnet.net/blog/post/31979257</guid>
      <description><![CDATA[前一陣子剛結完婚，很幸運的遇到許多好廠商的幫助，婚禮辦下來也受到親朋好友一致的好評與詢問。乾脆寫一篇文章來表揚一下所有合作的廠商，幫它們打打廣告，或許剛好有人需要廠商資訊也說不定！
新祕

南部：紅豆 https://www.facebook.com/Dollydoh
北部：小朵 http://www.wretch.cc/blog/verna0228/6860895

攝影師

南部：ELin 的 Kerry http://www.wretch.cc/blog/linwedding68。因為我們的特殊要求，所以不到一週的時間就把照片交給我們，真是太強大了！
北部：盧小寶 http://www.wretch.cc/blog/minifeel。因為當天的天色不佳，宴客場地又高挑寬敞，所以小寶還主動帶了兩位助理來協助打燈與拍攝，真是有夠負責又貼心。

場地

新莊翰品酒店：推薦它們的服務專員藍小姐，幫我們解決了棘手的桌數問題。

喜餅

郭元益：推薦板橋店的門市人員黃意潔小姐。
巧瑞吉：位於內湖，大受好評的手工喜餅。http://www.chocorich.com.tw/老闆娘是個超級超級超級好的人！沒意外的話，以後我們的彌月應該也是訂它們家的吧 XD

婚禮小物

貓掌棉花糖：來一份。幸福 https://www.facebook.com/hot.dessert，老闆徐小姐也是一個愛貓人士喔！
花椰菜娃娃：IKEA 買來的，笑點十足。全身軟趴趴，是拿來出氣的不二人選！

婚禮佈置

羅絲蔓：http://swatluan.pixnet.net/blog

酒商
因為宴客場地開的酒都比較貴，所以我們另外跟酒商叫酒，價格漂亮，喝不完還可以退酒。

格勒皮司：台北市信義區莊敬路289巷4弄10號1F，請找「0936-993-218 蔡先生」，人超好的啦！

捧花、胸花、花束

板橋花市10號攤「馥郁花坊」，0911-827-121 陳小姐。可客製化，價格合理。

自製相本書

iPhoto：每台 Mac 電腦裡頭都有一套，我們用它來製作相本書跟電子喜帖！
hypo：用 iPhoto 製作好的相本書，可以直接上傳到 hypo 洗出來。就算沒有 Mac，hypo 也提供了網頁編輯畫面，只要有網路跟瀏覽器就可以自行排版囉！
愛拍照的老公一枚：不解釋 XD

以上就是我們的廠商資訊啦，有問題的話歡迎留言發問，之後有空再來寫一篇關於婚紗店的：）]]></description>
      <content:encoded><![CDATA[<p>前一陣子剛結完婚，很幸運的遇到許多好廠商的幫助，婚禮辦下來也受到親朋好友一致的好評與詢問。乾脆寫一篇文章來表揚一下所有合作的廠商，幫它們打打廣告，或許剛好有人需要廠商資訊也說不定！<!-- more --></p>
<h3>新祕</h3>
<ul>
<li>南部：紅豆 <a>https://www.facebook.com/Dollydoh</a></li>
<li>北部：小朵 <a>http://www.wretch.cc/blog/verna0228/6860895</a></li>
</ul>
<h3>攝影師</h3>
<ul>
<li>南部：ELin 的 Kerry <a>http://www.wretch.cc/blog/linwedding68</a>。<br />因為我們的特殊要求，所以不到一週的時間就把照片交給我們，真是太強大了！</li>
<li>北部：盧小寶 <a>http://www.wretch.cc/blog/minifeel</a>。<br />因為當天的天色不佳，宴客場地又高挑寬敞，所以小寶還主動帶了兩位助理來協助打燈與拍攝，真是有夠負責又貼心。</li>
</ul>
<h3>場地</h3>
<ul>
<li>新莊翰品酒店：推薦它們的服務專員藍小姐，幫我們解決了棘手的桌數問題。</li>
</ul>
<h3>喜餅</h3>
<ul>
<li>郭元益：推薦板橋店的門市人員黃意潔小姐。</li>
<li>巧瑞吉：位於內湖，大受好評的手工喜餅。<a>http://www.chocorich.com.tw/</a><br />老闆娘是個超級超級超級好的人！沒意外的話，以後我們的彌月應該也是訂它們家的吧 XD</li>
</ul>
<h3>婚禮小物</h3>
<ul>
<li>貓掌棉花糖：來一份。幸福 <a>https://www.facebook.com/hot.dessert</a>，老闆徐小姐也是一個愛貓人士喔！</li>
<li>花椰菜娃娃：IKEA 買來的，笑點十足。全身軟趴趴，是拿來出氣的不二人選！</li>
</ul>
<h3>婚禮佈置</h3>
<ul>
<li>羅絲蔓：<a>http://swatluan.pixnet.net/blog</a></li>
</ul>
<h3>酒商</h3>
<p>因為宴客場地開的酒都比較貴，所以我們另外跟酒商叫酒，價格漂亮，喝不完還可以退酒。</p>
<ul>
<li>格勒皮司：台北市信義區莊敬路289巷4弄10號1F，請找「0936-993-218 蔡先生」，人超好的啦！</li>
</ul>
<h3>捧花、胸花、花束</h3>
<ul>
<li>板橋花市10號攤「馥郁花坊」，0911-827-121 陳小姐。可客製化，價格合理。</li>
</ul>
<h3>自製相本書</h3>
<ul>
<li>iPhoto：每台 Mac 電腦裡頭都有一套，我們用它來製作相本書跟電子喜帖！</li>
<li>hypo：用 iPhoto 製作好的相本書，可以直接上傳到 hypo 洗出來。就算沒有 Mac，hypo 也提供了網頁編輯畫面，只要有網路跟瀏覽器就可以自行排版囉！</li>
<li>愛拍照的老公一枚：不解釋 XD</li>
</ul>
<p>以上就是我們的廠商資訊啦，有問題的話歡迎留言發問，之後有空再來寫一篇關於婚紗店的：）</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/31979257">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F31979257"></div>]]></content:encoded>
      <pubDate>Sat, 20 Apr 2013 12:45:48 +0800</pubDate>
      <category><![CDATA[好店推薦]]></category>
      <comments>http://nelson.pixnet.net/blog/post/31979257#comments</comments>
    </item>
    <item>
      <title><![CDATA[[攝影] 石門老梅綠石槽]]></title>
      <link>http://nelson.pixnet.net/blog/post/31960053</link>
      <guid>http://nelson.pixnet.net/blog/post/31960053</guid>
      <description><![CDATA[老梅石槽是我一直想去拍攝的一個景點，長長的海岩線被大自然刻劃出特殊的槽狀地形，每年大約三到五月就會佈滿綠色的海藻。在今年終於有空可以去看看這個嚮往已久的外拍景點，還好當天的天氣超級好，我在那裡待了一整個下午，也照了好幾張照片，非常的心滿意足！
底下選出幾張個人特別喜歡的照片跟各位分享，有興趣看完整版的人可以到我的 flickr 看看～
&nbsp;
&nbsp;]]></description>
      <content:encoded><![CDATA[<p>老梅石槽是我一直想去拍攝的一個景點，長長的海岩線被大自然刻劃出特殊的槽狀地形，每年大約三到五月就會佈滿綠色的海藻。在今年終於有空可以去看看這個嚮往已久的外拍景點，還好當天的天氣超級好，我在那裡待了一整個下午，也照了好幾張照片，非常的心滿意足！</p>
<p>底下選出幾張個人特別喜歡的照片跟各位分享，有興趣看完整版的人可以<a href="http://www.flickr.com/photos/nelson_tai/sets/72157633166918231/">到我的 flickr 看看</a>～</p>
<p><a href="http://www.flickr.com/photos/7770988@N04/8621910932" target="_blank"><img src="http://farm9.staticflickr.com/8381/8621910932_08fa74fd4a_c.jpg" alt="2013-03-17_24" /><!-- more --></a><a href="http://www.flickr.com/photos/7770988@N04/8621909206" target="_blank"><img src="http://farm9.staticflickr.com/8528/8621909206_db1d3c47a4_c.jpg" alt="2013-03-17_30" /></a><a href="http://www.flickr.com/photos/7770988@N04/8621908744" target="_blank"><img src="http://farm9.staticflickr.com/8402/8621908744_fed1872231_c.jpg" alt="2013-03-17_31" /></a><a href="http://www.flickr.com/photos/7770988@N04/8620807651" target="_blank"><img src="http://farm9.staticflickr.com/8263/8620807651_d6fb2df81f_c.jpg" alt="2013-03-17_32" /></a><a href="http://www.flickr.com/photos/7770988@N04/8621907494" target="_blank"><img src="http://farm9.staticflickr.com/8534/8621907494_822261c7d4_c.jpg" alt="2013-03-17_35" /></a><a href="http://www.flickr.com/photos/7770988@N04/8620804763" target="_blank"><img src="http://farm9.staticflickr.com/8106/8620804763_b3a2689154_c.jpg" alt="2013-03-17_40" /></a><a href="http://www.flickr.com/photos/7770988@N04/8621905530" target="_blank"><img src="http://farm9.staticflickr.com/8114/8621905530_0e171a47ce_c.jpg" alt="2013-03-17_41" /></a><a href="http://www.flickr.com/photos/7770988@N04/8620803531" target="_blank"><img src="http://farm9.staticflickr.com/8397/8620803531_b7d846aa63_c.jpg" alt="2013-03-17_43" /></a><a href="http://www.flickr.com/photos/7770988@N04/8621901692" target="_blank"><img src="http://farm9.staticflickr.com/8529/8621901692_a482cae54a_c.jpg" alt="2013-03-17_50" /></a>&nbsp;</p>
<p><a href="http://www.flickr.com/photos/7770988@N04/8620799627" target="_blank"><img src="http://farm9.staticflickr.com/8251/8620799627_9fe6cbd1f0_c.jpg" alt="2013-03-17_53" /></a><a href="http://www.flickr.com/photos/7770988@N04/8620799341" target="_blank"><img src="http://farm9.staticflickr.com/8537/8620799341_d2f564d178_c.jpg" alt="2013-03-17_54" /></a><a href="http://www.flickr.com/photos/7770988@N04/8621901246" target="_blank"><img src="http://farm9.staticflickr.com/8522/8621901246_bc9142b537_c.jpg" alt="2013-03-17_51" /></a><a href="http://www.flickr.com/photos/7770988@N04/8620798905" target="_blank"><img src="http://farm9.staticflickr.com/8114/8620798905_4a21aefee3_c.jpg" alt="2013-03-17_56" /></a>&nbsp;</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/31960053">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F31960053"></div>]]></content:encoded>
      <pubDate>Sun, 14 Apr 2013 15:42:03 +0800</pubDate>
      <category><![CDATA[外拍]]></category>
      <comments>http://nelson.pixnet.net/blog/post/31960053#comments</comments>
    </item>
    <item>
      <title><![CDATA[[Xcode] Xcode-4-Fixins：讓你的 Xcode 更順手的一些 plugins]]></title>
      <link>http://nelson.pixnet.net/blog/post/31514671</link>
      <guid>http://nelson.pixnet.net/blog/post/31514671</guid>
      <description><![CDATA[Xcode-4-Fixins 是 Xcode 的外掛程式（plug-ins），相容於最新版的 Xcode，它可以新增或強化一些 Xcode 的功能。
功能列表
Xcode-4-Fixins 有以下這些功能：


CurrentLineHighlighter
高亮度目前列，讓你一眼看出游標目前在哪一列。


DisableAnimations
停用動畫效果，顯示/隱藏側邊欄、Debug 區的時候，不會有滑動動畫效果。


FindFix
搜尋的時候，自動顯示所有搜尋選項（例如：忽略大小寫），原本預設是不顯示的。


HideDistractions
編輯區最大化，當然你也可以手動把工具列、側邊欄、Debug 區都隱藏起來。


InhibitTabNextPlaceholder
自動補完的時候，按下 Tab 鍵不會跳到下一個輸入參數的 placeholder，對某些有程式碼排版需求的人來說應該很有用。


TabAcceptsCompletion
自動補完的時候，按下 Tab 鍵會選中補完列表裡被選中的那個項目。預設行為是按下 Tab 鍵會補完前半段大家都一樣的部份。


UserScripts (Experimental)
Xcode 3.x 的 User Scripts 功能。


安裝方式

用 Xcode 開啟 XCFixins.xcworkspace 檔
切換到想安裝的 Scheme
按下 Command-B 編譯
重新啟動 Xcode 就可以了

注意事項
它的專案設定有一個小問題，所以在編譯時會發生找不到 XXX 檔的錯誤導致編譯失敗，參考下圖設定你的「Base SDK」為「Latest OS X」再編譯即可解決。
]]></description>
      <content:encoded><![CDATA[<p><a href="https://github.com/davekeck/Xcode-4-Fixins">Xcode-4-Fixins</a> 是 Xcode 的外掛程式（plug-ins），相容於最新版的 Xcode，它可以新增或強化一些 Xcode 的功能。</p>
<h2>功能列表</h2>
<p><a href="https://github.com/davekeck/Xcode-4-Fixins">Xcode-4-Fixins</a> 有以下這些功能：</p>
<ul>
<li>
<p>CurrentLineHighlighter</p>
<p>高亮度目前列，讓你一眼看出游標目前在哪一列。</p>
</li>
<li>
<p>DisableAnimations</p>
<p>停用動畫效果，顯示/隱藏側邊欄、Debug 區的時候，不會有滑動動畫效果。</p>
</li>
<li>
<p>FindFix</p>
<p>搜尋的時候，自動顯示所有搜尋選項（例如：忽略大小寫），原本預設是不顯示的。</p>
</li>
<li>
<p>HideDistractions</p>
<p>編輯區最大化，當然你也可以手動把工具列、側邊欄、Debug 區都隱藏起來。</p>
</li>
<li>
<p>InhibitTabNextPlaceholder</p>
<p>自動補完的時候，按下 Tab 鍵不會跳到下一個輸入參數的 placeholder，對某些有程式碼排版需求的人來說應該很有用。</p>
</li>
<li>
<p>TabAcceptsCompletion</p>
<p>自動補完的時候，按下 Tab 鍵會選中補完列表裡被選中的那個項目。預設行為是按下 Tab 鍵會補完前半段大家都一樣的部份。</p>
</li>
<li>
<p>UserScripts (Experimental)</p>
<p>Xcode 3.x 的 User Scripts 功能。</p>
</li>
</ul>
<h2>安裝方式</h2>
<ol>
<li>用 Xcode 開啟 XCFixins.xcworkspace 檔</li>
<li>切換到想安裝的 Scheme</li>
<li>按下 Command-B 編譯</li>
<li>重新啟動 Xcode 就可以了</li>
</ol>
<h2>注意事項</h2>
<p>它的專案設定有一個小問題，所以在編譯時會發生找不到 XXX 檔的錯誤導致編譯失敗，參考下圖設定你的「Base SDK」為「Latest OS X」再編譯即可解決。</p>
<p><a title="Flickr 上 nelson_tai 的 XCFixins" href="http://www.flickr.com/photos/nelson_tai/8303629174/"><img src="http://farm9.staticflickr.com/8211/8303629174_770f5e3b2f_z.jpg" alt="XCFixins" width="640" height="215" /></a></p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/31514671">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F31514671"></div>]]></content:encoded>
      <pubDate>Mon, 24 Dec 2012 18:21:00 +0800</pubDate>
      <category><![CDATA[Mac 生活]]></category>
      <comments>http://nelson.pixnet.net/blog/post/31514671#comments</comments>
    </item>
    <item>
      <title><![CDATA[[Mac] DockArt 讓 iTunes 播放時在 Dock 顯示封面]]></title>
      <link>http://nelson.pixnet.net/blog/post/31447789</link>
      <guid>http://nelson.pixnet.net/blog/post/31447789</guid>
      <description><![CDATA[
這是我今天無意間發現的一個小工具，它名叫 DockArt，主要的功用就是讓 iTunes 在播放音樂時，Dock 上的圖示變成專輯封面。
安裝方式很簡單，下載並解壓縮之後，將 DockArt.bundle 複製到「~/Library/iTunes/iTunes Plug-ins」底下，然後重新啟動 iTunes 就可以了。你也可以針對外觀做一些小修改，從〔顯示方式〕-&gt;〔視覺效果〕-&gt;〔選項〕進去設定畫面，就可以調整了！]]></description>
      <content:encoded><![CDATA[<p><a title="Flickr 上 nelson_tai 的 DockArt" href="http://www.flickr.com/photos/nelson_tai/8237260401/"><img src="http://farm9.staticflickr.com/8482/8237260401_51e5a9bb00.jpg" alt="DockArt" width="368" height="206" /></a></p>
<p>這是我今天無意間發現的一個小工具，它名叫 <a href="http://www.splook.com/Software/DockArt.html">DockArt</a>，主要的功用就是讓 iTunes 在播放音樂時，Dock 上的圖示變成專輯封面。</p>
<p>安裝方式很簡單，下載並解壓縮之後，將 DockArt.bundle 複製到「~/Library/iTunes/iTunes Plug-ins」底下，然後重新啟動 iTunes 就可以了。你也可以針對外觀做一些小修改，從〔顯示方式〕-&gt;〔視覺效果〕-&gt;〔選項〕進去設定畫面，就可以調整了！</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/31447789">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F31447789"></div>]]></content:encoded>
      <pubDate>Sun, 02 Dec 2012 23:26:33 +0800</pubDate>
      <category><![CDATA[Mac 生活]]></category>
      <comments>http://nelson.pixnet.net/blog/post/31447789#comments</comments>
    </item>
    <item>
      <title><![CDATA[[Mac] 一些實用的 QuickLook plugins]]></title>
      <link>http://nelson.pixnet.net/blog/post/31419029</link>
      <guid>http://nelson.pixnet.net/blog/post/31419029</guid>
      <description><![CDATA[Mac 有個很棒的功能叫做「QuickLook」，它讓我們瀏覽檔案時，按下空白鍵就能快速瀏覽選中的檔案。更棒的是，我們可以透過新增 plugins 的方式，讓它支援更多種類的檔案。
底下是我目前在用的一些 QuickLook plugins，安裝的方法很簡單，把解壓縮之後得到的 .qlgenerator 檔放到 ~/Library/QuickLook/ 底下就可以了，若是沒有 QuickLook 目錄就自己建立一個。

預覽 Markdown

qlmarkdown，個人比較推薦這個
MMD-QuickLook

預覽程式碼

qlcolorcode
]]></description>
      <content:encoded><![CDATA[<p>Mac 有個很棒的功能叫做「QuickLook」，它讓我們瀏覽檔案時，按下空白鍵就能快速瀏覽選中的檔案。更棒的是，我們可以透過新增 plugins 的方式，讓它支援更多種類的檔案。</p>
<p>底下是我目前在用的一些 QuickLook plugins，安裝的方法很簡單，把解壓縮之後得到的 .qlgenerator 檔放到 ~/Library/QuickLook/ 底下就可以了，若是沒有 QuickLook 目錄就自己建立一個。</p>
<hr />
<h5>預覽 Markdown</h5>
<ul>
<li><a href="https://github.com/toland/qlmarkdown">qlmarkdown</a>，個人比較推薦這個</li>
<li><a href="https://github.com/ttscoff/MMD-QuickLook">MMD-QuickLook</a></li>
</ul>
<h5>預覽程式碼</h5>
<ul>
<li><a href="http://code.google.com/p/qlcolorcode/">qlcolorcode</a></li>
</ul>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/31419029">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F31419029"></div>]]></content:encoded>
      <pubDate>Sun, 25 Nov 2012 21:21:57 +0800</pubDate>
      <category><![CDATA[Mac 生活]]></category>
      <comments>http://nelson.pixnet.net/blog/post/31419029#comments</comments>
    </item>
    <item>
      <title><![CDATA[[小技巧] 減少 Evernote 筆記所佔用的空間]]></title>
      <link>http://nelson.pixnet.net/blog/post/31364473</link>
      <guid>http://nelson.pixnet.net/blog/post/31364473</guid>
      <description><![CDATA[Evernote 是很多人愛用的筆記工具，最棒的是它支援了 Windows 跟 Mac，而且還有 iPhone、iPad、Android 版本，以及各種瀏覽器套件，也因此它讓「存取記事」變成一件很容易的事情。
前不久我也在用 Evernote 幫我整理一些資料，比較特別的是，這些參考資料絕大多數是圖檔。我要做的事情就是: 1.上網找到我需要的圖，然後 2.把圖存放到 Evernote 裡頭。
最快速簡單的做法就是直接把圖片從瀏覽器裡頭，拖拉到 Evernote 裡，這樣就會自動把圖片插入當前的記事了。但過沒多久我發現這樣不對，因為透過這種方法建立的記事，體積會非常非常的大，原因是因為這樣插入的圖片都是 bmp 檔，檔案大小動輒數 MB。當圖檔一多，該則記事的體積就會變得很大。
後來我發現一個簡單的解法，

在電腦裡頭隨便建立一個臨時的資料夾，像我就直接在桌面建了一個。
先把圖檔存到這個資料夾裡。現在大部分的瀏覽器都很聰明，直接把圖片從網頁拖拉到資料夾，就能另存了。
再把圖檔從資料夾拖拉到 Evernote 的記事裡，這樣圖檔就會以它原本的格式插入，不會轉成 bmp 檔。

以上的小技巧分享給各位參考:)]]></description>
      <content:encoded><![CDATA[<p><a href="http://evernote.com/intl/zh-tw/">Evernote</a> 是很多人愛用的筆記工具，最棒的是它支援了 Windows 跟 Mac，而且還有 iPhone、iPad、Android 版本，以及各種瀏覽器套件，也因此它讓「存取記事」變成一件很容易的事情。</p>
<p>前不久我也在用 <a href="http://evernote.com/intl/zh-tw/">Evernote</a> 幫我整理一些資料，比較特別的是，這些參考資料絕大多數是圖檔。我要做的事情就是: 1.上網找到我需要的圖，然後 2.把圖存放到 <a href="http://evernote.com/intl/zh-tw/">Evernote</a> 裡頭。</p>
<p>最快速簡單的做法就是直接把圖片從瀏覽器裡頭，拖拉到 <a href="http://evernote.com/intl/zh-tw/">Evernote</a> 裡，這樣就會自動把圖片插入當前的記事了。但過沒多久我發現這樣不對，因為透過這種方法建立的記事，體積會非常非常的大，原因是因為這樣插入的圖片都是 bmp 檔，檔案大小動輒數 MB。當圖檔一多，該則記事的體積就會變得很大。</p>
<p>後來我發現一個簡單的解法，</p>
<ol>
<li>在電腦裡頭隨便建立一個臨時的資料夾，像我就直接在桌面建了一個。</li>
<li>先把圖檔存到這個資料夾裡。現在大部分的瀏覽器都很聰明，直接把圖片從網頁拖拉到資料夾，就能另存了。</li>
<li>再把圖檔從資料夾拖拉到 <a href="http://evernote.com/intl/zh-tw/">Evernote</a> 的記事裡，這樣圖檔就會以它原本的格式插入，不會轉成 bmp 檔。</li>
</ol>
<p>以上的小技巧分享給各位參考:)</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/31364473">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F31364473"></div>]]></content:encoded>
      <pubDate>Wed, 07 Nov 2012 22:29:49 +0800</pubDate>
      <category><![CDATA[軟體教學]]></category>
      <comments>http://nelson.pixnet.net/blog/post/31364473#comments</comments>
    </item>
    <item>
      <title><![CDATA[[Mac] Dash plugin for XCode]]></title>
      <link>http://nelson.pixnet.net/blog/post/31326225</link>
      <guid>http://nelson.pixnet.net/blog/post/31326225</guid>
      <description><![CDATA[因為工作的關係，我買了人生第一台 MacBook Pro，也寫了第一個 iPhone App，也因此我的開發環境就是在 XCode。之前我也寫了一篇文章，介紹了 Dash 這款超棒的文件查詢/程式碼片段管理工具，它好到讓我心甘情願掏錢買正版！
最近發現另一個 Plugin 可以讓我的開發流程更加方便，它就是 Dash-Plugin-for-Xcode。它的功用很簡單也很實用，就是讓你在 XCode 寫程式的時候，對某道 API 按下「Option+點擊」的時候，會用 Dash 開啟這道 API 的檢閱畫面，而不是用 XCode 內建的檢閱工具。因為 XCode 內建的實在是不夠好用，我還是習慣用 Dash 來查詢，有了這個 Plugin 之後，可以節省我大量的時間！
那要怎麼安裝這個 Plugin 呢？

下載 Dash-Plugin-for-Xcode 原始碼。
用 XCode 開啟這個專案。
按下 Cmd+B 編譯它。
重開 XCode。

這樣就完成了！若你想要暫時停用它，只要到〔Edit〕選單底下，取消〔Open Quick Help in Dash〕即可。]]></description>
      <content:encoded><![CDATA[<p>因為工作的關係，我買了人生第一台 MacBook Pro，也寫了第一個 <a href="https://itunes.apple.com/tw/app/bon-sheng-huo-mei-tu-sui-shoupo/id554918184?mt=8">iPhone App</a>，也因此我的開發環境就是在 XCode。之前我也<a href="http://nelson.pixnet.net/blog/post/30996379">寫了一篇文章</a>，介紹了 <a href="http://itunes.apple.com/us/app/dash/id458034879?ls=1&amp;mt=12">Dash</a> 這款超棒的文件查詢/程式碼片段管理工具，它好到讓我心甘情願掏錢買正版！</p>
<p>最近發現另一個 Plugin 可以讓我的開發流程更加方便，它就是 <a href="https://github.com/omz/Dash-Plugin-for-Xcode">Dash-Plugin-for-Xcode</a>。它的功用很簡單也很實用，就是讓你在 XCode 寫程式的時候，對某道 API 按下「Option+點擊」的時候，會用 Dash 開啟這道 API 的檢閱畫面，而不是用 XCode 內建的檢閱工具。因為 XCode 內建的實在是不夠好用，我還是習慣用 Dash 來查詢，有了這個 Plugin 之後，可以節省我大量的時間！</p>
<p>那要怎麼安裝這個 Plugin 呢？</p>
<ol>
<li>下載 <a href="https://github.com/omz/Dash-Plugin-for-Xcode">Dash-Plugin-for-Xcode</a> 原始碼。</li>
<li>用 XCode 開啟這個專案。</li>
<li>按下 Cmd+B 編譯它。</li>
<li>重開 XCode。</li>
</ol>
<p>這樣就完成了！若你想要暫時停用它，只要到〔Edit〕選單底下，取消〔Open Quick Help in Dash〕即可。</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/31326225">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F31326225"></div>]]></content:encoded>
      <pubDate>Sun, 28 Oct 2012 20:50:04 +0800</pubDate>
      <category><![CDATA[Mac 生活]]></category>
      <comments>http://nelson.pixnet.net/blog/post/31326225#comments</comments>
    </item>
    <item>
      <title><![CDATA[[分享] Sublime Text 2 初學者教學影片]]></title>
      <link>http://nelson.pixnet.net/blog/post/31201801</link>
      <guid>http://nelson.pixnet.net/blog/post/31201801</guid>
      <description><![CDATA[Sublime Text 2 是最近幾年崛起的一款文字編輯器，同時擁有 Windows / Mac / Linux 版本。因為它很輕巧又很強大有彈性，所以受到許多人的喜愛（尤其是那些原本愛用 TextMate 2 的人），不過就是因為它太強大、太有彈性了，使得很多人不知道怎麼用，而無法發揮它真正的實力。今天發現有人提供了 Sublime Text 2 的影片教學，看完之後絕對會大大提昇功力！https://tutsplus.com/course/improve-workflow-in-sublime-text-2/]]></description>
      <content:encoded><![CDATA[<p><a href="http://www.sublimetext.com/">Sublime Text 2</a> 是最近幾年崛起的一款文字編輯器，同時擁有 Windows / Mac / Linux 版本。<br /><br />因為它很輕巧又很強大有彈性，所以受到許多人的喜愛（尤其是那些原本愛用 TextMate 2 的人），不過就是因為它太強大、太有彈性了，使得很多人不知道怎麼用，而無法發揮它真正的實力。<br /><br />今天發現有人提供了 Sublime Text 2 的影片教學，看完之後絕對會大大提昇功力！<br /><br /><a href="https://tutsplus.com/course/improve-workflow-in-sublime-text-2/">https://tutsplus.com/course/improve-workflow-in-sublime-text-2/</a></p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/31201801">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F31201801"></div>]]></content:encoded>
      <pubDate>Wed, 26 Sep 2012 16:44:22 +0800</pubDate>
      <category><![CDATA[Mac 生活]]></category>
      <comments>http://nelson.pixnet.net/blog/post/31201801#comments</comments>
    </item>
    <item>
      <title><![CDATA[[Mac] 將 Sublime Text 2 設為 Git 的文字編輯器]]></title>
      <link>http://nelson.pixnet.net/blog/post/31179981</link>
      <guid>http://nelson.pixnet.net/blog/post/31179981</guid>
      <description><![CDATA[Sublime Text 2 是近期崛起的一套文字編輯器，有 Windows / Linux / Mac 版，目前我在 Mac 底下就是用它當做我的一般文字編輯器，它的功能很強大，不過我都只用它最基本的功能而已。
在我開發程式的時候，我很需要一套版本控制系統，目前我使用的是 Git，它真的幫了我很大的忙，尤其在開 branch 的時候更是方便！Git 允許使用者設定它預設的文字編輯器，上網找了一下，找到如何將預設改成 Sublime Text 2。只要輸入以下兩行指令就可以了。
sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl git config --global core.editor "subl -n -w" ]]></description>
      <content:encoded><![CDATA[<p><a href="http://www.sublimetext.com/">Sublime Text 2</a> 是近期崛起的一套文字編輯器，有 Windows / Linux / Mac 版，目前我在 Mac 底下就是用它當做我的一般文字編輯器，它的功能很強大，不過我都只用它最基本的功能而已。</p>
<p>在我開發程式的時候，我很需要一套版本控制系統，目前我使用的是 <a href="http://git-scm.com/">Git</a>，它真的幫了我很大的忙，尤其在開 branch 的時候更是方便！Git 允許使用者設定它預設的文字編輯器，上網找了一下，找到如何將預設改成 Sublime Text 2。只要輸入以下兩行指令就可以了。</p>
<p><code>sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl <br />git config --global core.editor "subl -n -w" </code></p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/31179981">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F31179981"></div>]]></content:encoded>
      <pubDate>Wed, 19 Sep 2012 16:05:51 +0800</pubDate>
      <category><![CDATA[Mac 生活]]></category>
      <comments>http://nelson.pixnet.net/blog/post/31179981#comments</comments>
    </item>
    <item>
      <title><![CDATA[Dash - 最好用的 API 瀏覽器與程式片段管理工具]]></title>
      <link>http://nelson.pixnet.net/blog/post/30996379</link>
      <guid>http://nelson.pixnet.net/blog/post/30996379</guid>
      <description><![CDATA[跟作者確認過，Dash 在免費使用過一段時間之後，畫面會變成粉紅色，必須付費購買才能恢復正常。但就算不付費也能繼續使用，只是看了很不舒服！
從 Windows 轉換到 Mac 底下開發程式，不知不覺也半年多過去了，越來越能夠體會為什麼大家會說 Mac 最適合拿來寫程式。真的，不用不知道，用了就回不去了！
對程式開發者而言，有兩件事情是最常做的：一是查詢各種 API 文件，一是拿之前寫過的程式碼複製貼上 XD 今天要跟大家介紹這個工具，它很漂亮的幫我解決了這兩大問題。
Dash (Docs &amp; Snippets) 它支援了超多種的 API 文件集（docset），讓你可以快速的查詢想了解的關鍵字。同時它也能幫忙管理各種程式碼片段（snippets），當然你想拿來儲存常用的文字片段也是可以的。老實說，XCode 裡頭的查詢功能做得還不夠好，對於 Objective-C 我又還是新手，所以得時常翻閱文件以及常用的一些程式碼片段，所以 Dash 的出現，真的給了我很大的幫助。更棒的是，它竟然是免。費。的！
1.你可以在 Dash 裡儲存各種程式碼片段，也能加上多組標籤，當然它也支援非常多種的語法高亮度。以後在網路上找到什麼片段，一律存到這裡就可以了，日後要用一律來這裡找就好，多方便。

2.這是它的文件瀏覽器，只要輸入關鍵字，就可以立刻搜尋，而且它支援了模糊搜尋，就算關鍵字輸入不完整，也能找到資料。我覺得它比 XCode 好用的地方在於，它把所有的方法跟常數都列在左側，讓使用者可以很方便的交叉查詢。

3.這是它內建的 API 文件集，它在搜尋時會搜尋所有啟用的文件集。當然啟用的越多，搜尋速度就越慢，所以我通常都只啟用有需要的文件集。（像我現在在開發 iOS APP，我就只有啟用 iOS Library）

4.除了內建的之外，它也提供很多其他程式語言的文件集，有需要的話你也可以從這個畫面自行下載。

5.Dash 是個免費軟體，只不過會在視窗的右上角出現一小塊粉紅色的購買提醒，以及時常會在視窗最下方出現一小條類似狀態列的提示文字，而且兩者都小到完全不會干擾到你的正常工作。你購買之後，提示訊息就不會再出現，除此之外，免費版跟付費版一模一樣，這真的是個佛心軟體阿！
]]></description>
      <content:encoded><![CDATA[<p><span style="color: #ff0000;"><strong><span style="font-size: 14pt;">跟作者確認過，Dash 在免費使用過一段時間之後，畫面會變成粉紅色，必須付費購買才能恢復正常。但就算不付費也能繼續使用，只是看了很不舒服！</span></strong></span></p>
<p>從 Windows 轉換到 Mac 底下開發程式，不知不覺也半年多過去了，越來越能夠體會為什麼大家會說 Mac 最適合拿來寫程式。真的，不用不知道，用了就回不去了！</p>
<p>對程式開發者而言，有兩件事情是最常做的：一是查詢各種 API 文件，一是拿之前寫過的程式碼複製貼上 XD 今天要跟大家介紹這個工具，它很漂亮的幫我解決了這兩大問題。</p>
<p><a href="http://itunes.apple.com/us/app/dash/id458034879?ls=1&amp;mt=12">Dash (Docs &amp; Snippets)</a> 它支援了超多種的 API 文件集（docset），讓你可以快速的查詢想了解的關鍵字。同時它也能幫忙管理各種程式碼片段（snippets），當然你想拿來儲存常用的文字片段也是可以的。老實說，XCode 裡頭的查詢功能做得還不夠好，對於 Objective-C 我又還是新手，所以得時常翻閱文件以及常用的一些程式碼片段，所以 Dash 的出現，真的給了我很大的幫助。更棒的是，它竟然是免。費。的！<!-- more --></p>
<p><span style="font-size: 14pt;"><strong>1.</strong></span><br />你可以在 Dash 裡儲存各種程式碼片段，也能加上多組標籤，當然它也支援非常多種的語法高亮度。以後在網路上找到什麼片段，一律存到這裡就可以了，日後要用一律來這裡找就好，多方便。</p>
<p><a title="Flickr 上 nelson_tai 的 Dash-1" href="http://www.flickr.com/photos/nelson_tai/7696337730/"><img src="http://farm9.staticflickr.com/8287/7696337730_865aac0dd0_c.jpg" alt="Dash-1" width="800" height="512" /></a></p>
<p><span style="font-size: 14pt;"><strong>2.</strong></span><br />這是它的文件瀏覽器，只要輸入關鍵字，就可以立刻搜尋，而且它支援了模糊搜尋，就算關鍵字輸入不完整，也能找到資料。我覺得它比 XCode 好用的地方在於，它把所有的方法跟常數都列在左側，讓使用者可以很方便的交叉查詢。</p>
<p><a title="Flickr 上 nelson_tai 的 Dash-2" href="http://www.flickr.com/photos/nelson_tai/7696337872/"><img src="http://farm9.staticflickr.com/8154/7696337872_cd288e20a2_c.jpg" alt="Dash-2" width="800" height="512" /></a></p>
<p><span style="font-size: 14pt;"><strong>3.</strong></span><br />這是它內建的 API 文件集，它在搜尋時會搜尋所有啟用的文件集。當然啟用的越多，搜尋速度就越慢，所以我通常都只啟用有需要的文件集。（像我現在在開發 iOS APP，我就只有啟用 iOS Library）</p>
<p><a title="Flickr 上 nelson_tai 的 Dash-3" href="http://www.flickr.com/photos/nelson_tai/7696337988/"><img src="http://farm9.staticflickr.com/8019/7696337988_2ab9fb3610_o.png" alt="Dash-3" width="447" height="430" /></a></p>
<p><span style="font-size: 14pt;"><strong>4.</strong></span><br />除了內建的之外，它也提供很多其他程式語言的文件集，有需要的話你也可以從這個畫面自行下載。</p>
<p><a title="Flickr 上 nelson_tai 的 Dash-4" href="http://www.flickr.com/photos/nelson_tai/7696338090/"><img src="http://farm9.staticflickr.com/8023/7696338090_1d231ddcb0_o.png" alt="Dash-4" width="447" height="411" /></a></p>
<p><span style="font-size: 14pt;"><strong>5.</strong></span><br />Dash 是個免費軟體，只不過會在視窗的右上角出現一小塊粉紅色的購買提醒，以及時常會在視窗最下方出現一小條類似狀態列的提示文字，而且兩者都小到完全不會干擾到你的正常工作。你購買之後，提示訊息就不會再出現，除此之外，免費版跟付費版一模一樣，這真的是個佛心軟體阿！</p>
<p><a title="Flickr 上 nelson_tai 的 Dash-5" href="http://www.flickr.com/photos/nelson_tai/7696337606/"><img src="http://farm9.staticflickr.com/8284/7696337606_989ec52ba4_o.png" alt="Dash-5" width="511" height="238" /></a></p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/30996379">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F30996379"></div>]]></content:encoded>
      <pubDate>Thu, 02 Aug 2012 15:28:30 +0800</pubDate>
      <category><![CDATA[Mac 生活]]></category>
      <comments>http://nelson.pixnet.net/blog/post/30996379#comments</comments>
    </item>
    <item>
      <title><![CDATA[[Firefox] Re-Pagination - 讓火狐自動載入下一頁]]></title>
      <link>http://nelson.pixnet.net/blog/post/30929034</link>
      <guid>http://nelson.pixnet.net/blog/post/30929034</guid>
      <description><![CDATA[天天使用瀏覽器上網衝浪的各位，一定時常會遇到有些網頁的內容很多，所以得按「下一頁」來觀看接下來的內容。內容若是少一點那倒還好，但若是內容一多，就得按好幾次「下一頁」，閱讀體驗就這麼被中斷了好幾次。
還好，科技始終來自於惰性，早就有人開發出解決這個問題的相關套件。在 Firefox 底下，最多人使用的大概就是 AutoPager 或 AutoPagerize 吧，這兩個套件的運作原理是類似的：官方都維護了一組支援的網站解析規則，若是你瀏覽的網站剛好有被支援，就會在快要滾動到網頁底部前，自動載入下一頁。
但是它們都有個共通的大問題：若你瀏覽的網站尚未被支援，就無法自動載入下一頁了！（當然你可以自己網站解析規則啦，但不是每個人都會阿～）
然後，我一個不小心就發現了這個問題的解法，那就是今天要推薦給各位的套件：Re-Pagination
Re-Pagination 是 Firefox 專用的套件，它最與眾不同的地方在於：它沒有所謂「支援的網站清單」。咦？沒有支援的網站清單，那它要怎麼使用？
使用方式很簡單：

在網頁的「下一頁」連結按右鍵，跳出右鍵選單。
選擇「Re-Pagination」&rarr;選擇要自動載入的頁面個數，通常我都選擇「Load all」。

然後它就會自動幫你載入下一頁了，很簡單吧！目前我同時安裝了 AutoPager 跟 Re-Pagination，平常我會逛的網站大多都已被 AutoPager 支援，遇到不支援的網站，再呼叫 Re-Pagination 出來幫忙就可以了。
&nbsp;
&nbsp;]]></description>
      <content:encoded><![CDATA[<p>天天使用瀏覽器上網衝浪的各位，一定時常會遇到有些網頁的內容很多，所以得按「下一頁」來觀看接下來的內容。內容若是少一點那倒還好，但若是內容一多，就得按好幾次「下一頁」，閱讀體驗就這麼被中斷了好幾次。</p>
<p>還好，科技始終來自於惰性，早就有人開發出解決這個問題的相關套件。在 Firefox 底下，最多人使用的大概就是 <a href="https://addons.mozilla.org/en-US/firefox/addon/autopager/">AutoPager</a> 或 <a href="http://autopagerize.net/">AutoPagerize</a> 吧，這兩個套件的運作原理是類似的：官方都維護了一組支援的網站解析規則，若是你瀏覽的網站剛好有被支援，就會在快要滾動到網頁底部前，自動載入下一頁。</p>
<p>但是它們都有個共通的大問題：若你瀏覽的網站尚未被支援，就無法自動載入下一頁了！（當然你可以自己網站解析規則啦，但不是每個人都會阿～）</p>
<p>然後，我一個不小心就發現了這個問題的解法，那就是今天要推薦給各位的套件：<a href="https://addons.mozilla.org/zh-TW/firefox/addon/repagination/">Re-Pagination<!-- more --></a><a href="https://addons.mozilla.org/zh-TW/firefox/addon/repagination/"><br /></a></p>
<p><a href="https://addons.mozilla.org/zh-TW/firefox/addon/repagination/">Re-Pagination</a> 是 Firefox 專用的套件，它最與眾不同的地方在於：它沒有所謂「支援的網站清單」。咦？沒有支援的網站清單，那它要怎麼使用？</p>
<p>使用方式很簡單：</p>
<ol>
<li>在網頁的「下一頁」連結按右鍵，跳出右鍵選單。</li>
<li>選擇「Re-Pagination」&rarr;選擇要自動載入的頁面個數，通常我都選擇「Load all」。</li>
</ol>
<p>然後它就會自動幫你載入下一頁了，很簡單吧！目前我同時安裝了 <a href="https://addons.mozilla.org/en-US/firefox/addon/autopager/">AutoPager</a> 跟 <a href="https://addons.mozilla.org/zh-TW/firefox/addon/repagination/">Re-Pagination</a>，平常我會逛的網站大多都已被 <a href="https://addons.mozilla.org/en-US/firefox/addon/autopager/">AutoPager</a> 支援，遇到不支援的網站，再呼叫 <a href="https://addons.mozilla.org/zh-TW/firefox/addon/repagination/">Re-Pagination</a> 出來幫忙就可以了。</p>
<p><a title="Flickr 上 nelson_tai 的 Re-Pagination" href="http://www.flickr.com/photos/nelson_tai/7565003310/"><img src="http://farm8.staticflickr.com/7130/7565003310_bfe4326f60_o.png" alt="Re-Pagination" width="498" height="576" /></a>&nbsp;</p>
<p>&nbsp;</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/30929034">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F30929034"></div>]]></content:encoded>
      <pubDate>Sat, 14 Jul 2012 08:52:45 +0800</pubDate>
      <category><![CDATA[Firefox 套件教學]]></category>
      <comments>http://nelson.pixnet.net/blog/post/30929034#comments</comments>
    </item>
    <item>
      <title><![CDATA[[Firefox] 網址圖片預覽 - 方便的預覽套件]]></title>
      <link>http://nelson.pixnet.net/blog/post/30808520</link>
      <guid>http://nelson.pixnet.net/blog/post/30808520</guid>
      <description><![CDATA[最近在找給 Firefox 用的圖片預覽套件，我要的功能很簡單，就是把滑鼠游標移到圖片或圖片連結時，可以跳出原圖讓我看，不用再讓我多開一個分頁。
找著找著，我發現了 網址圖片預覽 這一個好用的套件，它完全符合我的需求，推薦給大家試試看 :-)
&nbsp;]]></description>
      <content:encoded><![CDATA[<p>最近在找給 Firefox 用的圖片預覽套件，我要的功能很簡單，就是把滑鼠游標移到圖片或圖片連結時，可以跳出原圖讓我看，不用再讓我多開一個分頁。</p>
<p>找著找著，我發現了 <a href="https://addons.mozilla.org/zh-TW/firefox/addon/image-preview/">網址圖片預覽</a> 這一個好用的套件，它完全符合我的需求，推薦給大家試試看 :-)</p>
<p><a title="Flickr 上 nelson_tai 的 圖片預覽" href="http://www.flickr.com/photos/nelson_tai/7341427948/"><img src="http://farm9.staticflickr.com/8007/7341427948_df0edc4abf_o.png" alt="圖片預覽" width="799" height="596" /></a>&nbsp;</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/30808520">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F30808520"></div>]]></content:encoded>
      <pubDate>Tue, 05 Jun 2012 21:50:59 +0800</pubDate>
      <category><![CDATA[Firefox 套件教學]]></category>
      <comments>http://nelson.pixnet.net/blog/post/30808520#comments</comments>
    </item>
    <item>
      <title><![CDATA[[iApp] Mr. Reader - iPad 上最完美的 Google Reader Client]]></title>
      <link>http://nelson.pixnet.net/blog/post/30640790</link>
      <guid>http://nelson.pixnet.net/blog/post/30640790</guid>
      <description><![CDATA[這幾年 iPad 越來越普及了，你是否也有一台呢？若是有的話，你通常拿來做什麼？就我個人而言，我最常拿來閱讀電子書以及網路文章，尤其仰賴在 Google Reader 訂閱的文章。
在 iPad 上頭閱讀 Google Reader 是件很舒服的事，當然首先得要有一個用得順手的 Google Reader Client，就我個人所知，比較常見的有這幾個：feedly、Flipboard、MobileRSS HD、Reeder for iPad、Perfect RSS Reader。
以上這些，我幾乎都有用過，但總是有一些讓我不滿意的地方：界面不夠好、功能不夠齊全、操作體驗不佳、作者更新緩慢等等。在找到心目中最好用的 Client 之前，我一直用 feedly 撐著，雖然它不夠好，但是至少已經符合我大部分的需求了。
直到我遇見了 Mr. Reader （官方網站，App Store）

1. 簡單大方的界面
&nbsp;
它的界面佈置分成左右兩邊，讓你快速瀏覽目錄與文章列表，文章列表還會顯示每一則文章的部份預覽以及縮圖，此外它還支援了 Google Reader 的標籤 (Tags) 功能，並非每個 client 都有支援的。

2. 乾淨的文章閱讀版面
&nbsp;
它的文章閱讀版面就是這麼乾淨，讓你可以專注於閱讀文章。雖然乾淨，但其實功能卻一點都不缺：

按右上角的〔X〕或是兩隻手指一縮，就可以關閉文章
捲動到最上方，會自動載入上一篇文章；捲動到最下方，會自動載入下一篇文章
下方那一排工具列，可以自由擺放在左邊、下方、或是右邊


3. 整合多家「稍後閱讀」功能
&nbsp;
有些文章來源並沒有提供完整的文章內容，只好連回原網站觀看完整內容，它貼心的將這個功能也整合在文章閱讀版面裡，只要切換上方頁籤到〔Web〕就可以。
但是有些網站就是廣告一大堆阿，不只讓人難以專心閱讀，更會拖慢網頁載入速度，這種情況在 iPad 上更為明顯。還好 Mr. Reader 整合了 Instapaper、Readability、Read It Later 三大家最有名的「稍後閱讀」服務，幫你把文章丟給他們處理，然後顯示乾淨的全文閱讀給你。這三家處理文章的結果會稍微不太一樣，你可以每個都試試看。
這個功能大大提高了閱讀文章的流暢度與舒適度，而這個貼心的整合功能我還沒在其他 app 上看過，這是我最喜歡 Mr. Reader 的原因。而且更棒的是，它會自動記住你選擇的顯示方式，下次瀏覽該來源網站的文章時就會自動套用，真的是超棒的！

4. 整合多家服務
&nbsp;
看到一篇喜歡的文章，想要分享到 Facebook 或 Twitter、想要寄給別人、或是想要收藏到 Read It Later 嗎？Mr. Reader 整合了非常多的線上服務，你可以依照自己喜好決定要啟用哪些服務，當然也可以調整常用服務的順序。

5. 最舒適的閱讀姿態
&nbsp;
相信很多人跟我一樣，喜歡窩在床上或是靠著沙發，然後舒舒服服的開始閱讀。Mr. Reader 內建了一個「拇指板」的功能，只要手指從左側或右側滑入，「拇指板」就會跳出來讓你快速切換到上一則或下一則，也可以關閉文章。這個小設計大大的減低移動手指的距離，你說有沒有很貼心！

6. 自訂最舒適的字體
&nbsp;
身為一套閱讀器，可以讓使用者自訂字體是很基本的功能，但是把自訂功能做得這麼彈性的，我還是第一次看到。Mr. Reader 可以設定字體靠左、置中、靠右對齊，可以設定文章跟邊框的距離、可以設定字體、當然也可以調整字體大小。就是讓你可以找出最舒適的閱讀環境！

7. 豐富的設定
&nbsp;
Mr. Reader 的設定很豐富。它可以設定佈景主題，因為我時常在睡前閱讀，所以我採用黑底白字的主題比較舒服，甚至它還提供了主題編輯器，讓你可以自己設計主題。
設定裡頭，最重要的就是「Articles Table」、「Article View」、以及「Services」三大項。「Articles Table」設定文章列表的顯示方式，「Article View」設定單篇文章的顯示方式，「Services」設定要使用哪些線上服務。

當初要購買 Mr. Reader 之前，我其實也考慮了一陣子，畢竟 $3.99 美金的價格算是稍微偏貴，但是買來到現在也好幾個月了，我的感想只有「相見恨晚」可以形容！另外，作者是個很重視使用者意見的人，我曾經寫過幾次信給他，每次都非常快就獲得回應，這也是我很喜愛這套 app 的原因之一。
有在使用 iPad 且跟我一樣愛用 Google Reader 的朋友，若你還沒找到適合自己的 app，不妨給 Mr. Reader 一個機會吧！]]></description>
      <content:encoded><![CDATA[<p>這幾年 iPad 越來越普及了，你是否也有一台呢？若是有的話，你通常拿來做什麼？就我個人而言，我最常拿來閱讀電子書以及網路文章，尤其仰賴在 Google Reader 訂閱的文章。</p>
<p>在 iPad 上頭閱讀 Google Reader 是件很舒服的事，當然首先得要有一個用得順手的 Google Reader Client，就我個人所知，比較常見的有這幾個：<a href="http://itunes.apple.com/us/app/feedly/id396069556?mt=8">feedly</a>、<a href="http://itunes.apple.com/us/app/flipboard/id358801284?mt=8">Flipboard</a>、<a href="http://itunes.apple.com/us/app/mobilerss-hd-google-rss-news/id375300540?mt=8">MobileRSS HD</a>、<a href="http://itunes.apple.com/us/app/reeder-for-ipad/id375661689?mt=8">Reeder for iPad</a>、<a href="http://itunes.apple.com/us/app/perfect-rss-reader/id454431310?mt=8">Perfect RSS Reader</a>。</p>
<p>以上這些，我幾乎都有用過，但總是有一些讓我不滿意的地方：界面不夠好、功能不夠齊全、操作體驗不佳、作者更新緩慢等等。在找到心目中最好用的 Client 之前，我一直用 <a href="http://itunes.apple.com/us/app/feedly/id396069556?mt=8">feedly</a> 撐著，雖然它不夠好，但是至少已經符合我大部分的需求了。</p>
<p>直到我遇見了 <em>Mr. Reader</em> （<a href="http://www.curioustimes.de/mrreader/">官方網站</a>，<a href="http://itunes.apple.com/tw/app/mr.-reader/id412874834?mt=8">App Store</a>）<!-- more --></p>
<hr />
<h3>1. 簡單大方的界面</h3>
<p><a title="Flickr 上 nelson_tai 的 Mr.Reader-1" href="http://www.flickr.com/photos/nelson_tai/6951705672/"><img src="http://farm8.staticflickr.com/7056/6951705672_37f4bd0912_z.jpg" alt="Mr.Reader-1" width="480" height="640" /></a>&nbsp;</p>
<p>它的界面佈置分成左右兩邊，讓你快速瀏覽目錄與文章列表，文章列表還會顯示每一則文章的部份預覽以及縮圖，此外它還支援了 Google Reader 的標籤 (Tags) 功能，並非每個 client 都有支援的。</p>
<hr />
<h3>2. 乾淨的文章閱讀版面</h3>
<p><a title="Flickr 上 nelson_tai 的 Mr.Reader-2" href="http://www.flickr.com/photos/nelson_tai/7097776435/"><img src="http://farm6.staticflickr.com/5160/7097776435_37ae08eb2c_z.jpg" alt="Mr.Reader-2" width="480" height="640" /></a>&nbsp;</p>
<p>它的文章閱讀版面就是這麼乾淨，讓你可以專注於閱讀文章。雖然乾淨，但其實功能卻一點都不缺：</p>
<ul>
<li>按右上角的〔X〕或是兩隻手指一縮，就可以關閉文章</li>
<li>捲動到最上方，會自動載入上一篇文章；捲動到最下方，會自動載入下一篇文章</li>
<li>下方那一排工具列，可以自由擺放在左邊、下方、或是右邊</li>
</ul>
<hr />
<h3>3. 整合多家「稍後閱讀」功能</h3>
<p><a title="Flickr 上 nelson_tai 的 Mr.Reader-3" href="http://www.flickr.com/photos/nelson_tai/6951705448/"><img src="http://farm8.staticflickr.com/7130/6951705448_3582a96f9e_z.jpg" alt="Mr.Reader-3" width="480" height="640" /></a>&nbsp;</p>
<p>有些文章來源並沒有提供完整的文章內容，只好連回原網站觀看完整內容，它貼心的將這個功能也整合在文章閱讀版面裡，只要切換上方頁籤到〔Web〕就可以。</p>
<p>但是有些網站就是廣告一大堆阿，不只讓人難以專心閱讀，更會拖慢網頁載入速度，這種情況在 iPad 上更為明顯。還好 <a href="http://www.curioustimes.de/mrreader/">Mr. Reader</a> 整合了 <a href="http://www.instapaper.com/">Instapaper</a>、<a href="http://www.readability.com/">Readability</a>、<a href="http://getpocket.com/">Read It Later</a> 三大家最有名的「稍後閱讀」服務，幫你把文章丟給他們處理，然後顯示乾淨的全文閱讀給你。這三家處理文章的結果會稍微不太一樣，你可以每個都試試看。</p>
<p>這個功能大大提高了閱讀文章的流暢度與舒適度，而這個貼心的整合功能我還沒在其他 app 上看過，這是我最喜歡 <a href="http://www.curioustimes.de/mrreader/">Mr. Reader</a> 的原因。而且更棒的是，它會自動記住你選擇的顯示方式，下次瀏覽該來源網站的文章時就會自動套用，真的是超棒的！</p>
<hr />
<h3>4. 整合多家服務</h3>
<p><a title="Flickr 上 nelson_tai 的 Mr.Reader-4" href="http://www.flickr.com/photos/nelson_tai/6951705740/"><img src="http://farm6.staticflickr.com/5152/6951705740_25ca02d03c_z.jpg" alt="Mr.Reader-4" width="480" height="640" /></a>&nbsp;</p>
<p>看到一篇喜歡的文章，想要分享到 Facebook 或 Twitter、想要寄給別人、或是想要收藏到 Read It Later 嗎？<a href="http://www.curioustimes.de/mrreader/">Mr. Reader</a> 整合了非常多的線上服務，你可以依照自己喜好決定要啟用哪些服務，當然也可以調整常用服務的順序。</p>
<hr />
<h3>5. 最舒適的閱讀姿態</h3>
<p><a title="Flickr 上 nelson_tai 的 Mr.Reader-5" href="http://www.flickr.com/photos/nelson_tai/7097776315/"><img src="http://farm8.staticflickr.com/7127/7097776315_668f402c54_z.jpg" alt="Mr.Reader-5" width="480" height="640" /></a>&nbsp;</p>
<p>相信很多人跟我一樣，喜歡窩在床上或是靠著沙發，然後舒舒服服的開始閱讀。<a href="http://www.curioustimes.de/mrreader/">Mr. Reader</a> 內建了一個「拇指板」的功能，只要手指從左側或右側滑入，「拇指板」就會跳出來讓你快速切換到上一則或下一則，也可以關閉文章。這個小設計大大的減低移動手指的距離，你說有沒有很貼心！</p>
<hr />
<h3>6. 自訂最舒適的字體</h3>
<p><a title="Flickr 上 nelson_tai 的 Mr.Reader-6" href="http://www.flickr.com/photos/nelson_tai/6951705562/"><img src="http://farm6.staticflickr.com/5458/6951705562_166bd39560_z.jpg" alt="Mr.Reader-6" width="480" height="640" /></a>&nbsp;</p>
<p>身為一套閱讀器，可以讓使用者自訂字體是很基本的功能，但是把自訂功能做得這麼彈性的，我還是第一次看到。<a href="http://www.curioustimes.de/mrreader/">Mr. Reader</a> 可以設定字體靠左、置中、靠右對齊，可以設定文章跟邊框的距離、可以設定字體、當然也可以調整字體大小。就是讓你可以找出最舒適的閱讀環境！</p>
<hr />
<h3>7. 豐富的設定</h3>
<p><a title="Flickr 上 nelson_tai 的 Mr.Reader-7" href="http://www.flickr.com/photos/nelson_tai/7097776399/"><img src="http://farm6.staticflickr.com/5232/7097776399_4c95cbd62d_z.jpg" alt="Mr.Reader-7" width="480" height="640" /></a>&nbsp;</p>
<p><a href="http://www.curioustimes.de/mrreader/">Mr. Reader</a> 的設定很豐富。它可以設定佈景主題，因為我時常在睡前閱讀，所以我採用黑底白字的主題比較舒服，甚至它還提供了主題編輯器，讓你可以自己設計主題。</p>
<p>設定裡頭，最重要的就是「Articles Table」、「Article View」、以及「Services」三大項。「Articles Table」設定文章列表的顯示方式，「Article View」設定單篇文章的顯示方式，「Services」設定要使用哪些線上服務。</p>
<hr />
<p>當初要購買 <a href="http://www.curioustimes.de/mrreader/">Mr. Reader</a> 之前，我其實也考慮了一陣子，畢竟 $3.99 美金的價格算是稍微偏貴，但是買來到現在也好幾個月了，我的感想只有「相見恨晚」可以形容！另外，作者是個很重視使用者意見的人，我曾經寫過幾次信給他，每次都非常快就獲得回應，這也是我很喜愛這套 app 的原因之一。</p>
<p>有在使用 iPad 且跟我一樣愛用 Google Reader 的朋友，若你還沒找到適合自己的 app，不妨給 <a href="http://www.curioustimes.de/mrreader/">Mr. Reader</a> 一個機會吧！</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/30640790">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F30640790"></div>]]></content:encoded>
      <pubDate>Sat, 21 Apr 2012 13:36:59 +0800</pubDate>
      <category><![CDATA[Mac 生活]]></category>
      <comments>http://nelson.pixnet.net/blog/post/30640790#comments</comments>
    </item>
    <item>
      <title><![CDATA[台灣氣象資訊 - 實用的 Google Chrome 套件]]></title>
      <link>http://nelson.pixnet.net/blog/post/30586308</link>
      <guid>http://nelson.pixnet.net/blog/post/30586308</guid>
      <description><![CDATA[
這個週末，發現了一款實用的 Google Chrome 套件：台灣氣象資訊。就如同上圖所呈現的，它會去抓中央氣象局提供的天氣預報資料，然後顯示未來一週的預報。
簡單，但是很實用！推薦給大家。]]></description>
      <content:encoded><![CDATA[<p><a title="Flickr 上 nelson_tai 的 天氣預報" href="http://www.flickr.com/photos/nelson_tai/7055359653/"><img src="http://farm8.staticflickr.com/7097/7055359653_0c194fabe8_o.png" alt="天氣預報" width="749" height="623" /></a></p>
<p>這個週末，發現了一款實用的 <a href="https://www.google.com/chrome">Google Chrome</a> 套件：<a href="https://chrome.google.com/webstore/detail/kiapojhefcndhgbpdpelmndcndgkmjph">台灣氣象資訊</a>。就如同上圖所呈現的，它會去抓<a href="http://www.cwb.gov.tw/">中央氣象局</a>提供的天氣預報資料，然後顯示未來一週的預報。</p>
<p>簡單，但是很實用！推薦給大家。</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/30586308">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F30586308"></div>]]></content:encoded>
      <pubDate>Sun, 08 Apr 2012 10:04:39 +0800</pubDate>
      <category><![CDATA[網路相關]]></category>
      <comments>http://nelson.pixnet.net/blog/post/30586308#comments</comments>
    </item>
    <item>
      <title><![CDATA[[筆記] 讓 SourceTree 讀取自定的 SSH key]]></title>
      <link>http://nelson.pixnet.net/blog/post/30585202</link>
      <guid>http://nelson.pixnet.net/blog/post/30585202</guid>
      <description><![CDATA[我目前都在 Mac 底下開發，用 Git 來管理我的程式碼，比較一番之後決定用 SourceTree 來做為 Git client。SourceTree 是一款 Mac 底下的版本控制系統 client，它支援 Mercurial 跟 Git 這兩套分散式版本控制系統，同時也支援了 GitHub、Bitbucket、Kiln 這三個網站。
最近我們架了一個 Git server 來統一存放程式碼，並且要透過 SSH 才能登入，而 SSH key 是管理員給的。研究了一下，發現 SourceTree 並沒有匯入 SSH key 的功能，它是直接去讀取你系統預設的 SSH key。以下就是讓 SourceTree 讀到特定 SSH key 的方法，記錄下來免得日後忘了。

假設管理員已經給我一組 SSH key 了
檢查是否有 ~/.ssh 目錄，沒有的話就自己建立一個
將 SSH key 複製到 ~/.ssh 目錄底下
切換到 ~/.ssh 目錄
修改 SSH key 的名稱跟權限，這樣 SourceTree才找的到

chmod 600 &lt;your_ssh_key&gt;
mv &lt;your_ssh_key&gt; id_rsa


開啟 SourceTree 並連到 repository，應該會跳出提示要你輸入 SSH key 的 passphrase，將管理員給你的 passphrase 輸入即可。
這樣就完成了。
]]></description>
      <content:encoded><![CDATA[<p>我目前都在 Mac 底下開發，用 <a title="Git" href="http://git-scm.com/">Git</a> 來管理我的程式碼，比較一番之後決定用 <a title="SourceTree" href="http://www.sourcetreeapp.com/">SourceTree</a> 來做為 Git client。<a title="SourceTree" href="http://www.sourcetreeapp.com/">SourceTree</a> 是一款 Mac 底下的版本控制系統 client，它支援 <a title="Mercurial" href="http://mercurial.selenic.com/">Mercurial</a> 跟 <a title="Git" href="http://git-scm.com/">Git</a> 這兩套分散式版本控制系統，同時也支援了 <a title="GitHub" href="https://github.com/">GitHub</a>、<a title="Bitbucket" href="https://bitbucket.org/">Bitbucket</a>、<a title="Kiln" href="http://www.fogcreek.com/kiln/">Kiln</a> 這三個網站。</p>
<p>最近我們架了一個 Git server 來統一存放程式碼，並且要透過 SSH 才能登入，而 SSH key 是管理員給的。研究了一下，發現 <a title="SourceTree" href="http://www.sourcetreeapp.com/">SourceTree</a> 並沒有匯入 SSH key 的功能，它是直接去讀取你系統預設的 SSH key。以下就是讓 <a title="SourceTree" href="http://www.sourcetreeapp.com/">SourceTree</a> 讀到特定 SSH key 的方法，記錄下來免得日後忘了。</p>
<ol>
<li>假設管理員已經給我一組 SSH key 了</li>
<li>檢查是否有 ~/.ssh 目錄，沒有的話就自己建立一個</li>
<li>將 SSH key 複製到 ~/.ssh 目錄底下</li>
<li>切換到 ~/.ssh 目錄</li>
<li>修改 SSH key 的名稱跟權限，這樣 <a title="SourceTree" href="http://www.sourcetreeapp.com/">SourceTree</a>才找的到
<ul>
<li>chmod 600 &lt;your_ssh_key&gt;</li>
<li>mv &lt;your_ssh_key&gt; id_rsa</li>
</ul>
</li>
<li>開啟 <a title="SourceTree" href="http://www.sourcetreeapp.com/">SourceTree</a> 並連到 repository，應該會跳出提示要你輸入 SSH key 的 passphrase，將管理員給你的 passphrase 輸入即可。</li>
<li>這樣就完成了。</li>
</ol>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/30585202">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F30585202"></div>]]></content:encoded>
      <pubDate>Sat, 07 Apr 2012 22:15:16 +0800</pubDate>
      <category><![CDATA[Mac 生活]]></category>
      <comments>http://nelson.pixnet.net/blog/post/30585202#comments</comments>
    </item>
    <item>
      <title><![CDATA[[教學] 用 Gmail 直接瀏覽附加檔案]]></title>
      <link>http://nelson.pixnet.net/blog/post/30543102</link>
      <guid>http://nelson.pixnet.net/blog/post/30543102</guid>
      <description><![CDATA[
最近我跟幾位部落格站長合力撰寫的 雲端工作術：Google教我的100個工作方法 已經開賣了，這是裡頭其中一篇文章，經同意發表於此。
本書蒐集的各種方法，都是我們幾位作者實際應用於日常工作上的，相信有一定的參考價值，有興趣的人快去看看吧！


時常跟人家書信往來，時常會需要挾帶一些附加檔案，尤其是在跟人家談公事時，更是三不五時就會挾帶 doc、pdf、xls、ppt、壓縮檔、圖檔等資料。一般來說，我們會將附加檔案一個個下載回電腦之後，再一個個慢慢看。  可是當附加檔案一多的時候，你就會發現這樣做很麻煩！還好 Gmail 很貼心的提供了線上直接瀏覽附加檔案的功能，除了讓人能夠在線上直接瀏覽之外，還可以各個單獨下載，或是整批打包下載喔！
一眼就看出是否有附加檔案
要知道某一封信件是否有附加檔案，除了慢慢把信件點開來看之外，其實還有更快速的方法。有注意到每封信的右側，有的會有一個迴紋針的圖示，有的卻沒有嗎？這個迴紋針圖示就代表有附加檔案（想成把附加檔案用迴紋針別在這封信上就對了）。

線上直接瀏覽附加檔案
要怎麼瀏覽這些附加檔案呢？其實很簡單！Gmail 會在信末列出所有的附加檔案，我們只要點擊「下載」就可以將檔案存放到自己的硬碟裡，也可以點擊「檢視」直接觀看檔案內容。因為檔案會被 Google 處理過再顯示於瀏覽器裡頭，所以就算我們電腦裡沒有安裝 Adobe Reader 或是 Microsoft Office，也可以瀏覽 pdf、doc、xls、ppt 等文件！

簡易的 PDF 閱讀器
Gmail 對 PDF 檔的支援還算不錯，就算文件裡頭用到了中文或其他國家的文字，也能正常顯示。此外它也提供了縮放、存檔、列印等功能，我們只要把滑鼠游標移動到頁面右下角，就會彈出一條工具列。

壓縮檔也能線上瀏覽！
除了文件檔跟 PDF 檔之外，甚至連壓縮檔也能線上瀏覽，同樣的我們只要點擊「檢視」之後，Google 就會列出壓縮檔裡頭的檔案清單，如果這些檔案是 Google 有支援的，只要在檔案名稱上點一下，就可以檢視檔案內容了！

跟 Google 文件整合良好
Google 擁有許多網路服務，其中一樣是 Google 文件，它讓我們可以在線上處理大部分的 Office 文件。若是我們收到的附加檔案是 doc、xls、ppt 檔，就會多出一個選項，讓我們直接用 Google 文件開啟，如此一來除了可以線上觀看之外，還可以線上編輯內容。

把附加檔案的迴紋針圖示移到前頭
根據 Gmail 的預設，附加檔案的迴紋針圖示會顯示在右側，但其實我個人覺得這是個不太好的設計，因為眼球必須移動比較長的距離，才可以看到圖示。
在 Gmail 設定的〔研究室〕分頁底下，提供了一個「移動圖示欄位」的選項，讓我們可以選擇要把圖示移到左側，這樣一來就可以一眼看出這封信有沒有附加檔案。
]]></description>
      <content:encoded><![CDATA[<p><a title="" href="http://www.flickr.com/photos/nelson_tai/6871599088/"><img src="http://farm8.staticflickr.com/7192/6871599088_27ff39d0ef_n.jpg" alt="封面" width="230" height="320" /></a></p>
<p>最近我跟幾位部落格站長合力撰寫的 <a title="雲端工作術：Google教我的100個工作方法" href="http://findbook.tw/book/9789861993331/basic">雲端工作術：Google教我的100個工作方法</a> 已經開賣了，這是裡頭其中一篇文章，經同意發表於此。</p>
<p>本書蒐集的各種方法，都是我們幾位作者實際應用於日常工作上的，相信有一定的參考價值，有興趣的人快去看看吧！</p>
<hr />
<p><!-- more --></p>
<p>時常跟人家書信往來，時常會需要挾帶一些附加檔案，尤其是在跟人家談公事時，更是三不五時就會挾帶 doc、pdf、xls、ppt、壓縮檔、圖檔等資料。一般來說，我們會將附加檔案一個個下載回電腦之後，再一個個慢慢看。 <br /><br /> 可是當附加檔案一多的時候，你就會發現這樣做很麻煩！還好 Gmail 很貼心的提供了線上直接瀏覽附加檔案的功能，除了讓人能夠在線上直接瀏覽之外，還可以各個單獨下載，或是整批打包下載喔！</p>
<h2>一眼就看出是否有附加檔案</h2>
<p>要知道某一封信件是否有附加檔案，除了慢慢把信件點開來看之外，其實還有更快速的方法。有注意到每封信的右側，有的會有一個迴紋針的圖示，有的卻沒有嗎？這個迴紋針圖示就代表有附加檔案（想成把附加檔案用迴紋針別在這封信上就對了）。</p>
<p><a title="Flickr 上 nelson_tai 的 1" href="http://www.flickr.com/photos/nelson_tai/7017619997/"><img src="http://farm8.staticflickr.com/7200/7017619997_bd19d758a3_o.png" alt="1" width="1024" height="768" /></a></p>
<h2>線上直接瀏覽附加檔案</h2>
<p>要怎麼瀏覽這些附加檔案呢？其實很簡單！Gmail 會在信末列出所有的附加檔案，我們只要點擊「下載」就可以將檔案存放到自己的硬碟裡，也可以點擊「檢視」直接觀看檔案內容。因為檔案會被 Google 處理過再顯示於瀏覽器裡頭，所以就算我們電腦裡沒有安裝 Adobe Reader 或是 Microsoft Office，也可以瀏覽 pdf、doc、xls、ppt 等文件！</p>
<p><a title="Flickr 上 nelson_tai 的 2" href="http://www.flickr.com/photos/nelson_tai/6871512652/"><img src="http://farm8.staticflickr.com/7060/6871512652_8cbfdc73ce_o.png" alt="2" width="1024" height="768" /></a></p>
<h2>簡易的 PDF 閱讀器</h2>
<p>Gmail 對 PDF 檔的支援還算不錯，就算文件裡頭用到了中文或其他國家的文字，也能正常顯示。此外它也提供了縮放、存檔、列印等功能，我們只要把滑鼠游標移動到頁面右下角，就會彈出一條工具列。</p>
<p><a title="Flickr 上 nelson_tai 的 3" href="http://www.flickr.com/photos/nelson_tai/7017620287/"><img src="http://farm8.staticflickr.com/7137/7017620287_c4bba96e02_o.png" alt="3" width="1024" height="768" /></a></p>
<h2>壓縮檔也能線上瀏覽！</h2>
<p>除了文件檔跟 PDF 檔之外，甚至連壓縮檔也能線上瀏覽，同樣的我們只要點擊「檢視」之後，Google 就會列出壓縮檔裡頭的檔案清單，如果這些檔案是 Google 有支援的，只要在檔案名稱上點一下，就可以檢視檔案內容了！</p>
<p><a title="Flickr 上 nelson_tai 的 4" href="http://www.flickr.com/photos/nelson_tai/7017620587/"><img src="http://farm8.staticflickr.com/7211/7017620587_c2ec529b78_o.png" alt="4" width="1024" height="768" /></a></p>
<h2>跟 Google 文件整合良好</h2>
<p>Google 擁有許多網路服務，其中一樣是 Google 文件，它讓我們可以在線上處理大部分的 Office 文件。若是我們收到的附加檔案是 doc、xls、ppt 檔，就會多出一個選項，讓我們直接用 Google 文件開啟，如此一來除了可以線上觀看之外，還可以線上編輯內容。</p>
<p><a title="Flickr 上 nelson_tai 的 5" href="http://www.flickr.com/photos/nelson_tai/6871512890/"><img src="http://farm8.staticflickr.com/7138/6871512890_625fa8e1bc_o.png" alt="5" width="1024" height="768" /></a></p>
<h2>把附加檔案的迴紋針圖示移到前頭</h2>
<p>根據 Gmail 的預設，附加檔案的迴紋針圖示會顯示在右側，但其實我個人覺得這是個不太好的設計，因為眼球必須移動比較長的距離，才可以看到圖示。</p>
<p>在 Gmail 設定的〔研究室〕分頁底下，提供了一個「移動圖示欄位」的選項，讓我們可以選擇要把圖示移到左側，這樣一來就可以一眼看出這封信有沒有附加檔案。</p>
<p><a title="Flickr 上 nelson_tai 的 6" href="http://www.flickr.com/photos/nelson_tai/6871512990/"><img src="http://farm8.staticflickr.com/7197/6871512990_07f5e0bd6e_o.png" alt="6" width="1024" height="768" /></a></p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/30543102">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F30543102"></div>]]></content:encoded>
      <pubDate>Mon, 26 Mar 2012 22:39:04 +0800</pubDate>
      <category><![CDATA[軟體教學]]></category>
      <comments>http://nelson.pixnet.net/blog/post/30543102#comments</comments>
    </item>
    <item>
      <title><![CDATA[[遊記] 武陵農場賞櫻一日遊！]]></title>
      <link>http://nelson.pixnet.net/blog/post/30451056</link>
      <guid>http://nelson.pixnet.net/blog/post/30451056</guid>
      <description><![CDATA[最近賞櫻花似乎已經變成一種全民運動了，每到假日就會湧現賞花人潮跟車潮，上個禮拜我們臨時起意，決定要起個大早去武陵農場賞櫻。是有多麼臨時勒，就大概是前一天晚上九點決定這樣～是有多們大早勒，就大概是三點半起床、四點半在雪隧這樣～XD

想想大概也有十幾二十年沒去武陵農場了吧，趁著這次臨時起意去躬逢其盛也不錯。武陵農場屬於台中，但從宜蘭上去會好走許多，只要沿著台七線轉台七甲，過思源啞口就快到了，除了幾處施工路段還有幾處濃霧路段之外，其實這條山路非常好走。
還好出門的早，還不到八點我們就已經在武陵門口售票亭了，倒是在這個售票亭足足塞了四十幾分鐘才進場，沒辦法，車子實在太多了。

雖然在宜蘭的時候，天氣不是很好，可是一過思源啞口，就是不同的兩個世界阿！晴空萬里、陽光煦煦，完完全全是個出遊賞花的大好時機。農場裡種植的紅粉佳人也正好是盛開期，盛開的程度我只能用「爆炸」兩個字來形容！



為了避開人潮，我們隨意的往上走，不知不覺走到了茶園。一片綠油油的茶園，交織櫻花在其中，這樣的美景也是別有一番風味。再配上蔚藍的天空，真的再也找不出比這更棒的時光。坐在樹下乘涼的時候，一陣風吹來還會帶下片片落櫻，看到這麼棒的景色，再怎麼早起也值得了！





大約十點多離開，此時外頭的車潮早已回堵二三十公里，不禁慶幸自己沒有賴床 :D 武陵接下來還有各種不同的花季，還沒去的朋友趕快找個時間去吧，別忘了要很早很早出門才不會人擠人喔！
]]></description>
      <content:encoded><![CDATA[<p>最近賞櫻花似乎已經變成一種全民運動了，每到假日就會湧現賞花人潮跟車潮，上個禮拜我們臨時起意，決定要起個大早去武陵農場賞櫻。是有多麼臨時勒，就大概是前一天晚上九點決定這樣～是有多們大早勒，就大概是三點半起床、四點半在雪隧這樣～XD</p>
<p><a title="Flickr 上 nelson_tai 的 2012-02-18_08" href="http://www.flickr.com/photos/nelson_tai/6901214247/"><img src="http://farm8.staticflickr.com/7065/6901214247_80a1dece75_z.jpg" alt="2012-02-18_08" width="640" height="480" /></a><!-- more --></p>
<p>想想大概也有十幾二十年沒去武陵農場了吧，趁著這次臨時起意去躬逢其盛也不錯。武陵農場屬於台中，但從宜蘭上去會好走許多，只要沿著台七線轉台七甲，過思源啞口就快到了，除了幾處施工路段還有幾處濃霧路段之外，其實這條山路非常好走。</p>
<p>還好出門的早，還不到八點我們就已經在武陵門口售票亭了，倒是在這個售票亭足足塞了四十幾分鐘才進場，沒辦法，車子實在太多了。</p>
<p><a title="Flickr 上 nelson_tai 的 2012-02-18_13" href="http://www.flickr.com/photos/nelson_tai/6901216181/"><img src="http://farm8.staticflickr.com/7068/6901216181_4ab16d6e09_z.jpg" alt="2012-02-18_13" width="640" height="480" /></a></p>
<p>雖然在宜蘭的時候，天氣不是很好，可是一過思源啞口，就是不同的兩個世界阿！晴空萬里、陽光煦煦，完完全全是個出遊賞花的大好時機。農場裡種植的紅粉佳人也正好是盛開期，盛開的程度我只能用「爆炸」兩個字來形容！</p>
<p><a title="Flickr 上 nelson_tai 的 2012-02-18_11" href="http://www.flickr.com/photos/nelson_tai/6901215215/"><img src="http://farm8.staticflickr.com/7182/6901215215_e125e71a7a_z.jpg" alt="2012-02-18_11" width="480" height="640" /></a></p>
<p><a title="Flickr 上 nelson_tai 的 2012-02-18_12" href="http://www.flickr.com/photos/nelson_tai/6901215695/"><img src="http://farm8.staticflickr.com/7210/6901215695_4f0baa84f8_z.jpg" alt="2012-02-18_12" width="640" height="480" /></a></p>
<p><a title="Flickr 上 nelson_tai 的 2012-02-18_47" href="http://www.flickr.com/photos/nelson_tai/6901229059/"><img src="http://farm8.staticflickr.com/7200/6901229059_5328e85a47_z.jpg" alt="2012-02-18_47" width="480" height="640" /></a></p>
<p>為了避開人潮，我們隨意的往上走，不知不覺走到了茶園。一片綠油油的茶園，交織櫻花在其中，這樣的美景也是別有一番風味。再配上蔚藍的天空，真的再也找不出比這更棒的時光。坐在樹下乘涼的時候，一陣風吹來還會帶下片片落櫻，看到這麼棒的景色，再怎麼早起也值得了！</p>
<p><a title="Flickr 上 nelson_tai 的 2012-02-18_56" href="http://www.flickr.com/photos/nelson_tai/6901233645/"><img src="http://farm8.staticflickr.com/7045/6901233645_e19dc1975b_z.jpg" alt="2012-02-18_56" width="480" height="640" /></a></p>
<p><a title="Flickr 上 nelson_tai 的 2012-02-18_61" href="http://www.flickr.com/photos/nelson_tai/6901235737/"><img src="http://farm8.staticflickr.com/7043/6901235737_e2146fff55_z.jpg" alt="2012-02-18_61" width="640" height="480" /></a></p>
<p><a title="Flickr 上 nelson_tai 的 2012-02-18_71" href="http://www.flickr.com/photos/nelson_tai/6901240627/"><img src="http://farm8.staticflickr.com/7177/6901240627_2128a4278f_z.jpg" alt="2012-02-18_71" width="640" height="480" /></a></p>
<p><a title="Flickr 上 nelson_tai 的 2012-02-18_70" href="http://www.flickr.com/photos/nelson_tai/6901240003/"><img src="http://farm8.staticflickr.com/7185/6901240003_a6ac9ee564_z.jpg" alt="2012-02-18_70" width="640" height="480" /></a></p>
<p><a title="Flickr 上 nelson_tai 的 2012-02-18_69" href="http://www.flickr.com/photos/nelson_tai/6901239521/"><img src="http://farm8.staticflickr.com/7055/6901239521_d7b3eaf8d6_z.jpg" alt="2012-02-18_69" width="640" height="480" /></a></p>
<p>大約十點多離開，此時外頭的車潮早已回堵二三十公里，不禁慶幸自己沒有賴床 :D 武陵接下來還有各種不同的花季，還沒去的朋友趕快找個時間去吧，別忘了要很早很早出門才不會人擠人喔！</p>
<p><a title="Flickr 上 nelson_tai 的 2012-02-18_64" href="http://www.flickr.com/photos/nelson_tai/6901237509/"><img src="http://farm8.staticflickr.com/7191/6901237509_3cdaa9679a_z.jpg" alt="2012-02-18_64" width="640" height="480" /></a></p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/30451056">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F30451056"></div>]]></content:encoded>
      <pubDate>Wed, 29 Feb 2012 23:53:38 +0800</pubDate>
      <category><![CDATA[心情]]></category>
      <comments>http://nelson.pixnet.net/blog/post/30451056#comments</comments>
    </item>
    <item>
      <title><![CDATA[XMind - 讓點子不再雜亂無章！]]></title>
      <link>http://nelson.pixnet.net/blog/post/30362757</link>
      <guid>http://nelson.pixnet.net/blog/post/30362757</guid>
      <description><![CDATA[軟體版本：3.2.1 軟體類型：Freeware 語言介面：多國語言包含正體中文 系統需求：Windows / Mac OS X / Linux，Java Runtime 官方網頁：http://www.xmind.net/ 下載連結：http://www.xmind.net/downloads/
相信你一定有過這種經驗：別人丟給你一件工作，但你卻不知道從何下手。或者你有好多不錯的想法，卻不知道要如何統整它們。其實你不是不會，你只是少了一個好用的組織∕分析∕發想工具！
XMind 是個跨平台而且免費的心智圖軟體，關於心智圖的說明可以參考維基百科的解釋，XMind 內建許多實用的範本，也提供了多種圖示以及頁面佈局方式，有助於使用者根據不同需求做搭配。


利用 XMind 紀錄點子
XMind 是心智圖軟體，它最一開始的功能就是用來組織以及激發點子，從最一開始的中心主題開始，向外發散出各種相關的想法，再一個個發想出更細節的想法。
不過因為它的紀錄本身就是一種非常有階層組織化的表現，加上它提供了多種豐富的圖示、顏色、佈局架構、以及各種範本，所以也有許多使用者利用它來紀錄許多有趣的東西，甚至在付費版本裡，它還可以拿來製作甘特圖！
官方網站提供了一個供使用者分享的園地，網址在 http://www.xmind.net/share/，有空不妨上去逛逛，或許可以看到正好適合你使用的心智圖喔：）


我用 XMind 追蹤程式碼
有在業界寫過程式的人應該或多或少都聽過 Source Insight 這套軟體的名號，它可以用來分析你的程式碼，讓你能夠快速查看各個資料結構跟函式的內容，也可以得知某個函式被哪些函式呼叫到，是用來追蹤程式碼的利器。
但是程式碼通常都很龐大，追到後面就忘了前面，所以我都會同時開啟 XMind，用來紀錄我是從哪個函式開始追蹤的，這個函式裡頭又呼叫了哪些函式，而這些函式們又各自呼叫了哪些函式。
透過這個紀錄的步驟，不只能加深對程式碼的記憶與理解，也可以對整體架構更加清楚，日後也可以根據這個紀錄，方便修改、整理、或是閱讀程式碼。


XMind 也能製作讀書心得筆記
看完一本書，若是能製作一份心得筆記的話，就更加能夠理解與吸收書本的內容，也方便日後的閱讀與複習。
XMind 提供的功能，讓你可以圖文並茂的標記出各個重點，也能夠方便的上下文對照參考。而且它也有類似 Excel 的分頁功能，讓你能夠將不同的大主題分別放置於不同的分頁。
所以我就會在第一頁紀錄整本書的大重點，以及彼此的脈絡關係，然後其他分頁則是用來紀錄各個大章節的重點，若有需要互相參照的就再加上一個參照連結，點一下即可跳到參照的頁面。


規劃一個完美的旅行吧！
想規劃一個小旅行，有好多想玩的、想看的、想吃的，卻不知道該怎麼紀錄才好嗎？試試看 XMind 配合 Google 地圖吧！
我個人的習慣是，先把想去的景點跟想吃的美食標記在 Google 地圖上，然後根據地理位置排出順序，剔除掉太遠或太不順路的點，最後用 XMind 紀錄每一天要去的點。若是覺得有需要的話，也可以在每個點下方標注地址跟電話。
最後把它匯出成圖片檔，再傳到我的 iPad 裡，帶上一台 GPS 導航，就可以出門囉！


將檔案匯出成圖檔
XMind 提供了將心智圖匯出成其他檔案的功能，你可以從【檔案】&rarr;【匯出】開啟匯出視窗，付費版的 XMind 能將做好的心智圖匯出成 Word 或 PowerPoint 檔。免費版的可以將心智圖匯出成圖檔，我們只要再手動將圖片插入到 Word 或 PowerPoint 就可以了。
]]></description>
      <content:encoded><![CDATA[<blockquote>軟體版本：3.2.1<br /> 軟體類型：Freeware<br /> 語言介面：多國語言包含正體中文<br /> 系統需求：Windows / Mac OS X / Linux，Java Runtime<br /> 官方網頁：<a title="XMind Website" href="http://www.xmind.net/">http://www.xmind.net/</a><br /> 下載連結：<a href="http://www.xmind.net/downloads/">http://www.xmind.net/downloads/</a></blockquote>
<p>相信你一定有過這種經驗：別人丟給你一件工作，但你卻不知道從何下手。或者你有好多不錯的想法，卻不知道要如何統整它們。其實你不是不會，你只是少了一個好用的組織∕分析∕發想工具！</p>
<p><a title="XMind Website" href="http://www.xmind.net/">XMind</a> 是個跨平台而且免費的心智圖軟體，關於心智圖的說明可以參考<a href="http://0rz.tw/3c2Be">維基百科的解釋</a>，<a title="XMind Website" href="http://www.xmind.net/">XMind</a> 內建許多實用的範本，也提供了多種圖示以及頁面佈局方式，有助於使用者根據不同需求做搭配。</p>
<p><!-- more --></p>
<hr />
<h2>利用 XMind 紀錄點子</h2>
<p><a title="XMind Website" href="http://www.xmind.net/">XMind</a> 是心智圖軟體，它最一開始的功能就是用來組織以及激發點子，從最一開始的中心主題開始，向外發散出各種相關的想法，再一個個發想出更細節的想法。</p>
<p>不過因為它的紀錄本身就是一種非常有階層組織化的表現，加上它提供了多種豐富的圖示、顏色、佈局架構、以及各種範本，所以也有許多使用者利用它來紀錄許多有趣的東西，甚至在付費版本裡，它還可以拿來製作甘特圖！</p>
<p>官方網站提供了一個供使用者分享的園地，網址在 <a href="http://www.xmind.net/share/">http://www.xmind.net/share/</a>，有空不妨上去逛逛，或許可以看到正好適合你使用的心智圖喔：）</p>
<p><a title="Flickr 上 nelson_tai 的 01" href="http://www.flickr.com/photos/nelson_tai/6856475263/"><img src="http://farm8.staticflickr.com/7210/6856475263_5fc8d8f9f7_z.jpg" alt="01" width="640" height="384" /></a></p>
<hr />
<h2>我用 XMind 追蹤程式碼</h2>
<p>有在業界寫過程式的人應該或多或少都聽過 <a href="http://www.sourceinsight.com/">Source Insight</a> 這套軟體的名號，它可以用來分析你的程式碼，讓你能夠快速查看各個資料結構跟函式的內容，也可以得知某個函式被哪些函式呼叫到，是用來追蹤程式碼的利器。</p>
<p>但是程式碼通常都很龐大，追到後面就忘了前面，所以我都會同時開啟 <a title="XMind Website" href="http://www.xmind.net/">XMind</a>，用來紀錄我是從哪個函式開始追蹤的，這個函式裡頭又呼叫了哪些函式，而這些函式們又各自呼叫了哪些函式。</p>
<p>透過這個紀錄的步驟，不只能加深對程式碼的記憶與理解，也可以對整體架構更加清楚，日後也可以根據這個紀錄，方便修改、整理、或是閱讀程式碼。</p>
<p><a title="Flickr 上 nelson_tai 的 02" href="http://www.flickr.com/photos/nelson_tai/6856475343/"><img src="http://farm8.staticflickr.com/7042/6856475343_8e4f00bcc1_z.jpg" alt="02" width="640" height="412" /></a></p>
<hr />
<h2>XMind 也能製作讀書心得筆記</h2>
<p>看完一本書，若是能製作一份心得筆記的話，就更加能夠理解與吸收書本的內容，也方便日後的閱讀與複習。</p>
<p><a title="XMind Website" href="http://www.xmind.net/">XMind</a> 提供的功能，讓你可以圖文並茂的標記出各個重點，也能夠方便的上下文對照參考。而且它也有類似 Excel 的分頁功能，讓你能夠將不同的大主題分別放置於不同的分頁。</p>
<p>所以我就會在第一頁紀錄整本書的大重點，以及彼此的脈絡關係，然後其他分頁則是用來紀錄各個大章節的重點，若有需要互相參照的就再加上一個參照連結，點一下即可跳到參照的頁面。</p>
<p><a title="Flickr 上 nelson_tai 的 03" href="http://www.flickr.com/photos/nelson_tai/6856475457/"><img src="http://farm8.staticflickr.com/7185/6856475457_65978d8747_z.jpg" alt="03" width="640" height="412" /></a></p>
<hr />
<h2>規劃一個完美的旅行吧！</h2>
<p>想規劃一個小旅行，有好多想玩的、想看的、想吃的，卻不知道該怎麼紀錄才好嗎？試試看 <a title="XMind Website" href="http://www.xmind.net/">XMind</a> 配合 <a href="http://maps.google.com.tw">Google 地圖</a>吧！</p>
<p>我個人的習慣是，先把想去的景點跟想吃的美食標記在 <a href="http://maps.google.com.tw">Google 地圖</a>上，然後根據地理位置排出順序，剔除掉太遠或太不順路的點，最後用 <a title="XMind Website" href="http://www.xmind.net/">XMind</a> 紀錄每一天要去的點。若是覺得有需要的話，也可以在每個點下方標注地址跟電話。</p>
<p>最後把它匯出成圖片檔，再傳到我的 <a href="http://www.apple.com/tw/ipad/">iPad</a> 裡，帶上一台 GPS 導航，就可以出門囉！</p>
<p><a title="Flickr 上 nelson_tai 的 04" href="http://www.flickr.com/photos/nelson_tai/6856475173/"><img src="http://farm8.staticflickr.com/7190/6856475173_3e585bb47e_z.jpg" alt="04" width="640" height="312" /></a></p>
<hr />
<h2>將檔案匯出成圖檔</h2>
<p><a title="XMind Website" href="http://www.xmind.net/">XMind</a> 提供了將心智圖匯出成其他檔案的功能，你可以從【檔案】&rarr;【匯出】開啟匯出視窗，付費版的 <a title="XMind Website" href="http://www.xmind.net/">XMind</a> 能將做好的心智圖匯出成 Word 或 PowerPoint 檔。免費版的可以將心智圖匯出成圖檔，我們只要再手動將圖片插入到 Word 或 PowerPoint 就可以了。</p>
<p><a title="Flickr 上 nelson_tai 的 05" href="http://www.flickr.com/photos/nelson_tai/6856475593/"><img src="http://farm8.staticflickr.com/7041/6856475593_8cd4bba7e4_o.png" alt="05" width="470" height="550" /></a></p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/30362757">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F30362757"></div>]]></content:encoded>
      <pubDate>Sat, 11 Feb 2012 22:10:48 +0800</pubDate>
      <category><![CDATA[軟體教學]]></category>
      <comments>http://nelson.pixnet.net/blog/post/30362757#comments</comments>
    </item>
    <item>
      <title><![CDATA[[Mac] iOS-Simulator Cropper - iOS 模擬器擷圖工具]]></title>
      <link>http://nelson.pixnet.net/blog/post/30299814</link>
      <guid>http://nelson.pixnet.net/blog/post/30299814</guid>
      <description><![CDATA[隨著 iPhone / iPad 的盛行，開發 iOS App 的人也越來越多，但是有開發過的人就知道，要擷取 iOS 模擬器的圖真的是一件苦差事。你或許會希望把擷圖都暫時丟到某個工作目錄、會想要把放到網站的擷圖都是包含 iPhone 或 iPad 外框、會想要上傳到 iTunes Store 的擷圖是只有程式畫面沒有外框的，這一切都需要手動調整！
想看看，當你要抓的圖一多，這將會是多麼可怕的一件工作？還好現在有了 iOS-Simulator Cropper，事情變得簡單多了！它可以幫你：

將擷取畫面存放到指定目錄
擷取沒有模擬器外框，而且包含或不包含上方狀態列的畫面
擷取完整模擬器的畫面
擷取有倒影效果的 iPhone 3/4 畫面，很多網站喜歡倒影效果
擷取黑/白款的 iPhone 4 畫面
擷取 iPad 畫面（螢幕解析度至少 1900 x 1200 才能使用這功能，不然會出現錯誤訊息）

iOS App 的開發者，還在遲疑什麼？快去免費下載吧！
]]></description>
      <content:encoded><![CDATA[<p>隨著 iPhone / iPad 的盛行，開發 iOS App 的人也越來越多，但是有開發過的人就知道，要擷取 iOS 模擬器的圖真的是一件苦差事。你或許會希望把擷圖都暫時丟到某個工作目錄、會想要把放到網站的擷圖都是包含 iPhone 或 iPad 外框、會想要上傳到 iTunes Store 的擷圖是只有程式畫面沒有外框的，這一切都需要手動調整！</p>
<p>想看看，當你要抓的圖一多，這將會是多麼可怕的一件工作？還好現在有了 <a href="http://www.curioustimes.de/iphonesimulatorcropper/">iOS-Simulator Cropper</a>，事情變得簡單多了！它可以幫你：</p>
<ul>
<li>將擷取畫面存放到指定目錄</li>
<li>擷取沒有模擬器外框，而且包含或不包含上方狀態列的畫面</li>
<li>擷取完整模擬器的畫面</li>
<li>擷取有倒影效果的 iPhone 3/4 畫面，很多網站喜歡倒影效果</li>
<li>擷取黑/白款的 iPhone 4 畫面</li>
<li>擷取 iPad 畫面（螢幕解析度至少 1900 x 1200 才能使用這功能，不然會出現錯誤訊息）</li>
</ul>
<p>iOS App 的開發者，還在遲疑什麼？快去<a href="http://www.curioustimes.de/iphonesimulatorcropper/">免費下載</a>吧！</p>
<p><a title="Flickr 上 nelson_tai 的 iOS-Simulator Cropper" href="http://www.flickr.com/photos/nelson_tai/6747084707/"><img src="http://farm8.staticflickr.com/7166/6747084707_8b9bc1b66f_o.png" alt="iOS-Simulator Cropper" width="500" height="350" /></a></p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/30299814">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F30299814"></div>]]></content:encoded>
      <pubDate>Mon, 23 Jan 2012 13:28:29 +0800</pubDate>
      <category><![CDATA[Mac 生活]]></category>
      <comments>http://nelson.pixnet.net/blog/post/30299814#comments</comments>
    </item>
    <item>
      <title><![CDATA[[投影片分享] Git 超新手入門]]></title>
      <link>http://nelson.pixnet.net/blog/post/30293960</link>
      <guid>http://nelson.pixnet.net/blog/post/30293960</guid>
      <description><![CDATA[前不久在研究 Git 版本控制系統，整理了一下我的心得，並做成投影片，有興趣的人可以參考看看。因為這是我第一次接觸 Git，所以或許會有錯誤的地方，也請不吝指教！
Git in a nutshell 
View more presentations from Nelson Tai
]]></description>
      <content:encoded><![CDATA[<p>前不久在研究 <a href="http://git-scm.com/">Git</a> 版本控制系統，整理了一下我的心得，並做成投影片，有興趣的人可以參考看看。因為這是我第一次接觸 Git，所以或許會有錯誤的地方，也請不吝指教！</p>
<div id="__ss_11096230" style="width: 595px;"><strong style="display: block; margin: 12px 0 4px;"><a title="Git in a nutshell" href="http://www.slideshare.net/nelson0805/git-in-a-nutshell-11096230" target="_blank">Git in a nutshell</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/11096230" width="595" height="497" scrolling="no" frameborder="0" marginheight="0" marginwidth="0"></iframe>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/nelson0805" target="_blank">Nelson Tai</a></div>
</div>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/30293960">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F30293960"></div>]]></content:encoded>
      <pubDate>Fri, 20 Jan 2012 20:36:26 +0800</pubDate>
      <category><![CDATA[軟體教學]]></category>
      <comments>http://nelson.pixnet.net/blog/post/30293960#comments</comments>
    </item>
    <item>
      <title><![CDATA[[閒聊] 2012 新年快樂]]></title>
      <link>http://nelson.pixnet.net/blog/post/30217910</link>
      <guid>http://nelson.pixnet.net/blog/post/30217910</guid>
      <description><![CDATA[好一陣子沒有發文了，在 2012 年的第一天祝福各位朋友新年快樂、身體健康！
在沒有文章的這一段日子裡，我終於從國防役畢業了，現在正在一家很有趣的公司，做我喜歡的工作：）
我的作業系統也從 Windows 轉到 Ubuntu Linux 再轉到 Mac OS X，雖然我不是果粉，但在用過 iPad、iPhone、MacBook Pro 之後，我也只能說「我回不去了」！蘋果系統的設計真的是棒阿！以後這邊大概會四種作業系統（Windows、Linux、Mac、iOS）的軟體介紹交叉出現吧 XDDD
2011 的最後一天跟 2012 的第一天，就跟著五月天、嚴爵、丁噹一起度過了，真是有夠嗨的啦！
以上，祝各位新年快樂！]]></description>
      <content:encoded><![CDATA[<p>好一陣子沒有發文了，在 2012 年的第一天祝福各位朋友新年快樂、身體健康！</p>
<p>在沒有文章的這一段日子裡，我終於從國防役畢業了，現在正在一家很有趣的公司，做我喜歡的工作：）</p>
<p>我的作業系統也從 Windows 轉到 Ubuntu Linux 再轉到 Mac OS X，雖然我不是果粉，但在用過 iPad、iPhone、MacBook Pro 之後，我也只能說「我回不去了」！蘋果系統的設計真的是棒阿！以後這邊大概會四種作業系統（Windows、Linux、Mac、iOS）的軟體介紹交叉出現吧 XDDD</p>
<p>2011 的最後一天跟 2012 的第一天，就跟著五月天、嚴爵、丁噹一起度過了，真是有夠嗨的啦！</p>
<p>以上，祝各位新年快樂！</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/30217910">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F30217910"></div>]]></content:encoded>
      <pubDate>Sun, 01 Jan 2012 10:45:36 +0800</pubDate>
      <category><![CDATA[閒聊]]></category>
      <comments>http://nelson.pixnet.net/blog/post/30217910#comments</comments>
    </item>
    <item>
      <title><![CDATA[[閒聊] 用過最爛的 app]]></title>
      <link>http://nelson.pixnet.net/blog/post/29977331</link>
      <guid>http://nelson.pixnet.net/blog/post/29977331</guid>
      <description><![CDATA[真的只是閒聊目前我的 iPad 裡頭最難用的兩款 app，一個是 Skype，另一個是 Facebook，Skype 跟 Facebook 爛(或說是蠢)的地方很類似。
Skype當你從別的 app 切換回 Skype 時，它會重新登入並重新下載當天的聊天紀錄，偏偏每個對話窗的聊天紀錄至少也都有個幾十幾百條，就只能看它慢慢的(慢到我可以一條條閱讀)重新載入。然後若是你切換到其他 app 去做事再切換回來，它又會重新載入一遍 ...
Facebook至於 Facebook 呢? 若是你正在觀看朋友的最新動態，一路從最近的消息往前追，然後你看到有人貼了某個連結或照片並且把它點開了，Facebook 會用內建的瀏覽器開啟連結或照片，看完這個連結或照片回來主畫面時，它會自動更新動態消息的內容，這個雞婆的設計可以讓你總是看到最新的動態，但卻害得你必須把消息慢慢滾回剛剛追到一半的地方，然後繼續往下追...

難道開發者都沒在用自己開發的 app 嗎? 這麼難用的設計自己感覺不到嗎 = =
最後來問問大家，有哪些 app 是你覺得用起來很難用，但卻還是時常在用的，請順便分享一下 app 名稱以及難用的理由是什麼 XD]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: 10pt;"><strong>真的只是閒聊</strong></span><br />目前我的 iPad 裡頭最難用的兩款 app，一個是 Skype，另一個是 Facebook，Skype 跟 Facebook 爛(或說是蠢)的地方很類似。<br />
<br /><span style="font-size: 10pt;"><strong>Skype</strong></span><br />當你從別的 app 切換回 Skype 時，它會重新登入並重新下載當天的聊天紀錄，偏偏每個對話窗的聊天紀錄至少也都有個幾十幾百條，就只能看它慢慢的(慢到我可以一條條閱讀)重新載入。然後若是你切換到其他 app 去做事再切換回來，它又會重新載入一遍 ...<br />
<br /><span style="font-size: 10pt;"><strong>Facebook</strong></span><br />至於 Facebook 呢? 若是你正在觀看朋友的最新動態，一路從最近的消息往前追，然後你看到有人貼了某個連結或照片並且把它點開了，Facebook 會用內建的瀏覽器開啟連結或照片，看完這個連結或照片回來主畫面時，它會自動更新動態消息的內容，這個雞婆的設計可以讓你總是看到最新的動態，但卻害得你必須把消息慢慢滾回剛剛追到一半的地方，然後繼續往下追...<br />
<br />
難道開發者都沒在用自己開發的 app 嗎? 這麼難用的設計自己感覺不到嗎 = =</p>
<p>最後來問問大家，有哪些 app 是你覺得用起來很難用，但卻還是時常在用的，請順便分享一下 app 名稱以及難用的理由是什麼 XD</p>  <div class="more"><a href="http://nelson.pixnet.net/blog/post/29977331">(繼續閱讀...)</a><img src="//pixanalytics.com/pa.gif?t=front_blog_feed&document.URL=http%3A%2F%2Fnelson.pixnet.net%2Fblog%2Fpost%2F29977331"></div>]]></content:encoded>
      <pubDate>Thu, 03 Nov 2011 20:14:44 +0800</pubDate>
      <category><![CDATA[閒聊]]></category>
      <comments>http://nelson.pixnet.net/blog/post/29977331#comments</comments>
    </item>
  </channel>
</rss>