<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-17948358</atom:id><lastBuildDate>Sun, 07 Feb 2010 16:05:32 +0000</lastBuildDate><title>ADC</title><description>Apple, Develope, Coffee</description><link>http://blog.lifestyle.idv.tw/</link><managingEditor>noreply@blogger.com (Shiva Huang)</managingEditor><generator>Blogger</generator><openSearch:totalResults>65</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-5913644422295106209</guid><pubDate>Sun, 07 Feb 2010 14:48:00 +0000</pubDate><atom:updated>2010-02-08T00:05:32.949+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>iPhone</category><category domain='http://www.blogger.com/atom/ns#'>系統</category><category domain='http://www.blogger.com/atom/ns#'>Apple</category><category domain='http://www.blogger.com/atom/ns#'>Chat</category><title>iPhone/iPod Touch/iPad 與 Flash 之間的恩怨情仇</title><description>從 iPhone 推出開始，一個讓反蘋果派最抓狂，用來立論 "iPhone 是個垃圾，一定會失敗" 的立論基礎是，"iPhone 不支援 Flash"。&lt;br /&gt;後來的 iPod Touch 也不支援 Flash。&lt;br /&gt;iPhone OS 2.0 發表，可以讓第三方軟體商開發程式，但是還是不支援 Flash。&lt;br /&gt;iPhone OS 3.0 發表，還是不支援 Flash。&lt;br /&gt;最近發表的 iPad 還是不支援 Flash。&lt;br /&gt;&lt;br /&gt;照理來說，從 iPhone 1.x 一直到 3.x 都不支援 Flash，我原先以為大家會認清一個事實：Apple 並沒有開放 Flash 的動力。沒想到 iPad 一發表，"不支援 Flash" 又變成 "iPad 是個垃圾，一定會失敗" 的立論基礎，熱烈的情況跟 iPhone 剛發表時一樣沸騰。&lt;br /&gt;&lt;br /&gt;事實上，Apple 不讓 iPhone/iPod Touch/iPad 這些裝置執行 Flash 有許多的原因，有檯面上，有檯面下。&lt;br /&gt;&lt;br /&gt;檯面下的原因，當然就是因為 Flash 是個 VM，而對於 Apple 來說，VM 類的東西它是不願意放到這些 iDevice 上的，因為這樣會直接的衝擊到 AppStore 的銷售。雖然 VM 類的軟體現在有鬆綁的傾向，例如&lt;a href="http://www.engadget.com/2010/01/20/sega-ultimate-genesis-collection-bringing-official-genesis-emula/"&gt;SEGA 模擬器已經準備要在 iPhone 上推出&lt;/a&gt;，但這是因為它遊戲是以 In-App Purchase 的形式購買，也就是說，只要能讓 Apple 抽到成，其實 VM 是可以談的。但是回到 Flash，在網頁上的 Flash 不可能讓 Apple 抽到成，因此要讓 iPhone 上的 Safari 可以看到 Flash，不可能。但是要在 AppStore 上架一個捆綁 FlashPlayer 的 Flash 程式是沒問題的，這也是 Adobe Flash CS5 所主打的一個功能。&lt;br /&gt;&lt;br /&gt;檯面上的原因，就是 Flash 的效能低落以及高耗電。iDevice 這類隨身裝置，最重視的就是效能以及省電，Flash 恰好反其道而行，因此 Apple 有很冠冕堂皇的理由拒絕支援 Flash。高耗電的原因是因為效能低落，所以為了能正常運作，CPU 只好一直運作。而效能低落的原因，有一半是因為 Flash 本身就很複雜，另一半則是 Adobe 自己的問題，不過這個原因我不知道該算是檯面上還檯面下，就是 Adobe 不管是 v9 還是 v10 的 Flash Player on Mac，裡面都呼叫了系統提供的 Debugger() 函式 (via &lt;a href="http://twitter.com/rentzsch/status/1951306786"&gt;rentzsch&lt;/a&gt;)。這是什麼意思呢？就是 Flash Player on Mac 根本不是正式版，而是開發中的測試版，這邊所謂的測試版並不是 beta/RC 這類開放給一般使用者幫忙玩的測試版，而是開放給開發者測試的測試版。這類測試版的效能會差很多，因為程式會花費相當多的時間將內部的錯誤訊息丟出來，而且內部會有相當多的錯誤，非常的不穩定，許多人都認為這是 Safari Mac 版不穩定的最主要原因。你能想像這種程度的東西如果丟到你的 iPhone 上會造成什麼樣的災難嗎？&lt;br /&gt;&lt;br /&gt;所以，Apple 要不要讓 iPhone/iPod Touch/iPad 支援 Flash 的問題突然複雜了起來，有冠冕堂皇的理由，有背地裡要維護的利益，有暗暗吃的悶虧。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-5913644422295106209?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2010/02/iphoneipod-touchipad-flash.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-4139271548238405662</guid><pubDate>Tue, 15 Sep 2009 16:55:00 +0000</pubDate><atom:updated>2009-09-16T01:27:02.542+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Virtual Machine</category><category domain='http://www.blogger.com/atom/ns#'>Develope</category><title>VirtualBox、VMware Fusion、Parallels Desktop 三款虛擬機器對 USB 裝置支援的經驗</title><description>目前 Mac 上有三款虛擬機器軟體，開放原始碼（對很多人來說這只代表免費）的 &lt;a href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt;，最早在 Mac 上推出的 &lt;a href="http://www.parallels.com/"&gt;Parallels Desktop&lt;/a&gt;，以及老牌的 &lt;a href="http://www.vmware.com/products/fusion/"&gt;VMware Fusion&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;這三套各有優缺，VirtualBox 是免費的，但是我覺得在恢復系統的速度上有點慢，另外詭異的中文翻譯也讓人不舒服。Parallels Desktop 有不少絢麗的功能，恢復系統的速度也很快，但是對比於 VMware Fusion，感覺程式比較不穩定一些。VMware Fusion 功能比起 Parallels Desktop 稍微樸實些，但是硬碟檔可以跟 Windows、Linux 上的共用。&lt;br /&gt;&lt;br /&gt;這三套基本上都有支援外接 USB 裝置，例如隨身碟、鍵盤、WebATM 讀卡機，對內建 iSight 的支援也都有了，不過我因為 case 需要，要接的 USB 裝置很罕見，所以今天把三套都試了一下。&lt;br /&gt;&lt;br /&gt;我要接的 USB 裝置是 Agilent 的 GPIB 接頭，是工業用儀器的專屬連接界面，型號是 82357A。這個裝置在三個虛擬機器中都可以正常安裝驅動程式，但是後續的使用上還是有些差異。&lt;br /&gt;&lt;ul&gt;&lt;li&gt;在 VirtualBox 中，會在掃描連接的裝置時卡住，我用的 VirtualBox 版本是 3.0.4，下次用 3.0.6 試試看好了，但我想結果應該不會改變。&lt;/li&gt;&lt;li&gt;Parallels Desktop 下則是在安裝驅動程式時系統會卡住，需要等待一段時間，但是一旦裝好 driver，使用上一切正常，連接儀器也都沒有問題。&lt;/li&gt;&lt;li&gt;VMware Fusion 則是最順利的，安裝 driver 很快很正常，連接的儀器也都正常抓到使用。&lt;/li&gt;&lt;/ul&gt;總結來說，我想 VMware Fusion 對於 USB 的支援可能是比較完整的，不過應該很少人會像我一樣用到這種奇怪的裝置，所以假如你只是想要挑選一套虛擬機器來用，這篇文章寫的其實不用太列入考慮 :)&lt;br /&gt;&lt;br /&gt;後記：其實 VMware Fusion 我用起來還是有個麻煩的地方，就是他共享資料夾的名稱中居然會擺個 .host 這樣的字串，讓我用 Dev-cpp 時沒辦法直接在共享資料夾中編譯程式，Parallels Desktop 與 VirtualBox 都沒有這問題。不過會在 Mac 上用虛擬機器跑 Windows，然後在 Windows 中用 Dev-cpp 開發工業用監測程式的人，應該沒有幾個吧...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-4139271548238405662?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2009/09/virtualboxvmware-fusionparallels.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-1456021680718337682</guid><pubDate>Mon, 17 Aug 2009 13:46:00 +0000</pubDate><atom:updated>2009-08-18T02:37:23.320+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Apple</category><category domain='http://www.blogger.com/atom/ns#'>Chat</category><title>Mac OSX 10.5 在偏好設定面板裡面的錯誤</title><description>講錯誤好像有點嚴重，但是卻是很礙眼的問題，請看下面兩張圖，有看到問題所在嗎？&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/energy_battery-769123.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 327px;" src="http://blog.lifestyle.idv.tw/uploaded_images/energy_battery-769119.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/energy_AC-769170.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 327px;" src="http://blog.lifestyle.idv.tw/uploaded_images/energy_AC-769167.jpg" alt="" border="0" /&gt;&lt;/a&gt;單獨放兩張圖應該是看不出來的，但是看看下面這張截圖應該就很明顯了&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/energy-707142.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 96px;" src="http://blog.lifestyle.idv.tw/uploaded_images/energy-707138.gif" alt="" border="0" /&gt;&lt;/a&gt;當切換電池/電源轉換器的頁面時，你會發現文字的位置有差異，看起來實在是相當的不舒服啊...&lt;br /&gt;&lt;br /&gt;10.4 裡面並沒有這種情況，而目前 10.6 又推出在即，我想這個問題應該是不會修改了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-1456021680718337682?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2009/08/mac-osx-105.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-3870815972390498880</guid><pubDate>Wed, 27 May 2009 14:07:00 +0000</pubDate><atom:updated>2009-06-22T12:37:24.906+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Tip</category><category domain='http://www.blogger.com/atom/ns#'>Xcode</category><title>更改 Xcode 範本的 __MyCompanyName__ 這個變數</title><description>用  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Xcode&lt;/span&gt; 產生的原始碼，都會在檔頭加入版權宣告，雖然作者名字會自己抓到，不過用了這麼久，一直沒找到在哪設定 __&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;MyCompanyName&lt;/span&gt;__。&lt;br /&gt;&lt;br /&gt;前兩天窮極無聊 Google 了一下，原來在 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Xcode&lt;/span&gt; 裡面不能設定，要用終端機直接改 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;plist&lt;/span&gt; 設定值...&lt;br /&gt;&lt;br /&gt;在終端機輸入以下指令：&lt;br /&gt;&lt;blockquote&gt;defaults write com.apple.Xcode &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PBXCustomTemplateMacroDefinitions&lt;/span&gt; -dict &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;ORGANIZATIONNAME&lt;/span&gt; "Your_Name_Here“&lt;/blockquote&gt;然後重開 Xcode 就可以了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-3870815972390498880?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2009/05/xcode-mycompanyname.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-4708215870732363030</guid><pubDate>Sun, 24 May 2009 09:41:00 +0000</pubDate><atom:updated>2009-05-24T19:52:44.358+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Tip</category><category domain='http://www.blogger.com/atom/ns#'>Obj-C</category><category domain='http://www.blogger.com/atom/ns#'>iPhone Dev</category><category domain='http://www.blogger.com/atom/ns#'>Develope</category><title>用 Objective-C 從二進位檔案（binary file）中讀入數值的 byte order 問題</title><description>要從二進位檔案中讀入數值，其中一個會遇到的問題就是 Little-endian 和 Big-endian，這和 CPU 的種類有關。Intel 系列的 x86 CPU 使用的是 Little-endian，而 PowerPC、ARM 等的 CPU 則是採用 Big-endian。endian 不同的問題，在以前 PPC 的時代算是相當重要，後來改用 Intel CPU 之後重要性就下降了許多，不過現在因為 iPhone 採用的 ARM 又是 Big-endian，所以這問題的重要性又大幅提升了，尤其許多新手設計師，之前可能根本沒碰過非 Intel 的平台，根本沒考慮過這問題，於是寫出來的程式就會讀到一堆詭異的數字。&lt;br /&gt;&lt;br /&gt;首先我們要先界定 endian 的問題會影響到哪些資料型別。所謂 endian 不同，是因為高低位元在記憶體中表示的方式不同而造成的，Little-endian 將高位元放在記憶體位址較大的地方，Big-endian 則反之。舉例來說，0x00112233 這個 16 進位的數字，在 Little-endian 的機器上，在記憶體中呈現的是 33 22 11 00，而在 Big-endian 的機器上則呈現 00 11 22 33。因此，假如把在 Little-endian 機器上寫入的二進位檔拿給 Big-endian 的機器讀取，讀出來的數字就會出錯。&lt;br /&gt;&lt;br /&gt;從這邊我們可以發現，要發生 endian 的問題，首先資料型別必須用超過 2 個 byte 來儲存才有可能，因此只用一個 byte 儲存的型別，例如 char，就沒有 endian 的問題。&lt;br /&gt;&lt;br /&gt;至於 int、long 之類的整數型別，可以用 CFSwap[type][Big/Littile/Host]To[Big/Littile/Host] 系列函式來轉換。其中的 type 可能是 Int16、Int32 等等。使用方法如下：&lt;br /&gt;&lt;blockquote&gt;int littleEndian = 1234;&lt;br /&gt;int hostEndian = CFSwapInt16LittleToHost(littleEndian);&lt;/blockquote&gt;那麼 hostEndian 的變數值就是採用目前機器上的 endian 順序的 int。&lt;br /&gt;&lt;br /&gt;不過浮點數就沒這麼輕鬆了。我們在前面的例子中還是用 int 來存放 littleEndian，因為就算 byte order 不對了，但它仍然是個 valid 的 integer，不過浮點數的每個 bit 有它不同的意義，因此一旦 byte order 解譯錯誤，它就可能變成 invalid float，導致程式直接當掉。&lt;br /&gt;&lt;br /&gt;為了解決這個問題，Objective-C 中用了一個與 byte order 無關的資料結構來儲存這個資料，定義如下：&lt;br /&gt;&lt;blockquote&gt;struct CFSwappedFloat32 {&lt;br /&gt;   uint32_t v;&lt;br /&gt;};&lt;br /&gt;typedef struct CFSwappedFloat32 CFSwappedFloat32;&lt;/blockquote&gt;可以看到，這個結構中就只有一個 data，uint32_t，Objective-C 就是用它來儲存這個 float 的資料（當然，此時系統並不會把它當成一個 float）。接下來的處理方式就是，將這個 uint32_t 裡面的 byte 頭尾互換位置，然後將這 32 個 bit（4 個 byte）轉化成 float。而這就是 CFConvertFloat32SwappedToHost 這個函式在作的事。整個的用法可以用以下的例子表示：&lt;br /&gt;&lt;blockquote&gt;CFSwappedFloat32 littleFloat;&lt;br /&gt;long buffer;&lt;br /&gt;float hostFloat;&lt;br /&gt;&lt;br /&gt;fread(&amp;amp;buffer, sizeof(long), 1, fp);&lt;br /&gt;littleFloat.v = buffer;&lt;br /&gt;hostFloat = CFConvertFloat32SwappedToHost(littleFloat);&lt;/blockquote&gt;當然，其中的 fread 可以用 memcpy、NSData 的 byte method 等等取代，只要把握住一個原則：「 CFSwappedFloat32 的內部是用 uint32_t 來儲存這個待轉換的 float」即可。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-4708215870732363030?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2009/05/objective-c-binary-file-byte-order.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-3018773006842280992</guid><pubDate>Sat, 23 May 2009 18:05:00 +0000</pubDate><atom:updated>2009-05-24T02:27:43.286+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Tip</category><category domain='http://www.blogger.com/atom/ns#'>Obj-C</category><category domain='http://www.blogger.com/atom/ns#'>Cocoa</category><category domain='http://www.blogger.com/atom/ns#'>Develope</category><title>NSNumber 與 NSInteger</title><description>在 Mac OSX 10.5 中新增加了 NSInteger 這個東西，但是這下就會跟 NSNumber 搞混，到底要用哪個？&lt;br /&gt;&lt;br /&gt;基本上，NSInteger（以及類似的 NSUInteger）是為了解決在 32-bit/64-bit CPU 架構下，int 長度不同的問題，它的定義如下：&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#if __LP64__ || NS_BUILD_32_LIKE_64&lt;br /&gt;  typedef long NSInteger;&lt;br /&gt;  typedef unsigned long NSUInteger;&lt;br /&gt;#else&lt;br /&gt;  typedef int NSInteger;&lt;br /&gt;  typedef unsigned int NSUInteger;&lt;br /&gt;#endif&lt;/blockquote&gt;也就是說，NSInteger  只是用 typedef 包裝過的 int/long，它是個基本資料型別（data type）。&lt;br /&gt;&lt;br /&gt;NSNumber 則是個不折不扣的 Objective-C 類別，因此這兩者的使用時機就很明顯了，當你要把 integer 放到 Obj-C 的集合，例如 NSArray/NSSet 時，請用 NSNumber，不然其他的時候用 NSInteger 就好了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-3018773006842280992?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2009/05/nsnumber-nsinteger.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-1327512551570200881</guid><pubDate>Sat, 02 May 2009 05:12:00 +0000</pubDate><atom:updated>2009-05-02T15:09:45.158+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Apple</category><category domain='http://www.blogger.com/atom/ns#'>Chat</category><title>iPod Shuffle - Small talk</title><description>Apple 推出 iPod Shuffle 三代已經一段時間了，功能外觀不再贅述，雖然它的&lt;a href="http://www.apple.com/tw/ipodshuffle/voiceover.html"&gt;語音功能&lt;/a&gt;好像真的蠻好玩的，只是老是要聽人聲慢慢念，還是覺得有點麻煩。我比較感興趣的反倒是它的標語 "Small talk"。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/iPodShuffle_en-744892.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 225px;" src="http://blog.lifestyle.idv.tw/uploaded_images/iPodShuffle_en-744889.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;看到 Small talk，實在沒辦法讓我不連想到那個程式語言 - Smalltalk。&lt;br /&gt;&lt;br /&gt;Smalltalk 是世界上第二個物件導向程式語言，在 1970 年代就開發出來，後來也影響了眾多的語言，著名的包括 Java、Ruby 等，但是對 Mac 開發者來說，最重要的應該就是 Objective-C 了，而 Obj-C 也是唯一保留了 Smalltalk 那特殊的 [object method] 語法的語言。因此雖然我沒寫過 Smalltalk，但是聽到這個標語還是不禁會心一笑，這是我開始用 Apple 產品以來，第一次感受到 Apple 與工程師這麼接近的一次（或許這也只是 Apple 一次美麗的錯誤？）&lt;br /&gt;&lt;br /&gt;不過台灣的網頁在第一次出現的時候，把標語定為 "輕小說"，結果在 OIKOS 上被圍剿，說 iPod 跟小說根本沒關係，牛頭不對馬嘴。過了幾天就看到台灣把標語換成與香港一樣的 "輕身細語"，老實說，這樣有比較好嗎？我反倒覺得輕小說三個字更有輕飄飄的感覺，而把 "輕" "小" "說" 三個字拆開來看，則更符合這次的功能特色，就翻譯上也比較貼近英文的標語 Small talk。"輕身細語" 光聽根本感受不到它的體積小，因為太容易與原來的成語 "輕聲細語" 直接聯想在一起。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/iPodShuffle_tw-706985.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 225px;" src="http://blog.lifestyle.idv.tw/uploaded_images/iPodShuffle_tw-706982.jpg" alt="" border="0" /&gt;&lt;/a&gt;只是，即使是 "輕小說"，還是沒辦法傳達那個隱藏的聯想，Objective-C 的老前輩，Smalltalk。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-1327512551570200881?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2009/05/ipod-shuffle-small-talk.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-4943538286635100958</guid><pubDate>Mon, 05 Jan 2009 06:36:00 +0000</pubDate><atom:updated>2009-01-05T14:59:01.863+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>iPhone Dev</category><category domain='http://www.blogger.com/atom/ns#'>Apple</category><title>iPhone Simulator 在 PPC 平台上執行 OpenGL ES 的顏色怪異問題</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/iPhone_simulator_with_OpenGL_on_PPC-704342.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 215px; height: 400px;" src="http://blog.lifestyle.idv.tw/uploaded_images/iPhone_simulator_with_OpenGL_on_PPC-704339.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;最近在寫 iPhone 上的 OpenGL 程式，不過雖然 Xcode 中就有提供 OpenGL 的樣版，但是因為對 OpenGL 不熟，看得不是很懂。&lt;br /&gt;&lt;br /&gt;雖然後來自己改了裡面的程式碼，也畫出了東西，但是在 Simulator 中執行時整個就是怪，首先是顏色全部跑掉了，一般設定顏色的順序是 RGBA，但是在 Simulator 中顏色的順序居然變成了 GRAB，所以畫出來的顏色整個就是怪。&lt;br /&gt;&lt;br /&gt;這感覺就很像是 byte-order 採用 little-endien 和 big-endien 所造成的問題，後來 Google 了一下，果然也有人遇到&lt;a href="http://www.iphonedevforums.com/forum/opengl-es-development/244-texture-bad-colors.html"&gt;一模一樣的問題&lt;/a&gt;，據他所說，其他的 CocoaTouch 部份都可以正常運作，就只有 OpenGL 的部份會出錯。&lt;br /&gt;&lt;br /&gt;我想這個出錯的原因應該是因為 OpenGL ES 裡面不能用 glBegin()/glEnd()，然後個別指定 vertex 資訊的這種用法，必須把 vertex 和 normal、color 等資料存成陣列，用 glDrawArray()/glDrawElement() 的方式一次丟給顯示晶片處理，而應該是 simulator 把陣列丟給顯示晶片時造成的 byte-order 問題。目前確定顏色會出問題，不知道 normal 和 vertex 陣列會不會也跟著出問題...&lt;br /&gt;&lt;br /&gt;而 iPhone SDK on PPC 是不被官方所支援的平台，我看這個 bug 的修復應該是遙遙無期了...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-4943538286635100958?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2009/01/iphone-simulator-ppc-opengl-es.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-2855280238276598003</guid><pubDate>Sat, 03 Jan 2009 09:32:00 +0000</pubDate><atom:updated>2009-01-03T18:36:48.634+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Chat</category><title>為何要支援 Mac 與 Linux？</title><description>今天看到一篇標題為 &lt;a href="http://blog.wolfire.com/2008/12/why-you-should-support-mac-os-x-and-linux/"&gt;Why you should support Mac OS X and Linux?&lt;/a&gt;，真是一語道盡我對支援 Mac OS X 與 Linux 的看法，這些看法我之前也跟一些業主談過，但是卻沒有業主聽得進去，但是以後我就有 case 可以 support 我的看法了。&lt;br /&gt;&lt;br /&gt;來看看 &lt;a href="http://www.wolfire.com/lugaru"&gt;Lugaru&lt;/a&gt; 這個遊戲在各平台上的銷售比例：&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/dist-752287.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 202px;" src="http://blog.lifestyle.idv.tw/uploaded_images/dist-752267.png" alt="" border="0" /&gt;&lt;/a&gt;你可以發現多支援 Mac OS  X 和 Linux，你的銷售數字比單純支援 Windows 提升了大約 122%！這是多麼誇張的數字！各位業主，你們要提升銷售額 122% 要花多少心力？更重要的是，你的心力，講的更清楚些，你的錢！花下去了就確定能提升 122% 嗎？&lt;br /&gt;&lt;br /&gt;我下面列出文章作者歸納出的五點原因，詳細內容就請自己去看吧。&lt;br /&gt;&lt;ol&gt;&lt;li&gt;It’s good to be a big fish in a small pond (寧為雞首，毋為牛後)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;More platforms means more opportunities (更多的平台代表更多的機會)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Vocal minorities (少數發聲)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You can’t choose your evangelists (你無法選擇你的傳道者)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You can’t choose your power users (你無法選擇你的主力客戶)&lt;/li&gt;&lt;/ol&gt;我想這篇文章會是我以後跟業主談話時的一大佐證。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-2855280238276598003?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2009/01/mac-linux.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-3243979301147557530</guid><pubDate>Mon, 18 Aug 2008 19:38:00 +0000</pubDate><atom:updated>2008-08-19T04:13:46.483+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>iPhone Dev</category><category domain='http://www.blogger.com/atom/ns#'>Xcode</category><title>在 PowerPC 的 Mac 上安裝 iPhone SDK [續]</title><description>如果有朋友照著前一篇文章在 PPC 的機器上安裝 iPhone SDK 的話，應該會跟我遇到一樣的問題，那就是無法編譯 Project...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/Active_SDK-732468.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 288px;" src="http://blog.lifestyle.idv.tw/uploaded_images/Active_SDK-732465.jpg" alt="" border="0" /&gt;&lt;/a&gt;其實嚴格講起來也不是不能編譯，只是 Active SDK 沒辦法選用 Simulator，會得到 "No architectures to compile for (ARCHS=ppc, VALID_ARCHS=i386)." 的錯誤訊息。不過選用  Device 則可以正常編譯。不過這樣開發過程就會變得很麻煩，而且 Simulator 就完全沒用了。而且既然 Simulator 是 Universal 的程式，這應該是單純修改設定就可以解決的問題才是。&lt;br /&gt;&lt;br /&gt;果然，經過簡單的 Google 之後，在 &lt;a href="http://czhangblog.blogspot.com/2008/07/iphone-sdk.html"&gt;http://czhangblog.blogspot.com/2008/07/iphone-sdk.html&lt;/a&gt; 找到了解法。&lt;br /&gt;&lt;br /&gt;主要就是把 iPhone Simulator 的一個設定檔修改一下即可。檔案位置在 /Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Specifications/，找到裡面的 iPhone Simulator Architectures.xcspec 這個檔案。&lt;br /&gt;&lt;br /&gt;先備份之後，把裡面 &lt;blockquote&gt;RealArchitectures = ( i386 );&lt;/blockquote&gt; 這行，改成 &lt;blockquote&gt;RealArchitectures = ( i386, ppc );&lt;/blockquote&gt;然後在&lt;br /&gt;&lt;blockquote&gt;// Intel&lt;br /&gt;{   Type = Architecture;&lt;br /&gt;...&lt;/blockquote&gt;&lt;br /&gt;前面加入&lt;br /&gt;&lt;blockquote&gt;// G3&lt;br /&gt;{    Type = Architecture;&lt;br /&gt;Identifier = ppc;&lt;br /&gt;Name = "Minimal (32-bit PowerPC only)";&lt;br /&gt;Description = "32-bit PowerPC";&lt;br /&gt;PerArchBuildSettingName = "PowerPC";&lt;br /&gt;ByteOrder= big;&lt;br /&gt;ListInEnum = No;&lt;br /&gt;SortNumber = 201;&lt;br /&gt;},&lt;br /&gt;&lt;br /&gt;// G4&lt;br /&gt;{    Type = Architecture;&lt;br /&gt;Identifier = ppc7400;&lt;br /&gt;Name = "PowerPC G4";&lt;br /&gt;Description = "32-bit PowerPC for G4 processor";&lt;br /&gt;ByteOrder= big;&lt;br /&gt;ListInEnum = NO;&lt;br /&gt;SortNumber = 202;&lt;br /&gt;},&lt;br /&gt;&lt;br /&gt;// G5 32-bit&lt;br /&gt;{    Type = Architecture;&lt;br /&gt;Identifier = ppc970;&lt;br /&gt;Name = "PowerPC G5 32-bit";&lt;br /&gt;Description = "32-bit PowerPC for G5 processor";&lt;br /&gt;ByteOrder= big;&lt;br /&gt;ListInEnum = NO;&lt;br /&gt;SortNumber = 203;&lt;br /&gt;},&lt;/blockquote&gt;或者也可以直接&lt;a href="http://blog.lifestyle.idv.tw/uploaded_files/iPhone%20Simulator%20Architectures.xcspec"&gt;下載&lt;/a&gt;我改好的設定檔。&lt;br /&gt;&lt;br /&gt;改好之後重新啟動 Xcode，你應該就可以完整的在 PPC 機種上開發 iPhone 的程式了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-3243979301147557530?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2008/08/powerpc-mac-iphone-sdk_19.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-3645160171515253341</guid><pubDate>Fri, 15 Aug 2008 07:42:00 +0000</pubDate><atom:updated>2008-08-15T16:14:19.236+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>iPhone Dev</category><category domain='http://www.blogger.com/atom/ns#'>Xcode</category><title>在 PowerPC 的 Mac 上安裝 iPhone SDK</title><description>如果你像我一樣還在用 PPC 的 Mac，卻又想開發 iPhone 的軟體的話，你會發現一個討人厭的問題，就是 iPhone SDK 不能裝在 PPC 的機器上。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/iPhone_SDK_skip-780997.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/iPhone_SDK_skip-780993.jpg" alt="iPhone SDK skip" border="0" /&gt;&lt;/a&gt;但是有人發現，iPhone SDK 裡面的所有程式都是 universal 的程式，也就是說，所謂的 "只支援 Intel-based Mac" 云云，只是 Apple 要逼退 PPC 機器的手段。&lt;br /&gt;&lt;br /&gt;因此想要在 PPC 機器上開發 iPhone 軟體的朋友，請打開 iPhone SDK DMG 檔，找到 Packages 資料夾。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/iPhone_SDK_Packages-703477.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/iPhone_SDK_Packages-703470.jpg" alt="" border="0" /&gt;&lt;/a&gt;從 Packages 資料夾下，找出所有 iPhone* 開頭的 pkg 檔，一個一個手動安裝。&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/iPhone_SDK_Packages_2-750312.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/iPhone_SDK_Packages_2-750306.jpg" alt="" border="0" /&gt;&lt;/a&gt;不過請記得，安裝的時候請自己指定位置到 Xcode 3.1 安裝目錄（預設是 /Developer）。&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/iPhone_SDK_Packages_3-744520.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/iPhone_SDK_Packages_3-744513.jpg" alt="" border="0" /&gt;&lt;/a&gt;全部裝好之後，你就可以開啟 Xcode，在 New Project... 選項中找到 iPhone OS 的樣版，開始開發 iPhone 程式了。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/iPhone_SDK_new_project-762230.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/iPhone_SDK_new_project-762226.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;iPhone Simulator 的執行也是沒有問題的。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/iPhone_simulator-782295.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/iPhone_simulator-782288.jpg" alt="" border="0" /&gt;&lt;/a&gt;Good luck!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-3645160171515253341?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2008/08/powerpc-mac-iphone-sdk.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-8458110128282581740</guid><pubDate>Thu, 19 Jun 2008 07:58:00 +0000</pubDate><atom:updated>2008-06-19T16:41:26.210+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Tip</category><category domain='http://www.blogger.com/atom/ns#'>Xcode</category><title>Xcode 與 C99 標準</title><description>寫程式時，迴圈是個避免不了的東西，而幾乎每個迴圈都會有個 counter。在大部分的情況下，這個 counter 是用過即丟的，因此我們常常會寫如下的 code：&lt;br /&gt;&lt;blockquote&gt;for(int i=0; i&amp;lt;something; i++) {&lt;br /&gt;    some code here...&lt;br /&gt;}&lt;/blockquote&gt;但是在 Xcode 下，這邊會跳出一個 C99 的 Error，原因是 gcc 預設的編譯規則是 C89，而早期的 C 規定所有的變數必須在一開頭宣告，不能在述句中宣告，因此這邊會跳出錯誤。不過對於這種用過即丟的 counter，我覺得事先宣告反而麻煩，因為會造成這個 counter 超出它所應用的 scope，事後反而容易造成問題。解決之道就是讓 gcc 改用 C99 規則。&lt;br /&gt;&lt;br /&gt;要在 Xcode 中讓 gcc 改用 C99，請在 Groups &amp;amp; Files 中選取 project 名稱，然後按下 ⌘i 或工作列上的 Info，如下：&lt;br /&gt;&lt;a dragover="true" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/Xcode_C99_step1-737728.png"&gt;&lt;img dragover="true" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/Xcode_C99_step1-737725.png" alt="" border="0" /&gt;&lt;/a&gt;在跳出來的視窗右邊的搜尋欄位直接填入  C99，可以找到 C Languang Dialect 這項設定：&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/Xcode_C99_step2-706427.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/Xcode_C99_step2-706423.png" alt="" border="0" /&gt;&lt;/a&gt;然後在 value 的選單中選取 C99 [-std=c99] 就可以了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-8458110128282581740?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2008/06/xcode-c99.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-5920954048517098053</guid><pubDate>Mon, 03 Mar 2008 13:32:00 +0000</pubDate><atom:updated>2008-03-03T22:12:03.624+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Tip</category><category domain='http://www.blogger.com/atom/ns#'>iPhone Dev</category><title>iPhone/iPod Touch 更新/降級系統相關的問題與解法</title><description>最近幫人破解 iPod Touch，結果要從 1.1.3 降級回 1.1.1 的時候遇到了許多問題，iTunes 一直跳出視窗說回復失敗，發生了未知的錯誤等等，google 了一下找到了這些錯誤代碼的意義和解法，整理如下：&lt;br /&gt;&lt;ul&gt;&lt;li dragover="true"&gt;未知的錯誤 (1)：這代表 iPod Touch 沒有進入 DFU 模式，必須要進入 DFU 模式才能降級。而要進入 DFU 模式有兩個方式：&lt;/li&gt;&lt;ul dragover="true"&gt;&lt;li dragover="true"&gt;&lt;ol dragover="true"&gt;&lt;li dragover="true"&gt;連上 iPhone 跟電腦，打開 iTunes, 確認 iPhone 是開啟的（不是 power off).&lt;/li&gt;&lt;li dragover="true"&gt;同時按下 Sleep + Home，等到畫面變黑時，但還不是全黑時，放掉 Sleep ，但持續按 Home 鍵（約 10~20秒)，直到 iTunes 發現一台 iPhone 在 recovery 狀態.&lt;/li&gt;&lt;li dragover="true"&gt;已進入 DFU，接下來就照著破解步驟做。&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;注意，Sleep 鍵必須要在出現白蘋果前放掉，而在等畫面變黑，又不是全黑的時間點不太好抓，多試幾次應該就會了，大約是同時按下 Sleep+Home 後的6秒。成功的 DFU ，iPhone是沒任何畫面的，切記。&lt;br /&gt;以上引用自&lt;a href="http://iphone4.tw/forums/viewtopic.php?t=2419&amp;amp;highlight=&amp;amp;sid=40a8a1a3eb2a2aad0c0f1fd3f08ffa14"&gt;iphone4.tw&lt;/a&gt;&lt;/li&gt;&lt;li dragover="true"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/Restart_in_DFU_Mode-761675.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/Restart_in_DFU_Mode-761672.png" alt="" border="0" /&gt;&lt;/a&gt;另一個方法是利用 &lt;a dragover="true" href="http://www.ziphone.org/"&gt;ZiPhone&lt;/a&gt;，比較方便也比較容易成功。我以 2.5c 版本為例，將 iPod Touch 接上電腦之後，把 iTunes 關掉，然後選擇選單列的 Mode -&gt; Restart in DFU Mode 即可，如右圖所示：&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;未知的錯誤 (1403)：這代表你之前下載的回復檔有問題，請重新下載。要注意的是你可能要先把瀏覽器的 cache 清空，才能確保有重新下載而非從瀏覽器快取又直接複製一份有問題的檔案出來。&lt;/li&gt;&lt;li&gt;未知的錯誤 (1604)：請將 iTunes 降級到 7.5，在 Windows 上要把 iTunes、Quicktime 等都移除重新安裝，Mac 上則請參考&lt;a href="http://rupertgee.wordpress.com/2008/02/08/downgrade-itunes-76-to-75/"&gt;這裡&lt;/a&gt;。不過我雖然有遇到過這個錯誤訊息，但是當我正確的進入 DFU 模式之後，也可以用 iTunes 7.6 正常降級。&lt;/li&gt;&lt;li&gt;未知的錯誤 (1602)：這跟 1604 的錯誤一樣，也請改用 iTunes 7.5 再試試看。&lt;/li&gt;&lt;/ul&gt;另外，我也遇過破解已經完成，但是 iPod Touch 卻一直停留在回復模式，此時一樣利用 ZiPhone 從 Mode -&gt; Restart in Normal Mode，然後等個幾分鐘之後就會以正常模式重新開機。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-5920954048517098053?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2008/03/iphoneipod-touch.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>11</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-1901220985362833562</guid><pubDate>Tue, 26 Feb 2008 07:52:00 +0000</pubDate><atom:updated>2008-02-26T16:19:17.569+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>iPhone</category><category domain='http://www.blogger.com/atom/ns#'>iPhone Dev</category><category domain='http://www.blogger.com/atom/ns#'>Apple</category><category domain='http://www.blogger.com/atom/ns#'>Develope</category><title>iPhone SDK 可能要延遲了！</title><description>不知道有多少朋友跟我一樣，最近一直盯著 &lt;a href="http://www.apple.com/"&gt;Apple&lt;/a&gt; 主站和 ADC 的 &lt;a href="http://developer.apple.com/iphone/devcenter/"&gt;iPhone Dev Center&lt;/a&gt;，等待著 Jobs 之前說會在二月發表的 iPhone SDK。&lt;br /&gt;&lt;br /&gt;不過壞消息來了...根據 &lt;a href="http://www.businessweek.com/"&gt;BusinessWeek&lt;/a&gt; 的&lt;a href="http://www.businessweek.com/technology/ByteOfTheApple/blog/archives/2008/02/the_iphone_sdk.html"&gt;報導&lt;/a&gt;，iPhone SDK 可能要延遲一到三週才會發表。&lt;br /&gt;&lt;br /&gt;雖然 Apple 依照慣例不表示意見，但是 BusinessWeek 還是猜了一些原因，不過我們這些寫程式的都知道，東西沒有出來就是因為還沒完成，而為什麼沒辦法照既定時程完成...這可能要問天了吧....哈。&lt;br /&gt;&lt;br /&gt;總之，希望 SDK 快點釋出，我用來當工作機的 iPod Touch 都買好了說...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-1901220985362833562?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2008/02/iphone-sdk.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-1400144798342139756</guid><pubDate>Thu, 13 Dec 2007 08:35:00 +0000</pubDate><atom:updated>2007-12-13T22:55:00.119+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Podcast</category><category domain='http://www.blogger.com/atom/ns#'>Cocoa</category><title>CocoaCast</title><description>有朋友在 PTT 的 MacDev 版詢問要怎麼在 Xcode 上寫 C++ 和 Java，其實問題內容是他不知道怎麼開始使用 Xcode。雖然我之前翻的 &lt;a href="http://www.cocoadev.com/index.pl?BookBecomeAnXCoder"&gt;Become an Xcoder&lt;/a&gt; 有稍微介紹了 Xcode，但畢竟不是專門講這部份，說不定應該要來寫一篇簡單的教學？&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=160439142"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/CocoaCast-785413.png" alt="" border="0" /&gt;&lt;/a&gt;不過後面 anpig 兄倒是推薦了一個不錯的 podcast 資源：&lt;a dragover="true" href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=160439142"&gt;CocoaCast&lt;/a&gt;，內容看起來相當豐富，有興趣的朋友歡迎訂閱。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-1400144798342139756?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2007/12/cocoacast.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-6501925313110464892</guid><pubDate>Tue, 11 Dec 2007 08:35:00 +0000</pubDate><atom:updated>2007-12-11T17:16:40.271+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Fink</category><category domain='http://www.blogger.com/atom/ns#'>VTK</category><category domain='http://www.blogger.com/atom/ns#'>Cocoa</category><category domain='http://www.blogger.com/atom/ns#'>Develope</category><title>在 Mac 上使用 VTK</title><description>&lt;a href="http://www.vtk.org/"&gt;VTK&lt;/a&gt; - Visualization Toolkit 是一套在醫學影像上不少人用的 Open Source 函式庫，因為課程需要所以前陣子找了要怎麼在 Mac 上使用的一些資料。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.macresearch.org/installing_vtk_on_mac_os_x"&gt;Installing VTK on Mac OS X&lt;/a&gt; - 教你怎麼在 Mac 上編譯並安裝 VTK。不過他是直接安裝，像我這種喜歡用套件管理系統的人，可能會比較喜歡用 &lt;a href="http://www.finkproject.org/index.php"&gt;Fink&lt;/a&gt; 來安裝。&lt;br /&gt;幸運的是，Fink 中已經有了 VTK，只要啟用了 unstable 的套件之後就可以看到三個名為 vtk-py23/24/25 的套件，這三個套件都是 VTK，只是個別用來搭配 Python 2.3/2.4/2.5 罷了，選一個裝就可以了。不幸的是，VTK 本身有支援 Cocoa，但是預設是沒有開啟，而目前 Fink 套件樹中的也沒有打開這功能，而且他沒有包到目前最新的版本（5.0.3）。&lt;br /&gt;&lt;br /&gt;所以我根據 Fink 中 VTK 的設定檔，把 Cocoa 支援打開，包了 VTK-5.0.3，設定檔可以由此&lt;a href="http://blog.lifestyle.idv.tw/uploaded_files/vtk-5.0.3-finkinfo.zip"&gt;下載&lt;/a&gt;。下載之後的檔案是個 zip 檔，其中包含了三個檔案，把它們放到 {fink_path}/fink/dists/local/main/finkinfo 中，然後把 VTK-5.0.3 的原始碼（&lt;a href="http://www.vtk.org/files/release/5.0/vtk-5.0.3.tar.gz"&gt;下載&lt;/a&gt;）放到 {fink_path}/src 下，然後設定一下讓 Fink 去讀取本地的套件，應該就可以在套件樹中看到 vtk-py23/24/25 這三個套件，而且版本都是 5.0.3，最後下指令讓它編譯安裝（我是使用 Fink Commander 直接點選），等它編完安裝完就可以用了。&lt;br /&gt;&lt;br /&gt;想要玩的朋友請接著看以下三篇文章，應該就可以順利使用 Cocoa 搭配 VTK 使用了。&lt;br /&gt;&lt;a dragover="true" href="http://www.macresearch.org/cocoa_for_scientists_part_xiv_beginning_3d_visualization"&gt;Cocoa for Scientists (Part XIV): Beginning 3D Visualization - MacResearch&lt;/a&gt;&lt;br /&gt;&lt;a dragover="true" href="http://www.macresearch.org/cocoa_for_scientists_part_xv_continuing_3d_visualization"&gt;Cocoa for Scientists (Part XV): Continuing 3D Visualization - MacResearch&lt;/a&gt;&lt;br /&gt;&lt;a dragover="true" href="http://www.macresearch.org/cocoa_for_scientists_part_xvi_finalizing_3d_visualization"&gt;Cocoa for Scientists (Part XVI): Finalizing 3D Visualization - MacResearch&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;最後附上我寫的作業畫面：&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/MIP_screenshot-703829.png"&gt;&lt;img dragover="true" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/MIP_screenshot-703825.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-6501925313110464892?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2007/12/mac-vtk.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-7257945880508357830</guid><pubDate>Wed, 07 Nov 2007 06:29:00 +0000</pubDate><atom:updated>2007-11-07T15:13:05.872+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Obj-C</category><category domain='http://www.blogger.com/atom/ns#'>Xcode</category><category domain='http://www.blogger.com/atom/ns#'>Develope</category><title>Xcode 2.5 &amp; 3.0 發表</title><description>Apple 前幾天發表了 Xcode 2.5 及 3.0，其中 Xcode 2.5 可以安裝在 10.4 Tiger 和 10.5 Leopard 上，而 Xcode 3.0 則只能安裝在 10.5 Leopard。&lt;br /&gt;&lt;br /&gt;根據 Release Note，Xcode 2.5 除了修改了 2.4.1 的問題之外，最主要的功能就是在 Leopard 上為那些還沒有準備好要轉移到 Xcode 3 的專案提供一個比較平緩的轉移方式。&lt;br /&gt;&lt;br /&gt;Xcode 3.0 則是一個大改版，包含了 Objective-C 2.0 的支援、Dashcode、Interface Builder 3 等等。&lt;br /&gt;&lt;br /&gt;不過要注意的是，Objective-C 2.0 只能在 Leopard 上執行，因此必須搭配 10.5 SDK。假如要在 Leopard 上寫能在 Tiger 執行的程式，就必須嚴守 Objective-C 1.0 和 10.4 SDK 才行。&lt;br /&gt;&lt;br /&gt;Xcode 可以在 Apple 的&lt;a href="http://developer.apple.com/"&gt;開發者網站&lt;/a&gt;下載。&lt;br /&gt;Objective-C 2.0 的官方文件在 &lt;a href="http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/index.html"&gt;The Objective-C 2.0 Programming Language&lt;/a&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-7257945880508357830?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2007/11/xcode-25-30.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-2025208456861268644</guid><pubDate>Thu, 25 Oct 2007 12:00:00 +0000</pubDate><atom:updated>2008-02-26T16:20:59.515+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>iPhone</category><category domain='http://www.blogger.com/atom/ns#'>iPhone Dev</category><category domain='http://www.blogger.com/atom/ns#'>Apple</category><category domain='http://www.blogger.com/atom/ns#'>Develope</category><title>iPhone/iPod Touch 軟體開發</title><description>雖然 Leopard 發行在即，但這兩天關於 iPhone/iPod Touch 的消息也不少。其中最重要的應該就是 Apple 決定釋出 iPhone 的 SDK，因此以後也可以自己寫 iPhone 的原生程式了，而且 iPod Touch 也適用。&lt;br /&gt;&lt;blockquote&gt;Third Party Applications on the iPhone&lt;br /&gt;Let me just say it: We want native third party applications on the iPhone, and we plan to have an SDK in developers’ hands in February. We are excited about creating a vibrant third party developer community around the iPhone and enabling hundreds of new applications for our users. With our revolutionary multi-touch interface, powerful hardware and advanced software architecture, we believe we have created the best mobile platform ever for developers.&lt;br /&gt;It will take until February to release an SDK because we’re trying to do two diametrically opposed things at once—provide an advanced and open platform to developers while at the same time protect iPhone users from viruses, malware, privacy attacks, etc. This is no easy task. Some claim that viruses and malware are not a problem on mobile phones—this is simply not true. There have been serious viruses on other mobile phones already, including some that silently spread from phone to phone over the cell network. As our phones become more powerful, these malicious programs will become more dangerous. And since the iPhone is the most advanced phone ever, it will be a highly visible target.&lt;br /&gt;&lt;br /&gt;Some companies are already taking action. Nokia, for example, is not allowing any applications to be loaded onto some of their newest phones unless they have a digital signature that can be traced back to a known developer. While this makes such a phone less than “totally open,” we believe it is a step in the right direction. We are working on an advanced system which will offer developers broad access to natively program the iPhone’s amazing software platform while at the same time protecting users from malicious programs.&lt;br /&gt;&lt;br /&gt;We think a few months of patience now will be rewarded by many years of great third party applications running on safe and reliable iPhones.&lt;br /&gt;&lt;br /&gt;Steve&lt;br /&gt;&lt;br /&gt;P.S.: The SDK will also allow developers to create applications for iPod touch.&lt;br /&gt;&lt;a href="http://www.apple.com/hotnews/"&gt;Apple - Hot News&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;這消息出來之後沒幾天，Apple 又在&lt;a href="http://developer.apple.com/"&gt;開發者網站&lt;/a&gt;上規劃了一個新的區域 - &lt;a href="http://developer.apple.com/iphone/devcenter/"&gt;iPhone Dev Center&lt;/a&gt;，雖然目前只有 Web App 放在上面，但未來 SDK 公開之後應該也會以此為中心。&lt;br /&gt;&lt;br /&gt;只是這個 SDK 不知道會不會只能在 Mac 上使用，還是會像 Safari 一樣推出 Windows 版呢？總之，應該趕快弄台 iPhone 或 iPod Touch 來玩了 :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-2025208456861268644?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2007/10/iphoneipod-touch.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-8499075978833291893</guid><pubDate>Sat, 06 Oct 2007 19:55:00 +0000</pubDate><atom:updated>2007-10-07T13:46:13.326+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Tip</category><category domain='http://www.blogger.com/atom/ns#'>Linux</category><title>試著在 Virtual PC 7 中安裝 Linux [1]</title><description>因為這學期修了一門 Linux 驅動程式開發，所以想在 VPC 中安裝一套 Linux 來用，沒想到真是困難重重啊...&lt;br /&gt;&lt;br /&gt;先說明我的需求：因為只是要在上面練習寫 driver，所以 GUI 就省了，只需要有 ssh server 能夠登入就好。&lt;br /&gt;我的配備則是 PowerBook G4 1.67GHz，記憶體有 2G，使用 Virtual PC 7.03。&lt;br /&gt;&lt;br /&gt;首先先用了我最熟悉的 Mandriva。下載了 Mandriva 2007.1 來裝，輕鬆愉快的安裝好，只花了大約半小時多，然後開機，結果一直停在Uncompressing Linux... Ok, booting the kernel.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/Mandriva_2007.1_no_respond-754432.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/Mandriva_2007.1_no_respond-754428.png" alt="" border="0" /&gt;&lt;/a&gt;不會動...它就是不會動...&lt;br /&gt;&lt;br /&gt;於是我轉向 Mandriva 2007.0，結果相同...它還是不會動。&lt;br /&gt;&lt;br /&gt;因此我腦筋動到了最近幾年很紅的 Ubuntu 上，抓來試試，先試了 7.04，沒想到在安裝的時候就遇到問題...看起來是螢幕設定有問題，安裝畫面大概只能看到一半...&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/Ubuntu_7.04_install_out_of_range-735618.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/Ubuntu_7.04_install_out_of_range-735616.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;我只好摸黑進行，一直到了安裝 base system 的時候，我看到進度列一直停留在 6%，停了起碼有 20 分鐘以上，只好放棄重新啟動。&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/Ubuntu_7.04_install_hung-797681.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/Ubuntu_7.04_install_hung-797679.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;經過了重複的試驗之後，我發現在 Ubuntu 安裝畫面一開始的地方可以設定 VGA，改成 800x600x16 之後，突然，安裝畫面正常了，我可以看到整個畫面了，也才發現原來進度列雖然停在  6％ 但是它還是有在跑的！接下來就是耐心的考驗了....在經過了 2.5 小時的安裝之後，系統終於安裝完畢，但是第一次啟動就看到如下的畫面...&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/Ubuntu_7.04_kernel_panic-790560.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/Ubuntu_7.04_kernel_panic-790558.png" alt="" border="0" /&gt;&lt;/a&gt;Kernel 噴了兩行 CPU 的暫存器內容...掛了...&lt;br /&gt;&lt;br /&gt;這樣不行，請出 Google 大神，在網路上翻啊翻的，看到有人說 Windows 版的 Virtual PC 2004 差不多就等於 Mac 版的 VPC 7，安裝的資料可以參考這個網站：&lt;a href="http://vpc.visualwin.com/index.aspx"&gt;What Works and What Doesn't in Microsoft Visual PC 2004&lt;/a&gt;。在查閱了裡面的資料之後，我確定了目前應該沒有人安裝成功我試的這幾個 Linux Distro...&lt;br /&gt;&lt;br /&gt;退而求其次，我看到目前為止 Ubuntu 可以安裝的最新版本是 Ubuntu 6.06，就決定是你了吧，不過我實在是沒力在等下去，決定把電腦放下載，先去睡了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-8499075978833291893?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2007/10/virtual-pc-7-linux-1.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-7806826004318156087</guid><pubDate>Mon, 03 Sep 2007 13:01:00 +0000</pubDate><atom:updated>2007-09-04T22:15:12.427+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>廣告</category><title>第零屆 CocoaHeads.tw 起跑！</title><description>很高興看到台灣即將要有 Cocoa 愛好者聚會了！&lt;br /&gt;&lt;span class="" style="display: block;" id="formatbar_CreateLink" title="連結" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;br /&gt;在 9/13 晚上 7:00，在優仕八德店二樓會有第一次聚會，活動網址在 &lt;a href="http://cocoaheads.tw/index.php"&gt;http://cocoaheads.tw/index.php&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;聚會議程如下：&lt;br /&gt;本次聚會暫定議程如下：&lt;br /&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;開場白&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;「Really Simple Cocoa Tips」 by yllan&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;「My Favorite Cocoa Features」 by Lukhnos&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Free Chat：我的 Cocoa 經歷&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Showcase （秀一下你的 Cocoa 專案吧！）&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;可惜我目前人在新竹，可能沒辦法去，不然真想去參加，殘念...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-7806826004318156087?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2007/09/cocoaheadstw.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-5271378389993317629</guid><pubDate>Mon, 03 Sep 2007 12:50:00 +0000</pubDate><atom:updated>2007-09-03T20:59:47.878+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Become an Xcoder</category><title>Become an Xcoder 邁入 70000 次下載的里程碑</title><description>前天收到 CocoaLab 的來信，提到 Become an Xcoder 一書已經突破了 70000 次的下載數，真是可喜可賀！&lt;br /&gt;&lt;br /&gt;不過正體中文版三個月來只有總共 273 次下載，跟其他語言比起來實在是少得可憐啊...請大家有機會的話多多推廣一下吧，希望台灣的 Mac 開發者能夠越來越多。&lt;br /&gt;&lt;br /&gt;附上統計資訊 &lt;a href="http://blog.lifestyle.idv.tw/uploaded_files/BecomeAnXcoder%20stats.pdf"&gt;BecomeAnXcoder stats.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-5271378389993317629?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2007/09/become-xcoder-70000.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-5338653522308046131</guid><pubDate>Thu, 12 Jul 2007 07:07:00 +0000</pubDate><atom:updated>2007-07-29T02:19:21.738+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Apple</category><title>台灣的 iPhone 熱潮</title><description>iPhone 雖然亞洲要到 2008 才會上市，而我猜台灣說不定要到 2008 下半年才有可能上市，不過最近台灣的媒體一直炒，所以 iPhone 在台灣的知名度好像還不低的樣子。&lt;br /&gt;&lt;br /&gt;於是在台灣引進之前，為了因應新聞熱度，Studio A 還特別跑去美國買了兩台回來展示，不過展沒兩天就被台灣蘋果罵得臭頭趕快收起來不敢展了，連公司網站上之前的廣告都緊急撤掉，只能在報紙網站上找到報導 (&lt;a href="http://www.libertytimes.com.tw/2007/new/jul/4/today-show17-2.htm"&gt;自由時報 -iPhone 現身台北！&lt;/a&gt;)。&lt;br /&gt;&lt;br /&gt;這兩天在世貿的多媒體展，主辦單位又搞來 10 台 iPhone，打算拿四台抽獎，剩下六台用競標的方式賣出。&lt;br /&gt;&lt;br /&gt;這次因為剛好有朋友找我去幫忙顧蘋果攤，所以我也就生平第一次的去了多媒體展賣電腦。結果第二天正在跟客人介紹 MacBook 時，突然有個歐吉桑衝到櫃位裡面，對著我說：「借我充電一下！」我愣住了，才發出一聲「啥？」，那位歐吉桑又說：「借我 iPhone 充電一下！」，然後就把一台 iPhone 放到桌上，還把 USB 接頭遞給我...就這樣，這就是我跟 iPhone 的第一次接觸...雖然我之前就知道 AT 對這這件事很感冒，而且還特別派人過來盯，還就站在我旁邊，不過我想，管他的，就把它接到 MacBook 上。那位歐吉桑還叫我幫他開通，我只好跟他說台灣這邊不能用啦，他還說他才剛花了兩萬塊標下來，怎麼會不能用，然後最讓我傻眼的事發生了...這位歐吉桑說：「算了我再看看，我還要去看別的東西，你先幫我充電」，然後他就繼續去逛他的了...真是有夠豪氣...&lt;br /&gt;&lt;br /&gt;於是我拿出手機拍了張照，然後繼續跟客人介紹電腦 XD&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/DSC00038-712470.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/DSC00038-712468.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;要我說對這整件事的感想，就是台灣公司實在太混了...&lt;br /&gt;AT 無力或無意爭取讓 iPhone 早點在台灣上市就算了，連有人自己帶進來展示都要管；然後多媒體展的主辦廠商吸引不了人氣，沒事弄個在台灣根本不能用的東西來賣，也不先講清楚，實在無良；最後是台灣人真有錢...什麼狀況都還搞不清楚就能掏出兩萬塊買東西....怪哉...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-5338653522308046131?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2007/07/iphone.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-1619139233598399619</guid><pubDate>Sun, 24 Jun 2007 13:09:00 +0000</pubDate><atom:updated>2007-06-25T15:34:35.561+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Become an Xcoder</category><category domain='http://www.blogger.com/atom/ns#'>Develope</category><title>Become an Xcoder 正體中文版 [12]</title><description>拖稿拖的很嚴重...不過我總算是全部整理完了。&lt;br /&gt;&lt;a href="http://blog.lifestyle.idv.tw/uploaded_files/BecomeAnXcoderTC.pdf"&gt;BecomeAnXcoderTC.pdf&lt;/a&gt; PDF 版&lt;br /&gt;&lt;a href="http://blog.lifestyle.idv.tw/uploaded_files/BecomeAnXcoderTC_pages.zip"&gt;BecomeAnXcoderTC_pages.zip&lt;/a&gt; Pages 原始檔&lt;br /&gt;&lt;br /&gt;感謝大家的支持！&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;update:&lt;br /&gt;本書的原始作者 &lt;a href="http://www.cocoalab.com/"&gt;CocoaLab&lt;/a&gt; 已經將正體中文版放到網站上了，大家也可以由 &lt;a href="http://www.cocoalab.com/BecomeAnXcoder%28TChinese%29.pdf"&gt;http://www.cocoalab.com/BecomeAnXcoder(TChinese).pdf &lt;/a&gt;下載，應該會比從我這邊下載來得快。&lt;br /&gt;&lt;br /&gt;另外我發現 CocoaLab 已經釋出了新的版本 1.13，雖然應該是大同小異，但我有空也會把正體中文版一併更新的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-1619139233598399619?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2007/06/become-xcoder-12.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>10</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-7695471467045078958</guid><pubDate>Sun, 03 Jun 2007 15:51:00 +0000</pubDate><atom:updated>2007-06-06T15:35:16.397+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Apple</category><title>STUDIO A 開幕活動</title><description>最近在蘋果圈應該算蠻熱門的 &lt;a href="http://www.studioa.com.tw/"&gt;STUDIO A&lt;/a&gt;，在 5/31 正式開幕之後，6/2 有個排隊送 Apple 原廠 T-shirt 的活動。&lt;br /&gt;&lt;br /&gt;前一天晚上打定主意假如睡過頭就算了....早早上了床。第二天大約七點醒過來，吃完早餐大約七點四十多分才出門，一邊騎車還一邊在想：新聞稿上說八點開放排隊，假如到的時候已經排滿人，那就回家繼續睡覺好了...。一路上車子不多，不過太陽已經頗大了，八點多的時候到了紐約紐約，一看才發現...人還真少........&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/DSC01215-710561.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/DSC01215-710551.JPG" alt="" border="0" /&gt;&lt;/a&gt;在我之前只有四個人坐在地上打牌，這時已經是早上 8:09 分了，官方網站上寫八點開放排隊，我以為會有人在發號碼牌，結果店內空蕩沒有一人...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/DSC01216-748388.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/DSC01216-748365.JPG" alt="" border="0" /&gt;&lt;/a&gt;9:16 分，過了一小時我們只多了三位戰友...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/DSC01217-798176.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/DSC01217-798135.JPG" alt="" border="0" /&gt;&lt;/a&gt;9:39，有位爸爸帶著一個小朋友出現...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/DSC01218-731357.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/DSC01218-731324.JPG" alt="" border="0" /&gt;&lt;/a&gt;大家已經熱昏了，只見一整排的水瓶在排隊...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/DSC01219-705310.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/DSC01219-705277.JPG" alt="" border="0" /&gt;&lt;/a&gt;STUDIO A 仍然大門深鎖，空無一人...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/DSC01221-756555.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/DSC01221-756533.JPG" alt="" border="0" /&gt;&lt;/a&gt;10:14，照排的東西看起來，目前應該突破 20 人了...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/DSC01223-760947.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/DSC01223-760006.JPG" alt="" border="0" /&gt;&lt;/a&gt;這張照片的意象我很喜歡，不過拍的時候我已經快脫水了....&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/DSC01225-761365.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/DSC01225-761346.JPG" alt="" border="0" /&gt;&lt;/a&gt;離開始營業還有 15 分鐘，地上排的東西有稍微多了一些，大約 25 個左右吧...不過這些東西的主人呢？&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/DSC01227-715368.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/DSC01227-715331.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;大家都躲到旁邊去了...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/DSC01228-750638.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/DSC01228-750627.JPG" alt="" border="0" /&gt;&lt;/a&gt;10:50，終於有人出來發號碼牌了，我拿到的是 5 號&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/DSC01231-732443.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/DSC01231-732417.JPG" alt="" border="0" /&gt;&lt;/a&gt;排了很久，就是為了這個袋子裡面的衣服&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/DSC01233-766953.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/DSC01233-766910.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;原廠 T-shirt 的全貌，還蠻大件的，純棉，觸感不錯&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.lifestyle.idv.tw/uploaded_images/DSC01237-706873.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://blog.lifestyle.idv.tw/uploaded_images/DSC01237-706856.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;牌子上說這件衣服還可以防 UV，不知道真的假的，哈！&lt;br /&gt;&lt;br /&gt;STUDIO A 七月的時候還要在西門町開一個點，不知道到時還會不會有類似的活動。不過假如要去的話，記得要帶傘，我已經開始脫皮了...&lt;br /&gt;&lt;br /&gt;總而言之，這次的活動我覺得規劃不足，沒有先拉個線讓人排隊，也沒有弄個遮陽的大傘、新聞稿上說八點開放排隊卻沒有任何工作人員出現、宣傳也很遜，弄到現場根本沒人排隊，100 件衣服居然還要開店半小時後才發完，實在是很誇張...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-7695471467045078958?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2007/06/studio.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-17948358.post-6792614545345610001</guid><pubDate>Thu, 31 May 2007 03:36:00 +0000</pubDate><atom:updated>2007-06-01T02:54:08.087+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>公告</category><title>伺服器修復</title><description>大約兩個禮拜前我自己的 server 就掛了，本來以為是硬碟掛點，因為 LVM 磁區發生錯誤無法啟用，後來不死心重新試試，才發現我系統中許多指令都被抽換掉了...看來是被入侵了...&lt;br /&gt;&lt;br /&gt;總之，經過重灌之後，目前系統大致恢復正常，我也順便把 blog 網址從 http://blog.lifestyle.idv.tw/~shiva/ 移到 http://blog.lifestyle.idv.tw，過陣子也該開始動工把 blog 外觀改一改了...還要幫之前的文章加上 tag，幸好文章不多，這工作量應該不會太大 XD&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17948358-6792614545345610001?l=blog.lifestyle.idv.tw' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.lifestyle.idv.tw/2007/05/blog-post.html</link><author>noreply@blogger.com (Shiva Huang)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item></channel></rss>