<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4801889095894090165</id><updated>2024-12-18T21:33:41.791-08:00</updated><category term="Linux"/><category term="XCode"/><category term="Android"/><category term="Cocoa"/><category term="windows"/><category term="Coding"/><category term="Mac"/><category term="driver"/><category term="AspireOne"/><category term="VIM"/><category term="python"/><title type='text'>M.Y. Journal</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-975349924025552598</id><published>2016-03-17T08:52:00.003-07:00</published><updated>2016-03-17T08:52:18.578-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>[win32] pyBarcode 在 cx_Freeze 之後，產生 barcode image 時出現 IOError: cannot open resource </title><content type='html'>稍微筆記一下這件事：&lt;br /&gt;
&lt;br /&gt;
pyBarcode 使用 cx_Freeze 包裝成在沒有 python 環境下執行，&lt;br /&gt;
在產生圖檔的時候，出現IOError 的問題：&lt;br /&gt;
&lt;br /&gt;
原因為 字型檔沒有在 cx_Freeze 包裝後的目錄中被找到：&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;em&gt;[python installation directory]&lt;/em&gt;\Lib\site-packages\barcode\writer.py&lt;/b&gt;

&lt;br /&gt;
&lt;pre class=&quot;lang-py prettyprint prettyprinted&quot;&gt;&lt;b&gt;&lt;code&gt;&lt;span class=&quot;pln&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;pre class=&quot;lang-py prettyprint prettyprinted&quot;&gt;&lt;b&gt;&lt;code&gt;&lt;span class=&quot;pln&quot;&gt;PATH &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; os&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;dirname&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;abspath&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;__file__&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;))&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;
FONT &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; os&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;PATH&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot;&gt;&#39;DejaVuSansMono.ttf&#39;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;然而&lt;code&gt; &lt;span class=&quot;str&quot;&gt;DejaVuSansMono.ttf 字型檔是附加在 pyBarcode 套件中，而路徑是使用絕對路徑，在經由 cx_Freeze 包裝後，自然就找不到。&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;code&gt;&lt;span class=&quot;str&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;code&gt;&lt;span class=&quot;str&quot;&gt;MY Workaround:&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;code&gt;&lt;span class=&quot;str&quot;&gt;使用 Windows 中的預設字型, 修改成：&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;lang-py prettyprint prettyprinted&quot;&gt;&lt;b&gt;&lt;code&gt;&lt;span class=&quot;com&quot;&gt;#FONT = os.path.join(PATH, &#39;DejaVuSansMono.ttf&#39;)&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;
FONT &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot;&gt;&#39;arial.ttf&#39;&lt;/span&gt;&lt;/code&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;pre class=&quot;lang-py prettyprint prettyprinted&quot;&gt;&lt;code&gt;&lt;span class=&quot;str&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;lang-py prettyprint prettyprinted&quot;&gt;&lt;code&gt;&lt;span class=&quot;str&quot;&gt;這樣 Barcode image 上面的字型即為 Arial.&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;lang-py prettyprint prettyprinted&quot;&gt;&lt;code&gt;&lt;span class=&quot;str&quot;&gt;或是，也可以自行將 &lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span class=&quot;com&quot;&gt;DejaVuSansMono.ttf 裝至系統。&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;lang-py prettyprint prettyprinted&quot;&gt;&lt;code&gt;&lt;span class=&quot;com&quot;&gt;(這樣需要執行程式的電腦都要安裝該字型…不建議啦) &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;lang-py prettyprint prettyprinted&quot;&gt;&lt;code&gt;&lt;span class=&quot;com&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;lang-py prettyprint prettyprinted&quot;&gt;&lt;code&gt;&lt;span class=&quot;str&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/975349924025552598/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/975349924025552598' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/975349924025552598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/975349924025552598'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2016/03/win32-pybarcode-cxfreeze-barcode-image.html' title='[win32] pyBarcode 在 cx_Freeze 之後，產生 barcode image 時出現 IOError: cannot open resource '/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-5412843545596629985</id><published>2012-02-06T00:20:00.000-08:00</published><updated>2012-02-06T20:30:20.120-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>Windows programming, standard input/output - AllocConsole()</title><content type='html'>前言 &lt;br /&gt;
整理一下，在 windows programming 的時候，如何使用 printf, 這類的 standard I/O (標準I/O) 來顯示訊息幫助開發？&lt;br /&gt;
&lt;br /&gt;
原因 &lt;br /&gt;
在 windows programming，使用 MFC 的標準 windows template 都沒有 console window 來幫助顯示開發訊息，當然可以使用 IDE 中 debug message, 但這邊提供另一種方式，因為個人偏好使用 printf 快速地傾印資訊。&lt;br /&gt;
&lt;br /&gt;
解法&lt;br /&gt;
&lt;br /&gt;
先貼一段程式碼，從網路上抄來的…&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&amp;nbsp; AllocConsole();&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE);&lt;br /&gt;
&amp;nbsp; int hCrtOut = _open_osfhandle(/*(long)*/(intptr_t) handle_out, _O_TEXT);&lt;br /&gt;
&amp;nbsp; FILE* hf_out = _fdopen(hCrtOut, &quot;w&quot;);&lt;br /&gt;
&amp;nbsp; setvbuf(hf_out, NULL, _IONBF, 1);&lt;br /&gt;
&amp;nbsp; *stdout = *hf_out;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; HANDLE handle_in = GetStdHandle(STD_INPUT_HANDLE);&lt;br /&gt;
&amp;nbsp; hCrtIn = _open_osfhandle(/*(long)*/(intptr_t) handle_in, _O_TEXT);&lt;br /&gt;
&amp;nbsp; FILE* hf_in = _fdopen(hCrtIn, &quot;r&quot;);&lt;br /&gt;
&amp;nbsp; setvbuf(hf_in, NULL, _IONBF, 128);&lt;br /&gt;
&amp;nbsp; *stdin = *hf_in; &lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
然後再補上 streaming(串流) 的關係圖&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi986NISr76rRHaMyUiBA_fwrDArUot3-dRJHRypBSukilOnn_8KbsVZPVs-oCXWyhxz-FtDVU4e9XAYsJsrT-KgzhFw4jE9jrtes3bsqhUjBWnY8wkUpQJDe2ORjDJcWGX5yHvFcKXIOo/s1600/AllocConsole+-+display+msg.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;441&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi986NISr76rRHaMyUiBA_fwrDArUot3-dRJHRypBSukilOnn_8KbsVZPVs-oCXWyhxz-FtDVU4e9XAYsJsrT-KgzhFw4jE9jrtes3bsqhUjBWnY8wkUpQJDe2ORjDJcWGX5yHvFcKXIOo/s640/AllocConsole+-+display+msg.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
這樣搭配看 應該很好理解程式碼。&lt;br /&gt;
&lt;br /&gt;
補充說明&lt;br /&gt;
Process / Windows 就是目前在開發的 GUI 程式。&lt;br /&gt;
&lt;br /&gt;
*stdout / *stdin 就是 CRT(C Run Time) lib 中的標準輸入跟輸出的指標，系統制訂的。&lt;br /&gt;
&lt;br /&gt;
Console window 是使用 Window API, AllocConsole() 所產生。&lt;br /&gt;
搭配使用 GetStdHandle() 來取得 console standard I/O handle, handle_in / handle _out。&lt;br /&gt;
&lt;br /&gt;
透過 _open_osfhandle() 將 console standard input/output handle 轉換為 file handle。&lt;br /&gt;
再使用 fdopen() 的方式，把 file handle, hCrtIn / hCrtOut 轉換為 file description。&lt;br /&gt;
&lt;br /&gt;
最後，把 file description, hf_in / hf_out assigned to *stdin / *stdout 。&lt;br /&gt;
這樣視窗開發時，使用 printf 都不是問題囉！&lt;cout console=&quot;&quot; i=&quot;&quot; o=&quot;&quot; p=&quot;&quot; printf=&quot;&quot; window之中。&lt;=&quot;&quot; 就可以呈現在=&quot;&quot; 這類的標準=&quot;&quot;&gt;&lt;/cout&gt;&lt;br /&gt;
&lt;br /&gt;
有問題再留言囉！謝謝。&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/5412843545596629985/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/5412843545596629985' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/5412843545596629985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/5412843545596629985'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2012/02/windows-programming-allocconsole.html' title='Windows programming, standard input/output - AllocConsole()'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi986NISr76rRHaMyUiBA_fwrDArUot3-dRJHRypBSukilOnn_8KbsVZPVs-oCXWyhxz-FtDVU4e9XAYsJsrT-KgzhFw4jE9jrtes3bsqhUjBWnY8wkUpQJDe2ORjDJcWGX5yHvFcKXIOo/s72-c/AllocConsole+-+display+msg.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-272212496483573113</id><published>2011-04-16T23:40:00.000-07:00</published><updated>2011-04-18T19:30:25.365-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cocoa"/><category scheme="http://www.blogger.com/atom/ns#" term="Mac"/><category scheme="http://www.blogger.com/atom/ns#" term="XCode"/><title type='text'>How to setup QuickSynergy as Client on Mac.</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;如何設定Mac上的QuickSynergy Client設定。&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;前言&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&amp;nbsp;&lt;a href=&quot;http://code.google.com/p/quicksynergy/&quot;&gt;QuickSynergy&lt;/a&gt;&amp;nbsp;中所提供的 Mac 版本，在設定其為 Client 時，遇到了些不方便的地方。&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;原因&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;先來看看 QuickSynergy 的 Client 設定畫面。&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNaqDmMrqhMU5bJGWnkiz1VKm1Hj76g7r6W_v6pbJIfpR1KluO2qgKhsVOBlf4TRw5ARJ1v2_zTlcBbGa0ZLs-MVgwUxeYZi4edNzjolQtFoqW2VAq5dxzjhkzCyFJruqssfNXHfHpnOQ/s1600/Screenshot-QuickSynergy.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNaqDmMrqhMU5bJGWnkiz1VKm1Hj76g7r6W_v6pbJIfpR1KluO2qgKhsVOBlf4TRw5ARJ1v2_zTlcBbGa0ZLs-MVgwUxeYZi4edNzjolQtFoqW2VAq5dxzjhkzCyFJruqssfNXHfHpnOQ/s1600/Screenshot-QuickSynergy.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;在 Ubuntu 上面的 QuickSynergy, 正常有 Screen name 欄位.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNaqDmMrqhMU5bJGWnkiz1VKm1Hj76g7r6W_v6pbJIfpR1KluO2qgKhsVOBlf4TRw5ARJ1v2_zTlcBbGa0ZLs-MVgwUxeYZi4edNzjolQtFoqW2VAq5dxzjhkzCyFJruqssfNXHfHpnOQ/s1600/Screenshot-QuickSynergy.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6WTY9iHOtzHPfbxPQ69zGqCiNKluFI_31sZ6WSMxkSOeL_V1_9fS609259t9aFC72YJ4IvUEiQEkB68vyZi6IjBraSzXjNTFW6QPCJiqYxDr1ScetsbS7sNqadaVqYuMjJ4H-DQBEgpY/s1600/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2011-04-17+%25E4%25B8%258B%25E5%258D%258812.21.15.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6WTY9iHOtzHPfbxPQ69zGqCiNKluFI_31sZ6WSMxkSOeL_V1_9fS609259t9aFC72YJ4IvUEiQEkB68vyZi6IjBraSzXjNTFW6QPCJiqYxDr1ScetsbS7sNqadaVqYuMjJ4H-DQBEgpY/s1600/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2011-04-17+%25E4%25B8%258B%25E5%258D%258812.21.15.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;在 Mac 上面的 QuickSynergy, 不太對呀…怎麼沒有 Screen name.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;沒有了 Screen name 那怎麼在 Server side 定義呢？！原來是 QuickSynergy 會使用系統的 Local host name 當作 Screen name 連至 server side. 那我們該如何拿到自己的 host name呢？&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;其實很簡單，打開 Terminal 看一下提示字元前的名稱是什麼，再加上網域xxx (如：.xxx)。&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;【但小弟一開始沒發現這樣，&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;於是就抓下了原始碼(From Google Project) 上面。&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;自己動手加了顯示 Screen Name】&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;解法&lt;/span&gt;&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKrgYYbikdSM366djpp0BKwz2-yXJmQXAwkNsipMvhZiLg7m2OJmbBGMf_7D4pPppdkB7ne_xxNFAmAJ6mEYGQpaSjKLR8bN8LrPEkZeqWxy4HSSuea0sYayB3-dJ9kZ7kin-otm_xi8Q/s1600/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2011-04-17+%25E4%25B8%258B%25E5%258D%25882.24.31.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKrgYYbikdSM366djpp0BKwz2-yXJmQXAwkNsipMvhZiLg7m2OJmbBGMf_7D4pPppdkB7ne_xxNFAmAJ6mEYGQpaSjKLR8bN8LrPEkZeqWxy4HSSuea0sYayB3-dJ9kZ7kin-otm_xi8Q/s1600/%25E8%259E%25A2%25E5%25B9%2595%25E5%25BF%25AB%25E7%2585%25A7+2011-04-17+%25E4%25B8%258B%25E5%258D%25882.24.31.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif; font-size: small;&quot;&gt;加了一個元件來顯示目前Macbook中的 Host name.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;(一切都只是為了方便於設定啦！)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
下載：&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;a href=&quot;http://code.google.com/p/my-quicksynergy/downloads/detail?name=QuickSynergy.app.r3.zip&amp;amp;can=2&amp;amp;q=&quot;&gt;執行檔(bin)&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;a href=&quot;http://code.google.com/p/my-quicksynergy/&quot;&gt;原始碼(source code)&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;後記：&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;如果想把Synergy 結合在系統的設定選項中，可以參考始用&lt;a href=&quot;http://sourceforge.net/projects/synergykm/&quot;&gt; SynergyKM&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;狀態能一下就看出來（在狀態列上），相當的方便。推廌始用。&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/272212496483573113/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/272212496483573113' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/272212496483573113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/272212496483573113'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2011/04/how-to-setup-quicksynergy-as-client-on.html' title='How to setup QuickSynergy as Client on Mac.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNaqDmMrqhMU5bJGWnkiz1VKm1Hj76g7r6W_v6pbJIfpR1KluO2qgKhsVOBlf4TRw5ARJ1v2_zTlcBbGa0ZLs-MVgwUxeYZi4edNzjolQtFoqW2VAq5dxzjhkzCyFJruqssfNXHfHpnOQ/s72-c/Screenshot-QuickSynergy.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-8299341613546486273</id><published>2011-03-10T21:50:00.000-08:00</published><updated>2011-03-13T21:07:58.879-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Thinkpad X40 -- INTEL i855GM Driver 測試</title><content type='html'>&lt;a href=&quot;https://wiki.ubuntu.com/X/Bugs/Lucidi8xxFreezes#GTT%20Incoherency%20Patch&quot;&gt;Lucidi8xxFreezes&lt;br /&gt;
&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
最近升級至 Ubuntu 10.10 之後，X40 的顯卡似乎就沒辦法正常運作圖行加速的功能。&lt;br /&gt;
於似乎找到了上面連結的討論。也花了一兩個早上在試著把圖顯加速的功能開啟。&lt;br /&gt;
試到至今的結果是可以開啟圖顯加速，但畫面會產生破損的情況。（等於沒用）&lt;br /&gt;
如果想要好一點的圖顯加速功能似乎也只能退回至10.04版加上舊版的kernel. &lt;br /&gt;
以上，很不甘心的結案。（會再持續觀察)&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/8299341613546486273/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/8299341613546486273' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/8299341613546486273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/8299341613546486273'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2011/03/thinkpad-x40-lucidi8xxfreezes-tested.html' title='Thinkpad X40 -- INTEL i855GM Driver 測試'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-5783085183500974659</id><published>2011-02-07T20:20:00.000-08:00</published><updated>2011-02-07T20:24:42.444-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>[Tips] 監控 dmesg 命令的即時訊息</title><content type='html'>&lt;ol&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 16px;&quot;&gt;參考來源&lt;/span&gt;:&amp;nbsp;&lt;a href=&quot;http://highmem.blogspot.com/2005/08/watch-file-while-it-changes-dmesg.html&quot;&gt;watch-file-while-it-changes-dmesg.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 16px;&quot;&gt;命令:&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: blue; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 14px;&quot;&gt;watch &quot;dmesg |tail --lines=$(($LINES-4))&quot;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 16px;&quot;&gt;參數說明&lt;/span&gt;:&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;watch:&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 16px;&quot;&gt;關察 “命令” 的變化&lt;/span&gt;&lt;/li&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;
&lt;li&gt;tail --line：&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 16px;&quot;&gt;欲顯視之行數多寡&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;$LINES：&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 16px;&quot;&gt;目前終端機之顯示行數&lt;/span&gt;&lt;/li&gt;
&lt;/span&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/5783085183500974659/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/5783085183500974659' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/5783085183500974659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/5783085183500974659'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2011/02/tips-dmesg.html' title='[Tips] 監控 dmesg 命令的即時訊息'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-9172547315652374467</id><published>2010-12-28T23:30:00.000-08:00</published><updated>2010-12-28T23:30:50.240-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Ubuntu 10.10 &amp; ThinkPad(X40) 中鍵捲動</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: transparent; font-family: &#39;Times New Roman&#39;; font-size: 11pt; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-indent: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span id=&quot;internal-source-marker_0.6855245004408062&quot; style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;事由&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;某日心血來潮在台年齡超過七年的ThinkPad上面裝上 Ubuntu 10.10，&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;結果…中鍵的功能卻少了可以上下捲動的功能，&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;只好靠著 GOOGLE 找到了這樣的文章～～來暫時解決一下囉！&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;參考網站文章&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.eastwoodzhao.com/thinkpad-middle-button-scroll-ubuntu-linux-10-04-lucid-lynx/&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://www.eastwoodzhao.com/thinkpad-middle-button-scroll-ubuntu-linux-10-04-lucid-lynx/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.eastwoodzhao.com/thinkpad-middle-button-scroll-ubuntu-linux-10-04-lucid-lynx/&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;修改步驟&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;新增檔案&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/ol&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;For 10.10&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;table style=&quot;border-bottom-style: none; border-collapse: collapse; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #444444; font-family: Verdana; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;sudo gvim /usr/share/X11/xorg.conf.d/20-thinkpad.conf&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;For 10.04&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;table style=&quot;border-bottom-style: none; border-collapse: collapse; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #444444; font-family: Verdana; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;sudo nano /usr/lib/X11/xorg.conf.d/20-thinkpad.conf&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;ol start=&quot;2&quot;&gt;&lt;li style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;加入檔案內容&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;table style=&quot;border-bottom-style: none; border-collapse: collapse; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 7px; padding-left: 7px; padding-right: 7px; padding-top: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #444444; font-family: Verdana; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Section &quot;InputClass&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: #444444; font-family: Verdana; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Identifier&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&quot;Trackpoint Wheel Emulation&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: #444444; font-family: Verdana; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;MatchProduct&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&quot;TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: #444444; font-family: Verdana; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;MatchDevicePath&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&quot;/dev/input/event*&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: #444444; font-family: Verdana; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Option&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &quot;EmulateWheel&quot;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &quot;true&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: #444444; font-family: Verdana; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Option&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &quot;EmulateWheelButton&quot;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&quot;2&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: #444444; font-family: Verdana; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Option&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &quot;Emulate3Buttons&quot;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&quot;false&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: #444444; font-family: Verdana; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Option&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &quot;XAxisMapping&quot;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &quot;6 7&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: #444444; font-family: Verdana; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Option&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &quot;YAxisMapping&quot;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &quot;4 5&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: #444444; font-family: Verdana; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;EndSection&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;ol start=&quot;3&quot;&gt;&lt;li style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;存檔及重新開機...&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/9172547315652374467/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/9172547315652374467' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/9172547315652374467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/9172547315652374467'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2010/12/ubuntu-1010-thinkpadx40.html' title='Ubuntu 10.10 &amp; ThinkPad(X40) 中鍵捲動'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-8861157799535402551</id><published>2010-11-30T03:44:00.001-08:00</published><updated>2010-11-30T06:54:22.042-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="driver"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Porting lsusb &amp; libusb on Android.</title><content type='html'>&lt;span id=&quot;internal-source-marker_0.7510947574921106&quot; style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;&quot;&gt;目的&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;在Android User Mode 下，透過 libusb 操作 USB Device，如：送出 Control MSG 至 Device。&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;&quot;&gt;參考文件&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;Using Android in Industrial Automation&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;Technical Report&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;A student semester project at the University of Applied Sciences Northwestern Switzerland for the Institute of Automation&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;Authors: Manuel Di Cerbo, and Andreas Rudolf&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;Project principal: Matthias Meier ⃝&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;FHNW/IA, 29.01.2010&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;&quot;&gt;&amp;nbsp;源碼下載&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.8/libusb-1.0.8.tar.bz2/download&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;&quot;&gt;libusb-1.0.8.tar.bz2&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.8/libusb-1.0.8.tar.bz2/download&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;&quot;&gt;檔案放置&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;libusb: &amp;nbsp;/external/libusb-1.0.8/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;lsusb: &amp;nbsp;/external/lsusb/lsusb.c&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;&quot;&gt;編譯及安裝&lt;/span&gt;&lt;br /&gt;
&lt;ol id=&quot;internal-source-marker_0.3046877228113892&quot;&gt;&lt;li style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;新增 libusb-1.0.8/Android.mk&lt;/span&gt;&lt;table style=&quot;border-collapse: collapse; border: medium none;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;ifeq ($(TARGET_ARCH),arm)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;LOCAL_PATH:= $(call my-dir)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;subdirs := $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;libusb \&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;))&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;include $(subdirs)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;endif&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;ol id=&quot;internal-source-marker_0.3046877228113892&quot; start=&quot;2&quot;&gt;&lt;li style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;新增 lsusb/Android.mk&lt;/span&gt;&lt;table style=&quot;border-collapse: collapse; border: medium none;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;LOCAL_PATH := $(call my-dir)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;include $(CLEAR_VARS)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;LOCAL_SRC_FILES := lsusb.c&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;LOCAL_MODULE := lsusb&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;LOCAL_C_INCLUDES += external/libusb-1.0.8/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;LOCAL_SHARED_LIBRARIES := libc libusb&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;include $(BUILD_EXECUTABLE)&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;ol id=&quot;internal-source-marker_0.3506819323806025&quot; start=&quot;3&quot;&gt;&lt;li style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;修改libusb-1.0.8/libusb/io.c&lt;/span&gt;&lt;table style=&quot;border-collapse: collapse; border: medium none;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;#ifndef TIMESPEC_TO_TIMEVAL&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;#define TIMESPEC_TO_TIMEVAL(tv, ts) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;\&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;do { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;\&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(tv)-&amp;gt;tv_sec = (ts)-&amp;gt;tv_sec; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;\&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;(tv)-&amp;gt;tv_usec = (ts)-&amp;gt;tv_nsec / 1000; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;\&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;} while(0)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;#endif /* end of TIMESPEC_TO_TIMEVAL */&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;為了解決&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;E: undefined reference to ‘TIMESPEC_TO_TIMEVAL’ &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;S: defined TIMESPEC_TO_TIMEVAL macro in libusb/io.c&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;ol id=&quot;internal-source-marker_0.3506819323806025&quot; start=&quot;4&quot;&gt;&lt;li style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;在 memory map(&lt;android_worksapce&gt;/build/core/prelink-linux-arm.map 中加入 &lt;/android_worksapce&gt;&lt;/span&gt;&lt;a href=&quot;http://libusb.so/&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;&quot;&gt;libusb.so&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;（會依 platform 不同而有所不同）&lt;/span&gt;&lt;table style=&quot;border-collapse: collapse; border: medium none;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;# extended system libraries&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;libusb.so &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;0xAE600000&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;libril.so &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xAE400000&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;如果沒有定義 memory address，在編譯時會產生底下的錯誤訊息：&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;E: build/tools/apriori/prelinkmap.c(137): library ’libusb.so’ not in prelink map&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;S: build/core/prelink-linux-arm.map&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;ol id=&quot;internal-source-marker_0.3506819323806025&quot; start=&quot;5&quot;&gt;&lt;li style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;在 init.rc 的 on boot 節(session) 中加入 mount usbfs 的命令：&lt;/span&gt;&lt;table style=&quot;border-collapse: collapse; border: medium none;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border: 1px dotted rgb(170, 170, 170); padding: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;# usbfs&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mkdir /proc/bus/usb 0771&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Courier New; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mount usbfs none /proc/bus/usb -o devmode=0666&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;ol id=&quot;internal-source-marker_0.3506819323806025&quot; start=&quot;4&quot;&gt;&lt;/ol&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;重新make &amp;amp; download image 試試看在 shell 底下 lsusb 能不能動囉！&lt;/span&gt;&lt;br /&gt;
&lt;ol id=&quot;internal-source-marker_0.3506819323806025&quot; start=&quot;3&quot;&gt;&lt;/ol&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/8861157799535402551/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/8861157799535402551' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/8861157799535402551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/8861157799535402551'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2010/11/porting-lsusb-libusb-on-android.html' title='Porting lsusb &amp; libusb on Android.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-3467786761061367655</id><published>2010-11-23T22:38:00.000-08:00</published><updated>2010-11-23T22:38:08.549-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="driver"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>Missing USB Generic Mass storage driver on Windows XP</title><content type='html'>今天在公司的電腦上面遇到了這個奇怪的問題，&lt;br /&gt;
明明是該使用系統(windows XP) 預設的隨身碟驅動程式(USB storage driver)，&lt;br /&gt;
卻要求你要重新安裝驅動程式。&lt;br /&gt;
&lt;br /&gt;
經過一番調查原來是少了　&lt;br /&gt;
&lt;br /&gt;
C:\WINDOWS\inf\usbstor.inf&lt;br /&gt;
C:\WINDOWS\inf\usbstor.PNF&lt;br /&gt;
&lt;br /&gt;
從別台電腦上補齊後，看似一切又正常了…&lt;br /&gt;
以上供參考之。&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/3467786761061367655/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/3467786761061367655' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/3467786761061367655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/3467786761061367655'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2010/11/missing-usb-generic-mass-storage-driver.html' title='Missing USB Generic Mass storage driver on Windows XP'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-1305615887147591693</id><published>2010-08-26T20:44:00.001-07:00</published><updated>2010-08-26T20:46:45.801-07:00</updated><title type='text'>H21 HSPA Modem 手動移除應用程式及驅動程式</title><content type='html'>&lt;o:smarttagtype name=&quot;chsdate&quot; namespaceuri=&quot;urn:schemas-microsoft-com:office:smarttags&quot;&gt;&lt;/o:smarttagtype&gt;&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
 {font-family:新細明體;
 panose-1:2 2 3 0 0 0 0 0 0 0;
 mso-font-alt:PMingLiU;
 mso-font-charset:136;
 mso-generic-font-family:roman;
 mso-font-pitch:variable;
 mso-font-signature:3 137232384 22 0 1048577 0;}
@font-face
 {font-family:&quot;\@新細明體&quot;;
 panose-1:2 2 3 0 0 0 0 0 0 0;
 mso-font-charset:136;
 mso-generic-font-family:roman;
 mso-font-pitch:variable;
 mso-font-signature:3 137232384 22 0 1048577 0;}
@font-face
 {font-family:文鼎中黑;
 panose-1:2 11 6 9 1 1 1 1 1 1;
 mso-font-charset:136;
 mso-generic-font-family:modern;
 mso-font-pitch:fixed;
 mso-font-signature:3 680001536 22 0 1048576 0;}
@font-face
 {font-family:&quot;\@文鼎中黑&quot;;
 panose-1:2 11 6 9 1 1 1 1 1 1;
 mso-font-charset:136;
 mso-generic-font-family:modern;
 mso-font-pitch:fixed;
 mso-font-signature:3 680001536 22 0 1048576 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
 {mso-style-parent:&quot;&quot;;
 margin:0cm;
 margin-bottom:.0001pt;
 mso-pagination:none;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;;
 mso-fareast-font-family:新細明體;
 mso-font-kerning:1.0pt;}
 /* Page Definitions */
 @page
 {mso-page-border-surround-header:no;
 mso-page-border-surround-footer:no;}
@page Section1
 {size:612.0pt 792.0pt;
 margin:72.0pt 90.0pt 72.0pt 90.0pt;
 mso-header-margin:36.0pt;
 mso-footer-margin:36.0pt;
 mso-paper-source:0;}
div.Section1
 {page:Section1;}
 /* List Definitions */
 @list l0
 {mso-list-id:831796704;
 mso-list-type:hybrid;
 mso-list-template-ids:1887229174 556834304 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
 {mso-level-text:%1．;
 mso-level-tab-stop:18.0pt;
 mso-level-number-position:left;
 margin-left:18.0pt;
 text-indent:-18.0pt;}
ol
 {margin-bottom:0cm;}
ul
 {margin-bottom:0cm;}
--&gt;
&lt;/style&gt;  &lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 文鼎中黑;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-family: 文鼎中黑;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: 文鼎中黑;&quot;&gt;請先開啟&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;”&lt;/span&gt;&lt;span style=&quot;font-family: 文鼎中黑;&quot;&gt;終端機&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;”&lt;/span&gt;&lt;span style=&quot;font-family: 文鼎中黑;&quot;&gt;，路徑為&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;”&lt;/span&gt;&lt;span style=&quot;font-family: 文鼎中黑;&quot;&gt;應用程式&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;”&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 文鼎中黑;&quot;&gt;/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 18pt; text-indent: -18pt;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 文鼎中黑;&quot;&gt;1．&lt;/span&gt;&lt;span style=&quot;font-family: 文鼎中黑;&quot;&gt;如果安裝&lt;span lang=&quot;EN-US&quot;&gt; &lt;st1:chsdate day=&quot;30&quot; islunardate=&quot;False&quot; isrocdate=&quot;False&quot; month=&quot;12&quot; w:st=&quot;on&quot; year=&quot;1899&quot;&gt;2.2.8&lt;/st1:chsdate&gt;.2 &lt;/span&gt;以後的版本，需刪除&lt;span lang=&quot;EN-US&quot;&gt; H21PnP process&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: medium none;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;   &lt;td style=&quot;border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 418.1pt;&quot; valign=&quot;top&quot; width=&quot;557&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 12pt;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;sudo kill $(ps aux|grep   &#39;H21PnP&#39;|grep -v &#39;grep&#39;|awk &#39;{print $2}&#39;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 18pt; text-indent: -18pt;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 文鼎中黑;&quot;&gt;2．&lt;/span&gt;&lt;span style=&quot;font-family: 文鼎中黑;&quot;&gt;刪除&lt;span lang=&quot;EN-US&quot;&gt; H21 &lt;/span&gt;相關程式，開啟”應用程式”目錄，手動刪除底下這些項目&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;如果有存在&lt;span lang=&quot;EN-US&quot;&gt;)&lt;/span&gt;。&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: medium none;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;   &lt;td style=&quot;border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 418.1pt;&quot; valign=&quot;top&quot; width=&quot;557&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;st1:chsdate day=&quot;30&quot; islunardate=&quot;False&quot; isrocdate=&quot;False&quot; month=&quot;12&quot; w:st=&quot;on&quot; year=&quot;1899&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;2.2.7&lt;/span&gt;&lt;/st1:chsdate&gt;&lt;span lang=&quot;EN-US&quot;&gt;.0 &lt;/span&gt;&lt;span style=&quot;font-family: 文鼎中黑;&quot;&gt;以前的版本&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 12pt;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;QisdaH21Switch.app&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 12pt;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;HSPA modem.app&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 418.1pt;&quot; valign=&quot;top&quot; width=&quot;557&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;st1:chsdate day=&quot;30&quot; islunardate=&quot;False&quot; isrocdate=&quot;False&quot; month=&quot;12&quot; w:st=&quot;on&quot; year=&quot;1899&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;2.2.8&lt;/span&gt;&lt;/st1:chsdate&gt;&lt;span lang=&quot;EN-US&quot;&gt;.2 &lt;/span&gt;&lt;span style=&quot;font-family: 文鼎中黑;&quot;&gt;以後的版本&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 12pt;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;HSPA Modem &lt;/span&gt;&lt;span style=&quot;font-family: 文鼎中黑;&quot;&gt;目錄&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 18pt; text-indent: -18pt;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 文鼎中黑;&quot;&gt;3．&lt;/span&gt;&lt;span style=&quot;font-family: 文鼎中黑;&quot;&gt;刪除驅動程式&lt;span lang=&quot;EN-US&quot;&gt; AnchorUSB.kext &lt;/span&gt;或&lt;span lang=&quot;EN-US&quot;&gt; QisdaSwitch.kext(&lt;/span&gt;如果已存在&lt;span lang=&quot;EN-US&quot;&gt;)&lt;/span&gt;。&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: medium none;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;   &lt;td style=&quot;border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 418.1pt;&quot; valign=&quot;top&quot; width=&quot;557&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;sudo   rm -R /System/Library/Extensions/AnchorUSB.kext/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;sudo   rm -R /System/Library/Extensions/QisdaSwitch.kext/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 18pt; text-indent: -18pt;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 文鼎中黑;&quot;&gt;4．&lt;/span&gt;&lt;span style=&quot;font-family: 文鼎中黑;&quot;&gt;刪除驅動程式&lt;span lang=&quot;EN-US&quot;&gt; QisdaVCP.kext&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: medium none;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;   &lt;td style=&quot;border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 418.1pt;&quot; valign=&quot;top&quot; width=&quot;557&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;sudo   rm -R /System/Library/Extensions/QisdaVCP.kext/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-left: 18pt; text-indent: -18pt;&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 文鼎中黑;&quot;&gt;5．&lt;/span&gt;&lt;span style=&quot;font-family: 文鼎中黑;&quot;&gt;重新開機，再插上&lt;span lang=&quot;EN-US&quot;&gt; H21 &lt;/span&gt;將會出現安裝的&lt;span lang=&quot;EN-US&quot;&gt; HSPA Modem CDROM&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/1305615887147591693/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/1305615887147591693' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/1305615887147591693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/1305615887147591693'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2010/08/h21-hspa-modem.html' title='H21 HSPA Modem 手動移除應用程式及驅動程式'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-4190831050090573229</id><published>2010-06-08T01:53:00.000-07:00</published><updated>2010-06-09T02:24:27.787-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android Reference-RIL -- 初始化/訊息處理 簡略文字流程</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;b&gt;RIL 初始化流程：&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: Arial,Helvetica,sans-serif; text-align: left;&quot;&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: Arial,Helvetica,sans-serif; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGWnL2gYSHxa47tznfMCpjBV04haCO18ygwElaQ-6zokNnSMXUZC5SovIqR4ulishkjOxrQDbmZmbcsF5dQFSHHdqQys9AoxSX8ZsXDMgs6qA61diQkZ0zVYr-OVsPDrZvH8KFzVF9XYc/s640/Document+1.png&quot; width=&quot;528&quot; /&gt;&lt;/div&gt;&lt;ol style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;RILD 起動 RIL OBJ(ril.cpp) 中 RIL_StartLoop，其 New Thread 執行 RIL Event (ril_event.cpp) ::ril_event_loop() 為 for(;;) loop 等待處理 event list 中的訊息(event) &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;RIL daemon(RILD) 載入 Libreferece-ril.so&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;RILD 透過 Dynaminc Loader(DL) dlsym() 取得 Librerfernce-ril.so 中的  RIL_Init function address(*rilInit).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;RILD  呼叫 (*rilInit) 取得 Reference-RIL callback function table[]. &lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; margin-left: 40px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;callback  function table[] -- &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; margin-left: 40px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;.RIL_VERSION, &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;.onRequest(), &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;.currentState(), &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;.onSupport(), &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;.onCancel(), &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;.getVersion(),&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol start=&quot;5&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;RILD 透過 RIL OBJ :: RIL_Register() 將 callback function table[]  儲存在 RIL OBJ. 並且取得 RIL socket-s_fdListen，等待連線。&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&amp;lt;&amp;lt;缺圖說明&amp;gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;RIL 事件處理流程：&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;RIL OBJ :: listenCallback 檢查是否有從 Phone process 的連線。&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;一旦確認為 Phone Process 連線，開取讀取 command，將其 Command Data 及 handle  function (RIL :: processCommandsCallback) 設定至 RIL Event，並交至 Event Loop  處理。&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;RIL Event :: ril_event_loop()  檢查是否有訊息待處理。會觸發 RIL Event :: firePending() ，其中會呼叫 Event Element 中的 handle  function。[該步驟會重覆執行至所有訊息被處理結束。]&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;通 常  handle function 都被設定為 RIL :: processCommandsCallback()，結束 Stream data  後，即呼叫 RIL OBJ :: processCommandBuffer() 。&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;RIL OBJ :: processCommandBuffer() 將依上層的 Request Number 利用 s_command[] table  轉換成相對應之 Request data 。&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;並且呼叫 s_command[]  command 已定義的 dispatchFunction()。&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Arial,Helvetica,sans-serif; margin-left: 40px;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;dispatchFunction() 大致分類為：void,  string, strings, ints, smsWrite, Dail, SIM_IO, CallForward, Raw,  CdmaSMS, CdmaSMSAck, GSMBrSmsCnf, CdmaBrSmsCnf, RilCdmaSMSWrite 這些類別。&lt;/span&gt;&lt;/div&gt;&lt;ol start=&quot;7&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;dispatchFunction 最終都會呼叫 Ref-RIL(Reference-RIL) callback function table[].onRequest() 並且代入  Request Number。&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Ref-RIL :: on Request() 會依  Requset Number 執行相對應之工作。&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/4190831050090573229/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/4190831050090573229' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/4190831050090573229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/4190831050090573229'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2010/06/android-ril.html' title='Android Reference-RIL -- 初始化/訊息處理 簡略文字流程'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGWnL2gYSHxa47tznfMCpjBV04haCO18ygwElaQ-6zokNnSMXUZC5SovIqR4ulishkjOxrQDbmZmbcsF5dQFSHHdqQys9AoxSX8ZsXDMgs6qA61diQkZ0zVYr-OVsPDrZvH8KFzVF9XYc/s72-c/Document+1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-8425225645032170848</id><published>2010-06-06T23:15:00.000-07:00</published><updated>2010-06-06T23:30:11.965-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Android (or Android-x86) 開發環境的設置及工具安裝</title><content type='html'>&lt;div&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&amp;lt;&amp;lt;設定Build code 及環境的文章多不可數，但還是仍然放置在這邊，供自己查詢使用。 &amp;gt;&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;開發環境的設置及工具安裝：&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;系 統設定 -- Using Ubuntu 10.04 or 9.10&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;-- 安裝 JDK5&lt;br /&gt;
# 開啟 APT 設定檔&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;$sudo gedit /etc/apt/sources.list&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
# 加入 server For sun-java5-jdk&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;deb http://ir.archive.ubuntu.com/ubuntu  jaunty-updates main multiverse&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
# 更新及安裝 JDK5&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;$sudo aptitude update&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;$sudo  aptitude install sun-java5-jdk&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
-- 安裝 相關工具&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;$sudo apt-get install  gcc g++&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;$sudo apt-get install flex bison gperf libsdl1.2-dev libesd0-dev  libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev  valgrind libreadline5-dev&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
--  安裝 GIT&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;$sudo apt-get install git-core&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
-- 額外的部份： X11/Xatom.h &amp;amp;  X11/Xlib.h (非必要):&lt;br /&gt;
# provides Xatom.h&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;$sudo  apt-get install x11proto-core-dev&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
# provides Xlib.h&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;$sudo  apt-get install libx11-dev&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;建立 bin 目錄&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;font-family: Courier New; margin-left: 40px;&quot;&gt;$mkdir ~/bin&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;創 建 repo&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;font-family: Courier New; margin-left: 40px;&quot;&gt;$curl http://android.git.kernel.org/repo &amp;gt; ~/bin/repo&lt;/div&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # 變更 repo 為可執行檔&lt;br /&gt;
&lt;div style=&quot;font-family: Courier New; margin-left: 40px;&quot;&gt;$chmod a+w ~/bin/repo&lt;/div&gt;&lt;div style=&quot;font-family: Courier New; margin-left: 40px;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;把  repo 的路徑加至 $PATH&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;# 編輯 ~/ 底下的  .bashrc 檔案，加上底下這行&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;export  PATH=$HOME/bin:$PATH&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;建 立workspace&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;# 新建目錄放置 Android  Source Code. 底下使用 &lt;name&gt; 來代表自訂的名稱。&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;$mkdir  ~/&lt;name&gt;&lt;/name&gt;&lt;/span&gt;&lt;br style=&quot;font-family: Courier New;&quot; /&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;$cd ~/&lt;name&gt;&lt;/name&gt;&lt;/span&gt;&lt;/name&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;從 官方 server 的 GIT source tree 下載 Source Code&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;# 初始化要下載的文件清單&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;$repo  init -u git://android.git.kernel.org/platform/manifest.git&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
# 同步資料庫(下載 Source Code)&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;$repo sync&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;在 有 HTTP Proxy 設定的情況下，我們需要透過 SSH ， 把 git port 轉至 http port，所以需要透過  connect.c 程式，相關的設定如下：&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div style=&quot;margin-left: 40px;&quot;&gt;下載  connect.c,&lt;span class=&quot;search_hit&quot;&gt;&lt;span style=&quot;font-family: trebuchet ms;&quot;&gt; &lt;a href=&quot;http://www.blogger.com/goog_1159191865&quot;&gt;http&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.blogger.com/%20http://www.meadowy.org/%7Egotoh/ssh/connect.c&quot;&gt;&lt;span style=&quot;font-family: trebuchet ms;&quot;&gt;://www.meadowy.org/~gotoh/&lt;/span&gt;&lt;span class=&quot;search_hit&quot;&gt;&lt;span style=&quot;font-family: trebuchet ms;&quot;&gt;ssh&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: trebuchet ms;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;search_hit&quot;&gt;&lt;span style=&quot;font-family: trebuchet ms;&quot;&gt;connect&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: trebuchet ms;&quot;&gt;.&lt;/span&gt;c&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New;&quot;&gt;&lt;span class=&quot;search_hit&quot;&gt;&lt;span style=&quot;font-family: trebuchet ms;&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: trebuchet ms;&quot;&gt;&lt;span class=&quot;search_hit&quot;&gt;&lt;proxy ip=&quot;&quot; name=&quot;&quot; or=&quot;&quot;&gt; &lt;span class=&quot;search_hit&quot;&gt;&lt;span class=&quot;search_hit&quot;&gt;請個別使用相關的設定值。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;proxy port=&quot;&quot;&gt; &lt;span class=&quot;search_hit&quot;&gt;請個別使用相關的設定值。&lt;/span&gt;&lt;span class=&quot;search_hit&quot;&gt;&lt;user home=&quot;&quot;&gt;&lt;/user&gt;&lt;/span&gt; 可使用 cd ~; pwd 查詢。&lt;/proxy&gt;&lt;/proxy&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
編 譯 connect 執行檔，並且放置在 ~/bin/ 目錄下。&lt;/span&gt;$gcc connect.c -o connect&lt;br /&gt;
$cp  connect ~/bin/.&lt;br /&gt;
$chmod a+x ~/bin/connect&lt;br /&gt;
&lt;br /&gt;
新增&lt;span style=&quot;font-family: trebuchet ms;&quot;&gt; proxy-cmd.sh, socks-gw.sh, sock-gw.sh 於 ~/bin/ 。&lt;/span&gt;&lt;br /&gt;
$cd  ~/bin&lt;br /&gt;
$touch proxy-cmd.sh&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New;&quot;&gt;&lt;span class=&quot;search_hit&quot;&gt;$chmod a+x proxy-cmd.sh&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
$touch  socks-gw.sh&lt;br /&gt;
&lt;span class=&quot;search_hit&quot;&gt;&lt;span style=&quot;font-family: Courier New;&quot;&gt;&lt;span class=&quot;search_hit&quot;&gt;$chmod a+x socks-gw.sh&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
$touch  socks-ssh.sh&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New;&quot;&gt;&lt;span class=&quot;search_hit&quot;&gt;$&lt;span class=&quot;search_hit&quot;&gt;&lt;span style=&quot;font-family: Courier New;&quot;&gt;&lt;span class=&quot;search_hit&quot;&gt;chmod a+x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; socks-gw.sh&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: trebuchet ms;&quot;&gt;編輯 ~/bin/proxy-cmd.sh 內容：&lt;/span&gt;&lt;br style=&quot;font-family: Tahoma;&quot; /&gt;(echo &quot;CONNECT $1:$2 HTTP/1.0&quot;; echo; cat )  | socket &lt;proxy ip=&quot;&quot; name=&quot;&quot; or=&quot;&quot;&gt; &lt;proxy port=&quot;&quot;&gt; | (read a; read a;  cat )&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: trebuchet ms;&quot;&gt;&lt;span class=&quot;search_hit&quot;&gt;編輯  ~/bin/socks-gw.sh 內容：&lt;/span&gt;&lt;/span&gt;#!/bin/sh&lt;br /&gt;
# ~/bin/socks-gw.sh&lt;br /&gt;
#  This script connects to a HTTP proxy using connect.c&lt;br /&gt;
connect -H  &lt;proxy ip=&quot;&quot; name=&quot;&quot; or=&quot;&quot;&gt;:&lt;proxy port=&quot;&quot;&gt; $@&lt;br /&gt;
&lt;br style=&quot;font-family: Trebuchet MS;&quot; /&gt;&lt;span class=&quot;search_hit&quot;&gt;&lt;span style=&quot;font-family: trebuchet ms;&quot;&gt;&lt;span class=&quot;search_hit&quot;&gt;編輯 ~/bin/socks-ssh.sh 內容：&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;#!/bin/sh&lt;br /&gt;
#  ~/bin/socks-ssh.sh&lt;br /&gt;
ssh -o ProxyCommand=&quot;&lt;user home=&quot;&quot;&gt;/bin/socks-gw.sh %h %p&quot; $@&lt;/user&gt;&lt;/proxy&gt;&lt;/proxy&gt;&lt;/proxy&gt;&lt;/proxy&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
新增 proxy.sh 於 ~/  。&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;$cd ~&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;$touch proxy.sh&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;$chmod a+x  proxy.sh&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
編輯 proxy.sh 內容：&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;# ~/proxy.sh&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;# http proxy setting&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;export  HTTP_PROXY=http://&lt;proxy ip=&quot;&quot; name=&quot;&quot; or=&quot;&quot;&gt;:&lt;proxy port=&quot;&quot;&gt;&lt;/proxy&gt;&lt;/proxy&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;export  http_proxy=$HTTP_PROXY&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;# set git to  use ssh over http proxy&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;export GIT_SSH=&quot;&lt;user home=&quot;&quot;&gt;/bin/socks-ssh.sh&quot;&lt;/user&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;export  GIT_PROXY_COMMAND=&quot;&lt;user home=&quot;&quot;&gt;/bin/socks-gw.sh&quot;&lt;/user&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
在 執行 repo sync 前，請先在workspace folder 中執行：&lt;br /&gt;
&lt;span style=&quot;font-family: courier new;&quot;&gt;$source  ~/proxy.sh&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
參考網頁：&lt;a href=&quot;http://mmmyddd.freeshell.net/wiki/android/build.html#sec4&quot; id=&quot;s_ed&quot; title=&quot;http://mmmyddd.freeshell.net/wiki/android/build.html#sec4&quot;&gt;http://mmmyddd.freeshell.net/wiki/android/build.html#sec4&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/8425225645032170848/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/8425225645032170848' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/8425225645032170848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/8425225645032170848'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2010/06/android-or-androidx86.html' title='Android (or Android-x86) 開發環境的設置及工具安裝'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-2915713793731001929</id><published>2009-11-05T19:47:00.000-08:00</published><updated>2009-11-06T20:07:19.722-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Mac"/><title type='text'>BOOTCAMP, EFI, MBR 一系列有趣的文章</title><content type='html'>&lt;div style=&quot;color: black; font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;最近因為有人在討論 W32 如何完全安裝在Macbook上面，於是上網找到&lt;span style=&quot;font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: 0pt; line-height: 18px; opacity: 1; text-decoration: none; text-transform: none;&quot;&gt; &lt;/span&gt;&lt;a href=&quot;http://www.roughlydrafted.com/RD/About.DanielEran.html&quot; style=&quot;font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: 0pt; line-height: 18px; opacity: 1; text-transform: none;&quot; title=&quot;../About.DanielEran.html&quot;&gt;Daniel Eran&lt;/a&gt;&lt;span style=&quot;font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: 0pt; line-height: 18px; opacity: 1; text-decoration: none; text-transform: none;&quot;&gt; &lt;/span&gt;幾篇文章在探討MAC與PC 間開機程序上面的不同之處。&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;color: black; font-family: Arial,Helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;如果有興趣的先將就看一下原文吧！ &lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Imaging MacBooks: Understanding MBR, APM, &amp;amp; GPT&lt;br /&gt;
&lt;a href=&quot;http://www.roughlydrafted.com/RD/Home/0E960A5B-E16E-40A6-B4FD-E4C28F77A366.html&quot;&gt;http://www.roughlydrafted.com/RD/Home/0E960A5B-E16E-40A6-B4FD-E4C28F77A366.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
How Boot Camp Works&lt;br /&gt;
&lt;a href=&quot;http://www.roughlydrafted.com/RD/Home/53E19DBD-BB3D-417C-A3C1-1F6172F5ECC8.html&quot;&gt;http://www.roughlydrafted.com/RD/Home/53E19DBD-BB3D-417C-A3C1-1F6172F5ECC8.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
How Apple’s Firmware Leapfrogs BIOS PCs&lt;br /&gt;
&lt;a href=&quot;http://www.roughlydrafted.com/RD/Home/7CC25766-EF64-4D85-AD37-BCC39FBD2A4F.html&quot;&gt;http://www.roughlydrafted.com/RD/Home/7CC25766-EF64-4D85-AD37-BCC39FBD2A4F.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
An Introduction to Boot Camp&lt;br /&gt;
&lt;a href=&quot;http://www.roughlydrafted.com/RD/Home/E9EC61A2-E110-42C0-8C48-CD7D62197D32.html&quot;&gt;http://www.roughlydrafted.com/RD/Home/E9EC61A2-E110-42C0-8C48-CD7D62197D32.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
WIKI -- Extensible Firmware Interface &lt;br /&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/Extensible_Firmware_Interface&quot;&gt;http://en.wikipedia.org/wiki/Extensible_Firmware_Interface&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/2915713793731001929/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/2915713793731001929' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/2915713793731001929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/2915713793731001929'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2009/11/bootcamp-efi-mbr.html' title='BOOTCAMP, EFI, MBR 一系列有趣的文章'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-243380780084876913</id><published>2009-10-19T23:18:00.000-07:00</published><updated>2009-10-27T19:54:13.904-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="XCode"/><title type='text'>如何替專案新增一個 Target/Product</title><content type='html'>繼上篇 rename project 後，衍生出這個主題，如何在現有的專案中再新增一個 target 及 product.&lt;br /&gt;
為了在專案開發中，不同客戶需要有不同的 Application Name, Version, Resource 等需求。&lt;br /&gt;
不想再分出額外的 Code Base 又想符合客戶需求，我決定採用這方式來實作。&lt;br /&gt;
&lt;br /&gt;
或許，使用 compile option 是最常看到的方式。但小弟我實在太懶惰了，就用這種空間換取時間方式達成…&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;開啟 專案，在 Targets 的目錄中 Duplicate 原有的 target. (會產生 target-name copy 的項目)&lt;/li&gt;
&lt;li&gt;在此 target-name copy 的項目上進入  Get Info 選單。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;在 info window 中選取 &quot;Build&quot; page， 其中有個項目名稱為 Product Name，將它改成想要的名稱。&lt;/li&gt;
&lt;li&gt;同時也修改 info.plist File 的名稱 (target-name copy).plist 置換為 (new-app name).plist&lt;/li&gt;
&lt;li&gt;在 info window 中選取 &quot;General page， 將 Name: 改成想要的名稱 (new-app name)。&lt;/li&gt;
&lt;li&gt;回到 Xcode 主視窗中 尋找 (target-name copy).plist 將名稱改為  (new-app name).plist&lt;/li&gt;
&lt;li&gt;開啟  (new-app name).plist&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;xml&quot; name=&quot;code&quot;&gt;&lt;plist version=&quot;1.0&quot;&gt;
&lt;dict&gt;
 &lt;key&gt;CFBundleDevelopmentRegion&lt;/key&gt;
 &lt;string&gt;English&lt;/string&gt;
 &lt;key&gt;CFBundleExecutable&lt;/key&gt;
 &lt;string&gt;new-app name&lt;/string&gt;
 &lt;key&gt;CFBundleHelpBookFolder&lt;/key&gt;
 &lt;string&gt;new-app name Help Folder&lt;/string&gt;
 &lt;key&gt;CFBundleHelpBookName&lt;/key&gt;
 &lt;string&gt;new-app name Help&lt;/string&gt;
 &lt;key&gt;CFBundleIconFile&lt;/key&gt;
 &lt;string&gt;&lt;/string&gt;
 &lt;key&gt;CFBundleIdentifier&lt;/key&gt;
 &lt;string&gt;com.my.Appkit.new-app.name&lt;/string&gt;
 &lt;key&gt;CFBundleInfoDictionaryVersion&lt;/key&gt;
 &lt;string&gt;6.0&lt;/string&gt;
 &lt;key&gt;CFBundleName&lt;/key&gt;
 &lt;string&gt;new-app name&lt;/string&gt;
 &lt;key&gt;CFBundlePackageType&lt;/key&gt;
 &lt;string&gt;APPL&lt;/string&gt;
 &lt;key&gt;CFBundleSignature&lt;/key&gt;
 &lt;string&gt;????&lt;/string&gt;
 &lt;key&gt;CFBundleVersion&lt;/key&gt;
 &lt;string&gt;2.2.13.1&lt;/string&gt;
 &lt;key&gt;NSMainNibFile&lt;/key&gt;
 &lt;string&gt;MainMenu&lt;/string&gt;
 &lt;key&gt;NSPrincipalClass&lt;/key&gt;
 &lt;string&gt;NSApplication&lt;/string&gt;
&lt;/dict&gt;
&lt;/plist&gt;
&lt;/pre&gt;修改 CFBundleExecutable, CFBundleHelpBookFolder, CFBundleHelpBookName  , CFBundleIdentifier, CFBundleName &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt; 複製一份 .plist 名字訂為 (new-app name).plist&lt;/li&gt;
&lt;li&gt; 複製一份 help folder 及 readme 名字訂為 new-app name Help Folder 及 new-app name Help&lt;/li&gt;
&lt;/ol&gt;這樣設定完後，在左上 Target 的選項中就會出現 &quot;new-app name&quot;, 選擇它然後 Re-Build 我們就可以在build folder 中找到新的應用程式了。&lt;br /&gt;
&lt;br /&gt;
有發生任何奇怪的問題，歡迎來討論看看。&lt;br /&gt;
謝謝。&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/243380780084876913/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/243380780084876913' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/243380780084876913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/243380780084876913'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2009/10/targetproduct.html' title='如何替專案新增一個 Target/Product'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-2759283571770566521</id><published>2009-07-15T00:04:00.000-07:00</published><updated>2009-07-17T02:17:09.297-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cocoa"/><category scheme="http://www.blogger.com/atom/ns#" term="XCode"/><title type='text'>如何替 XCode project(專案）改名</title><content type='html'>出處：&lt;a href=&quot;http://aplus.rs/cocoa/how-to-rename-project-in-xcode-3x/&quot;&gt;http://aplus.rs/cocoa/how-to-rename-project-in-xcode-3x/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;因為抓了 AnchorUSB sample 來改成自己要的 Driver, 之後想要換成另一個有義意的名字，&lt;br /&gt;上網找了這一篇，幫他做點中文化，讓不愛看英文的人，能快速地就知道怎麼變更專案名稱。&lt;br /&gt;底下都是些手動操作的步驟，&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;先做個備份的動作&lt;/li&gt;&lt;li&gt;進到欲修改的目錄，把 .pch 及 .xcodeproj (Xcode2 應該是只有後面這個)&lt;/li&gt;&lt;li&gt;刪除 build 目錄&lt;br /&gt;&lt;/li&gt;&lt;li&gt; .xcodeproj 其實它是個封裝檔，進到封裝檔中，修改 .pbxproj (它是個XML檔案內容)&lt;/li&gt;&lt;li&gt;在.pbxproj 中把所有的舊名稱更換為新的名稱，並別忘了存檔。&lt;/li&gt;&lt;li&gt;修改 .plist 的檔名為新的名稱。&lt;br /&gt;&lt;/li&gt;&lt;li&gt;再使用Xcode 開啟專案，應該可以看到product 目前中紅色字樣的檔案。&lt;/li&gt;&lt;li&gt;試試 clean all/build是否可成功build出APP.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;目前，自己在換名稱的過程中，有必須再修改修改 .plist 檔案中 CFBundleExecutable 相對應的新名稱，之後才能順利執行應用程式。&lt;/li&gt;&lt;/ul&gt;如果 有遇到 Rename 不順利的情況，再把錯誤訊息 貼上來。&lt;br /&gt;我們再來研究看看怎麼解決吧！Enjoy it~~&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/2759283571770566521/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/2759283571770566521' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/2759283571770566521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/2759283571770566521'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2009/07/xcode-project.html' title='如何替 XCode project(專案）改名'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-8250564420097642333</id><published>2009-07-14T23:52:00.000-07:00</published><updated>2010-01-09T03:48:09.497-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Coding"/><category scheme="http://www.blogger.com/atom/ns#" term="VIM"/><title type='text'>VIM search &amp; replace tips 好用技巧(ctrl+r)</title><content type='html'>文章出處：&lt;a href=&quot;http://drakeguan.org/content/vim-%E7%9A%84-replace-by-search&quot;&gt;http://drakeguan.org/content/vim-%E7%9A%84-replace-by-search&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
用了 VIM 也一段時間了，原來 search(搜尋) &amp;amp; replace(取代) 功能是這麼地方便使用。&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;使用 /&amp;lt;放上你的正則運算式&amp;gt; 此時應該可以在內文上反白已搜尋之目標。&lt;/li&gt;
&lt;li&gt; 打上 : 進入 command mode 輸入 s/&quot; 然後按下 ctrl+r ，&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;按下 / 此時剛剛的搜尋(正則運算式)就自動地被貼上來。&lt;/li&gt;
&lt;li&gt;再來就是取代字串囉！&lt;/li&gt;
&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;%s/&amp;lt;&lt;express1&gt;&amp;gt;/&amp;lt;&lt;express2&gt;&amp;gt;/gc 可以搜尋整隻檔案，並在取代的過程會提示你是否要取代。&lt;/express2&gt;&lt;/express1&gt;&lt;/li&gt;
&lt;/ul&gt;大家一起來用 VIM 吧！&lt;br /&gt;
&lt;br /&gt;
多補充個搜尋的小技巧吧！怎麼樣弄出像UltraEdit 一樣的搜尋結果清單呢？&lt;br /&gt;
很簡單 ~~&lt;br /&gt;
&lt;br /&gt;
%g/&amp;lt;pattern&amp;gt;/z#=&amp;lt;num&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pattern&amp;gt; 為搜尋的字串。&lt;br /&gt;
&amp;lt;num&amp;gt; 為該行上下個&amp;lt;num&amp;gt;的顯示。&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/8250564420097642333/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/8250564420097642333' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/8250564420097642333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/8250564420097642333'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2009/07/vim-search-replace-tips-ctrlr.html' title='VIM search &amp; replace tips 好用技巧(ctrl+r)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-2762142360087991552</id><published>2009-07-01T19:04:00.000-07:00</published><updated>2009-10-19T23:48:37.299-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cocoa"/><category scheme="http://www.blogger.com/atom/ns#" term="XCode"/><title type='text'>使用 Cocoa 建構 Hello World!!</title><content type='html'>在此分享如何使用 Xcode3 建構一個Cocoa Application.&lt;br /&gt;
例子當然是世界名著 Hello world. 如果底下說明有不正確的地方，還請麻煩告知。&lt;br /&gt;
&lt;br /&gt;
當然 XCode3 要先裝好…然後打開它點選一下New Project吧！&lt;br /&gt;
&lt;br /&gt;
1. 我們這次要建構一個Cocoa Application，如下圖，&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ6JDL96jzutRyt_AhTfy0X-f3PG8lo_JCcgBL2HJlAl1vCO8ephgXYFmm3OEdGaQWWFiQfeC_R7DY7SNapJAuzL7zmra-1eC9iaH1u4OkFNR86OWUlABxoR9lXHyH6XBBjWRmabF1mM4/s1600-h/Picture+1.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ6JDL96jzutRyt_AhTfy0X-f3PG8lo_JCcgBL2HJlAl1vCO8ephgXYFmm3OEdGaQWWFiQfeC_R7DY7SNapJAuzL7zmra-1eC9iaH1u4OkFNR86OWUlABxoR9lXHyH6XBBjWRmabF1mM4/s400/Picture+1.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
選取之後我們就命名它為Hello World, 及我們所要擺放資料夾的位置。&lt;br /&gt;
(這個步驟就自行發揮)&lt;br /&gt;
&lt;br /&gt;
2. 接著我們可以見到XCode 的主畫面如下，&lt;br /&gt;
紅色字體的部份就是我們以後的Hello World application.&lt;br /&gt;
如果有成功的build project 就可以見到它會轉變為黑色的字體。&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfSfgwH93UB4hxW3aLIGpAHpVOdOaZOM1uHRgj1EI0iT4dLMW-jyQecYaVZt4XE281jgFQ5ASKgPaaDmwkJtCJZu0k2LDfqk6ui-9ZeNDXv4SYIOIQ9xAJ2oWxeHSDQVoT5WyKcH1_QV0/s1600-h/Picture+2.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfSfgwH93UB4hxW3aLIGpAHpVOdOaZOM1uHRgj1EI0iT4dLMW-jyQecYaVZt4XE281jgFQ5ASKgPaaDmwkJtCJZu0k2LDfqk6ui-9ZeNDXv4SYIOIQ9xAJ2oWxeHSDQVoT5WyKcH1_QV0/s400/Picture+2.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
3. 我們先必需在這個Application中新增一個自己的Subclass,&lt;br /&gt;
在Class 資料夾上面按右鍵，選取Add -&gt; New File.&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj904RDsEIMM4jksVsNA6CDDWrgIAfbMzevgNS9BYaPykNxO9Ur429KKNgthluM1S6Xu5FnHeK924mBmrktmT4hjpvaDhO-yCf6ZCf7mzmuh4u0SasMudRlWtMJt7uepFe8Ljn05M342TM/s1600-h/Picture+3.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj904RDsEIMM4jksVsNA6CDDWrgIAfbMzevgNS9BYaPykNxO9Ur429KKNgthluM1S6Xu5FnHeK924mBmrktmT4hjpvaDhO-yCf6ZCf7mzmuh4u0SasMudRlWtMJt7uepFe8Ljn05M342TM/s400/Picture+3.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
4. XCode 會要求我們選擇所需要的種類的檔案，我們這次選取 Objective-C Class&lt;br /&gt;
因為小弟一直都習慣使用C, Objective-C 對我而言是個比較快可以入門的方式。&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_OftAddHv42SIwqvIbW9B2788Np8aqsLqnRmwyW4nXq-or_gERYK2Ww5OsyZj12fs0alPlSGiaZzuEqjUiveuNnCZOXc8JrbDDYaGj63tZiMh1TCAFv2C9yKXZPaJOBAlewXFi3ZQg6w/s1600-h/Picture+4.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_OftAddHv42SIwqvIbW9B2788Np8aqsLqnRmwyW4nXq-or_gERYK2Ww5OsyZj12fs0alPlSGiaZzuEqjUiveuNnCZOXc8JrbDDYaGj63tZiMh1TCAFv2C9yKXZPaJOBAlewXFi3ZQg6w/s400/Picture+4.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;div style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;http://picasa.google.com/blogger/&quot; target=&quot;ext&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
5. 接著我們必需命名我們的檔名，通常檔名即我們Class 的名字，&lt;br /&gt;
在這邊我們給它為&quot;appCntrl&quot;, 即為 Application Controller&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJCxO-FVghyphenhyphentB5hwTOlXWHrEEzEPZ9sVlPTYVvVJeJ2EX2Irbz3xKlAoYGGL-VGCHejSgtwiUwpiFpQVYc0uksAYvNgPwciroii293R56SdOhodgO5kKjp5o99xhviOondImFHz8D7wAA/s1600-h/Picture+5.jpg&quot;&gt;&lt;img style=&quot;width: 399px; height: 459px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJCxO-FVghyphenhyphentB5hwTOlXWHrEEzEPZ9sVlPTYVvVJeJ2EX2Irbz3xKlAoYGGL-VGCHejSgtwiUwpiFpQVYc0uksAYvNgPwciroii293R56SdOhodgO5kKjp5o99xhviOondImFHz8D7wAA/s400/Picture+5.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
6. XCode 的部份先告一段落，我們從XCode 中選取 MainMenu.xib(或 MainMenu.nib)&lt;br /&gt;
其實是指同樣的東西，以後有機會再來討論中間的差異。&lt;br /&gt;
雙擊 xib 後，會帶出Interface Builder，這是決定 Application Layout的工具，&lt;br /&gt;
其中可以看到如下圖的視窗，然後我們必需從Library 中拉NSObject至這個window中，&lt;br /&gt;
它會生成一個&quot;Object&quot;的圖示。&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW7GHo6kcq414JtNbd0bSv_7QcxdcN1bqpEx5EVPUlsr9X5AnJqn7iJsi-TOl8WFDJ8yt-ElXTRatg9x-yW-UjpU5gnT1K6OMJJtDIu5OdiGkHVdaEMwLyqmEK2vkd9vCnWbXBYY-c7LU/s1600-h/Picture+6.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW7GHo6kcq414JtNbd0bSv_7QcxdcN1bqpEx5EVPUlsr9X5AnJqn7iJsi-TOl8WFDJ8yt-ElXTRatg9x-yW-UjpU5gnT1K6OMJJtDIu5OdiGkHVdaEMwLyqmEK2vkd9vCnWbXBYY-c7LU/s400/Picture+6.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
6. 再來要對這個&quot;Object&quot;做些設定的動作，先選取 &quot;Object&quot;圖示，然後到Inspector window中，&lt;br /&gt;
點選 i 這頁後，在上方Class 的部份，我們打入我們的&quot;appCntrl&quot;。&lt;br /&gt;
(如果找不到，可以試著做看看從File底下Read Class files的動作後，再來找看看)&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbX9SdRBst74o94uUuTFzp9ALu32Kg38F3GqeRLBnAyljHEqHdBvG52UxDMOCjQPMyXxaGGxZHkrT7M0kZM6Ka2dCiGOT02tKPGG64Y2Hfx6Evw3hTLokEfvFQ1Zg3Ix1RQWkdvojGpsA/s1600-h/Picture+7.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbX9SdRBst74o94uUuTFzp9ALu32Kg38F3GqeRLBnAyljHEqHdBvG52UxDMOCjQPMyXxaGGxZHkrT7M0kZM6Ka2dCiGOT02tKPGG64Y2Hfx6Evw3hTLokEfvFQ1Zg3Ix1RQWkdvojGpsA/s400/Picture+7.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
6. 接著這個部份就自行發揮，在Window 上面加上Label &amp;amp; Button，如下圖，&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtJ2FW6w2tJ95jCdYcF31PTP_fYnt_bx0D9UK3o8-TekmzQCy6UeTjilF-sNaBtafJ0OTg2jL8wR6xmqFKi3PQ4dVNRYGgBRRdMRI2Tiz2eOyU2wny_CPDICD6K8QPfCZW7wpafvXeV80/s1600-h/Picture+8.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtJ2FW6w2tJ95jCdYcF31PTP_fYnt_bx0D9UK3o8-TekmzQCy6UeTjilF-sNaBtafJ0OTg2jL8wR6xmqFKi3PQ4dVNRYGgBRRdMRI2Tiz2eOyU2wny_CPDICD6K8QPfCZW7wpafvXeV80/s400/Picture+8.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
7. 有了可收事件 跟顯示資訊的元件後，我們回到inspector, 先點我們新加的Objec, 再至 i 這個頁面，&lt;br /&gt;
我們在Outlet &amp;amp; Action 這兩個部份各加入ID，名稱的部份是可以變更的。(這部份我並沒有修改)&lt;br /&gt;
在最底下Name 的欄位填入&quot;appCntrl&quot; 這樣可以識別至XCode中的appCntrl Class.&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCQWZ_vQVsQqiI8oUG_Nf_cqtj2F6IDFt3DUQ0ojF3kNQ3_fBEOZB_Bh_5foqXVgOs-tEwSNd5e3xCMX0GI_xRU_lC697wW1e60FoqIitupBBKobaEDbx_zb74Hfu66fdWXbkfUymW9cI/s1600-h/Picture+11.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCQWZ_vQVsQqiI8oUG_Nf_cqtj2F6IDFt3DUQ0ojF3kNQ3_fBEOZB_Bh_5foqXVgOs-tEwSNd5e3xCMX0GI_xRU_lC697wW1e60FoqIitupBBKobaEDbx_zb74Hfu66fdWXbkfUymW9cI/s400/Picture+11.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;div style=&quot;clear: both;&quot;&gt;做完上面的設定後，至File 底下執行 Write class file 的動作，&lt;br /&gt;
它可能會問是是要replace 還是merge 這個就見人見智了。&lt;br /&gt;
&lt;br /&gt;
/// 小說明一下，這個動作會將剛新增的 Oulet/Action 加到 appCntrl.h &amp;amp; .m 檔案中。&lt;br /&gt;
/// 你可以換成在Xcode 中自己手動新增，然後在Interface Builder 中從read class file的動作中讀進來。&lt;br /&gt;
&lt;br /&gt;
8. 在Window 上面我們配置了 Label &amp;amp; Button 兩個元件後，&lt;br /&gt;
我們必需把它們跟自己新增 appCntrl Class 中的 Outlet 及 Action 做個連接。&lt;br /&gt;
&lt;br /&gt;
/// 如果你把Outlet 想像成 output, Action 想像成 input，就可以理解成，&lt;br /&gt;
/// 我們會從 Button 收下mouse click  的事件，然後傳到 appCntrl Object，&lt;br /&gt;
/// 經過我們的處理後，再把資訊呈現至 Outlet 上面。&lt;br /&gt;
/// (使用 appCntrl Object的原因，是Object 為實體，Class 只是個宣告類別)&lt;br /&gt;
&lt;br /&gt;
/// 那連接的動作如何完成，如果是A要丟東西給B ，就選取A 按下Control 鍵拉至B 上面。&lt;br /&gt;
/// 如下面的動作，選取 Button 按下 Control 拉至 appCntrl ，&lt;br /&gt;
/// IB(interface builder)會跳出視窗要求選取處理事件的 &quot;Method&quot; (也可看成Funtion啦)&lt;br /&gt;
/// 當然我們就選取自己新增的 myAction1 來處理這個事件。&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhqAP-RA3grTXgwwRrpA8p7xSGw7tQzMgCV2YPR1k42plyysDaGGgZWcS3fB2l6nDCX3qAAncUYz6TEORdUibnFJrZ0O6q1M2nAQ8R_C_pR5NktPK6CldAYrWngoPrmv4VG44_9pM2TzA/s1600-h/Picture+9.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhqAP-RA3grTXgwwRrpA8p7xSGw7tQzMgCV2YPR1k42plyysDaGGgZWcS3fB2l6nDCX3qAAncUYz6TEORdUibnFJrZ0O6q1M2nAQ8R_C_pR5NktPK6CldAYrWngoPrmv4VG44_9pM2TzA/s400/Picture+9.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
同樣的方式 我們拉appCntrl 至Label 上面，把它指定為 myOutlet1.&lt;br /&gt;
&lt;br /&gt;
9. 在inspector window 上面 我們可以看到完成的結果。&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisTVXsYckYQCY9t_zi7-fxrRdtsv-0J3Apm_TMPgo4BA16kq40yCn9CAhiMMyIUJJc7RUf060ACiYWUSfRM5PhQNk9jG6AvZu8XJw5vNdm76gXkNWzaxODLQ1JL-odjFaOBPoRQ012XuU/s1600-h/Picture+10.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisTVXsYckYQCY9t_zi7-fxrRdtsv-0J3Apm_TMPgo4BA16kq40yCn9CAhiMMyIUJJc7RUf060ACiYWUSfRM5PhQNk9jG6AvZu8XJw5vNdm76gXkNWzaxODLQ1JL-odjFaOBPoRQ012XuU/s400/Picture+10.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
10. 在IB 存檔完，它的工作就先告一段落了，接下來要自己動手打點程式了。&lt;br /&gt;
(終於有程式了...)&lt;br /&gt;
&lt;br /&gt;
先來看看appCntrl.h 的內容，&lt;br /&gt;
&lt;pre class=&quot;Cpp&quot; name=&quot;code&quot;&gt;#import &amp;lt;Cocoa/Cocoa.h&amp;gt;
@interface appCntl : NSObject {
    IBOutlet id myOutlet1;
}
- (IBAction)myAction1:(id)sender;
@end
&lt;/pre&gt;/// 這個部份，就是剛我們在IB做完那些動作，按下 Write class file就會幫我們加進來的。&lt;br /&gt;
/// 如果一開始在這邊自己動手加程式，也可以反過來在 IB 用 read class file 放進 IB.&lt;br /&gt;
/// 小弟比較懶惰~~所以我選擇打字比較少的動作。&lt;br /&gt;
&lt;br /&gt;
/// 不是說要打些程式碼嗎？怎麼上面不需要…嘿嘿…&lt;br /&gt;
/// 接下來在 appCntrl.m  中我們就就要輸入底下這些東西…&lt;br /&gt;
找到myAction1: (id)sender { } 這個段落中，加入你所沒有那段程式。&lt;br /&gt;
&lt;pre class=&quot;Cpp&quot; name=&quot;code&quot;&gt;#import &quot;appCntl.h&quot;
@implementation appCntl
- (IBAction)myAction1:(id)sender {
    static Boolean shownHello = FALSE;
    
    if (FALSE == shownHello) {
        [myOutlet1 setStringValue:@&quot;Hello world!&quot;];
        shownHello = TRUE;
    }
    else {
        [myOutlet1 setStringValue:@&quot;&quot;];
        shownHello = FALSE;
    }
}
@end
&lt;/pre&gt;/// 這邊先不解釋這些 有點像C 又不太像C  的 Objective-C 的語法。&lt;br /&gt;
/// 小弟只想先快速地建構起一個hello world 示範程式。&lt;br /&gt;
&lt;br /&gt;
打完程式後，我們按下 Build &amp;amp; Go 就等著程式跳出來囉！&lt;br /&gt;
(如果沒有Compiler error 的話，真的不幸跑出來的話，再把msg 貼上來，再來看看怎麼解)&lt;br /&gt;
&lt;br /&gt;
首先是這樣的畫面，&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwZi6qzK93niBpZOyQaLVb5waaeLWG-ldJptBQdYmkVAyWo88LUyPZINvAxAqp9IA6iysWSlBLDRFPaidilEinF6bk9cdaooSISmYYIWLMgWV6Cbu1QpVzUVtDn07vkME0t34DlJdJEgk/s1600-h/Picture+14.jpg&quot;&gt;&lt;img style=&quot;width: 395px; height: 191px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwZi6qzK93niBpZOyQaLVb5waaeLWG-ldJptBQdYmkVAyWo88LUyPZINvAxAqp9IA6iysWSlBLDRFPaidilEinF6bk9cdaooSISmYYIWLMgWV6Cbu1QpVzUVtDn07vkME0t34DlJdJEgk/s400/Picture+14.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
然後按下Button 後，&quot;Hello World!!&quot;就會顯示&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx-oclXx5GRj1j3ma8i0Bx9T1CZAsMmCAMUVvim1eC-umAKCJSjark3EOFCSvGOIcaaFzv0lMN-w00XkAkdwYjp7qyrmWY3nuQd9aYM50uHyYQEaz2XY_5DhO2wH8WBfanqHU5ub9CRnE/s1600-h/Picture+15.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx-oclXx5GRj1j3ma8i0Bx9T1CZAsMmCAMUVvim1eC-umAKCJSjark3EOFCSvGOIcaaFzv0lMN-w00XkAkdwYjp7qyrmWY3nuQd9aYM50uHyYQEaz2XY_5DhO2wH8WBfanqHU5ub9CRnE/s400/Picture+15.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;div style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;http://picasa.google.com/blogger/&quot; target=&quot;ext&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;再接著按一下Button ，Hello World 就消失不見，一直重覆做出現不見的事情。&lt;br /&gt;
(有點小白痴，但它可以動了。:D)&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAnnx8RdkJmbwysXhyGVDeXUC9sBvj_4lWrI2gsz1CIKcUqy99sPc75rATzh8on8-gY-PUZWPZ1v8gR3omcpZs9Njzx5p7E6p08mEUQCk4gyaPLGNvWIZKAP-3i18rOjQUQ38f5_O6pTM/s1600-h/Picture+16.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAnnx8RdkJmbwysXhyGVDeXUC9sBvj_4lWrI2gsz1CIKcUqy99sPc75rATzh8on8-gY-PUZWPZ1v8gR3omcpZs9Njzx5p7E6p08mEUQCk4gyaPLGNvWIZKAP-3i18rOjQUQ38f5_O6pTM/s400/Picture+16.jpg&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;div style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;http://picasa.google.com/blogger/&quot; target=&quot;ext&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;希望 這篇有幫到你了解整個建構Application 的流程，&lt;br /&gt;
當然中間 Objective-C的那段程式碼沒有解釋，先留待下回小弟充板面的內容吧！&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
** 另外，appCntrl &amp;amp; appCntl 是都指一樣的東西，因為小第太懶的再重新抓一次圖&lt;br /&gt;
** 但又覺得名字應該用 appCntrl 比較適合，所以在做的時候，記得用一樣的名稱。&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
最後，上面步驟，或是說明有不正確的地方，還請教導一下。因為我也是新手啦！&lt;br /&gt;
哈哈哈~~!! 祝大家玩的愉快。&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/2762142360087991552/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/2762142360087991552' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/2762142360087991552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/2762142360087991552'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2009/07/cocoa-hello-world.html' title='使用 Cocoa 建構 Hello World!!'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ6JDL96jzutRyt_AhTfy0X-f3PG8lo_JCcgBL2HJlAl1vCO8ephgXYFmm3OEdGaQWWFiQfeC_R7DY7SNapJAuzL7zmra-1eC9iaH1u4OkFNR86OWUlABxoR9lXHyH6XBBjWRmabF1mM4/s72-c/Picture+1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-3381940069605663976</id><published>2008-12-09T20:56:00.000-08:00</published><updated>2011-03-21T21:44:52.497-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AspireOne"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>開啟Acer AspireOne Xfce 選單(不使用command line)</title><content type='html'>&lt;span style=&quot;font-family: verdana;&quot;&gt;1. 開啟桌面選單功能：執行&lt;span style=&quot;font-weight: bold;&quot;&gt;/usr/bin/xfce-setting-show&lt;/span&gt;程式。&lt;/span&gt;&lt;a style=&quot;font-family: verdana;&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkaR9cUl8Jg3JAwR0kcDuT0ULwZeXS7BKlSHbyfmYsFIV7CNXx7cPd2oboHHWkbXe1NAkSaPdqc6Nw4OamIAxS3SOsqyrq0vOeNmW4tfixBHz7rySTRMAA3lYmfpCv9-46R5aEKtFPVYU/s1600-h/temp1.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 234px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkaR9cUl8Jg3JAwR0kcDuT0ULwZeXS7BKlSHbyfmYsFIV7CNXx7cPd2oboHHWkbXe1NAkSaPdqc6Nw4OamIAxS3SOsqyrq0vOeNmW4tfixBHz7rySTRMAA3lYmfpCv9-46R5aEKtFPVYU/s400/temp1.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5278022971299344722&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:displayhorizontaldrawinggridevery&gt;0&lt;/w:DisplayHorizontalDrawingGridEvery&gt;   &lt;w:displayverticaldrawinggridevery&gt;2&lt;/w:DisplayVerticalDrawingGridEvery&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:spaceforul/&gt;    &lt;w:balancesinglebytedoublebytewidth/&gt;    &lt;w:donotleavebackslashalone/&gt;    &lt;w:ultrailspace/&gt;    &lt;w:donotexpandshiftreturn/&gt;    &lt;w:adjustlineheightintable/&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:usefelayout/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate=&quot;false&quot; latentstylecount=&quot;156&quot;&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face  {font-family:新細明體;  panose-1:2 2 3 0 0 0 0 0 0 0;  mso-font-alt:PMingLiU;  mso-font-charset:136;  mso-generic-font-family:roman;  mso-font-pitch:variable;  mso-font-signature:3 137232384 22 0 1048577 0;} @font-face  {font-family:文鼎中黑;  panose-1:2 11 6 9 1 1 1 1 1 1;  mso-font-charset:136;  mso-generic-font-family:modern;  mso-font-pitch:fixed;  mso-font-signature:3 680001536 22 0 1048576 0;} @font-face  {font-family:Consolas;  panose-1:2 11 6 9 2 2 4 3 2 4;  mso-font-charset:0;  mso-generic-font-family:modern;  mso-font-pitch:fixed;  mso-font-signature:-1610611985 1073750091 0 0 159 0;} @font-face  {font-family:&quot;\@新細明體&quot;;  panose-1:2 2 3 0 0 0 0 0 0 0;  mso-font-charset:136;  mso-generic-font-family:roman;  mso-font-pitch:variable;  mso-font-signature:3 137232384 22 0 1048577 0;} @font-face  {font-family:&quot;\@文鼎中黑&quot;;  panose-1:2 11 6 9 1 1 1 1 1 1;  mso-font-charset:136;  mso-generic-font-family:modern;  mso-font-pitch:fixed;  mso-font-signature:3 680001536 22 0 1048576 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-parent:&quot;&quot;;  margin:0cm;  margin-bottom:.0001pt;  mso-pagination:none;  mso-hyphenate:none;  font-size:12.0pt;  font-family:&quot;Times New Roman&quot;;  mso-fareast-font-family:新細明體;  mso-font-kerning:.5pt;  mso-fareast-language:AR-SA;}  /* Page Definitions */  @page  {mso-page-border-surround-header:no;  mso-page-border-surround-footer:no;} @page Section1  {size:612.0pt 792.0pt;  margin:72.0pt 90.0pt 72.0pt 90.0pt;  mso-header-margin:36.0pt;  mso-footer-margin:36.0pt;  mso-paper-source:0;} div.Section1  {page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:表格內文;  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-parent:&quot;&quot;;  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:&quot;Times New Roman&quot;;  mso-fareast-font-family:&quot;Times New Roman&quot;;  mso-ansi-language:#0400;  mso-fareast-language:#0400;  mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;2. 點選”&lt;span style=&quot;font-weight: bold;&quot;&gt;桌面&lt;/span&gt;”-&gt;”&lt;span style=&quot;font-weight: bold;&quot;&gt;行為&lt;/span&gt;”，將”&lt;span style=&quot;font-weight: bold;&quot;&gt;按下右鍵顯示桌面清單&lt;/span&gt;”勾選。&lt;/span&gt;&lt;br /&gt;
&lt;a style=&quot;font-family: verdana;&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNde0cpH5G2zRqabFHcKMeIqkdeEsdK5aenGL3b7L5x6IyBIMqB2RW5NaNuGQDwXgYWJaaBjl3qVQirMMl84EVvohrjvSuEPIhV1dZ1csAiR_QocTfq3y8uUSkp9oXIkleUkYg9ofB1eM/s1600-h/temp2.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 234px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNde0cpH5G2zRqabFHcKMeIqkdeEsdK5aenGL3b7L5x6IyBIMqB2RW5NaNuGQDwXgYWJaaBjl3qVQirMMl84EVvohrjvSuEPIhV1dZ1csAiR_QocTfq3y8uUSkp9oXIkleUkYg9ofB1eM/s400/temp2.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5278022810684075474&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/3381940069605663976/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/3381940069605663976' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/3381940069605663976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/3381940069605663976'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2008/12/acer-aspireone-xfce-command-line.html' title='開啟Acer AspireOne Xfce 選單(不使用command line)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkaR9cUl8Jg3JAwR0kcDuT0ULwZeXS7BKlSHbyfmYsFIV7CNXx7cPd2oboHHWkbXe1NAkSaPdqc6Nw4OamIAxS3SOsqyrq0vOeNmW4tfixBHz7rySTRMAA3lYmfpCv9-46R5aEKtFPVYU/s72-c/temp1.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-7591116563377993713</id><published>2008-03-03T21:52:00.001-08:00</published><updated>2008-03-03T22:03:02.938-08:00</updated><title type='text'>MySQL Resource</title><content type='html'>&lt;a href=&quot;http://developer.apple.com/internet/opensource/osdb.html&quot;&gt;MySQL on Mac OSX&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://twpug.net/docs/mysql323/manual_Tutorial.html&quot;&gt;MySQL中文參考手冊&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/7591116563377993713/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/7591116563377993713' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/7591116563377993713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/7591116563377993713'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2008/03/mysql-resource.html' title='MySQL Resource'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-8234499463680654917</id><published>2008-03-03T21:39:00.000-08:00</published><updated>2008-03-03T21:51:21.679-08:00</updated><title type='text'>PHP Resource</title><content type='html'>&lt;a href=&quot;http://developer.apple.com/internet/opensource/php.html&quot;&gt;Official page: PHP on Mac OS X&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.php.net/downloads.php&quot;&gt;PHP Downloads&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/8234499463680654917/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/8234499463680654917' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/8234499463680654917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/8234499463680654917'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2008/03/php-resource.html' title='PHP Resource'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-99395344450399062</id><published>2008-03-02T22:23:00.000-08:00</published><updated>2009-01-08T05:18:16.698-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Linux Resource -- XOOPS (社群軟體)</title><content type='html'>CHT website:&lt;br /&gt;&lt;a href=&quot;http://my1989.org/big5/index.html&quot;&gt;台灣開放原始碼軟體資訊站&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://forum.webdsn.net/showthread.php?t=143&quot;&gt;簡易XOOPS架設步驟&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ENG website:&lt;br /&gt;&lt;a href=&quot;http://www.xoops.org/modules/mediawiki/index.php/Getting_Started&quot;&gt;XOOPS prj, Getting Started&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/99395344450399062/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/99395344450399062' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/99395344450399062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/99395344450399062'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2008/03/linux-resource.html' title='Linux Resource -- XOOPS (社群軟體)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4801889095894090165.post-77711558328727278</id><published>2008-02-16T02:01:00.001-08:00</published><updated>2008-02-19T07:41:28.867-08:00</updated><title type='text'></title><content type='html'>參考網站:&lt;br /&gt;1.  把 Google Map 加到 blogger template.&lt;br /&gt;&lt;a href=&quot;http://next.writers.idv.tw/search?q=Blogger+%E5%8A%9F%E8%83%BD&amp;amp;max-results=20&quot;&gt;http://next.writers.idv.tw/search?q=Blogger+%E5%8A%9F%E8%83%BD&amp;amp;max-results=20&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://next.writers.idv.tw/2006/06/google-map-api-v20.html&quot;&gt;http://next.writers.idv.tw/2006/06/google-map-api-v20.html&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://next.writers.idv.tw/2006/01/bloggervi.html&quot;&gt;http://next.writers.idv.tw/2006/01/bloggervi.html&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://betabloggerfordummies.blogspot.com/2006/11/add-google-map-to-your-blog.html&quot;&gt;http://betabloggerfordummies.blogspot.com/2006/11/add-google-map-to-your-blog.html&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://blog.yam.com/syshen/article/5158404&quot;&gt;http://blog.yam.com/syshen/article/5158404&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Add a new mark on ur Google Map.&lt;br /&gt;&lt;a href=&quot;http://aspstarterkit.com/index.php/getting-started/google-map-api-adding-address-markers-and-geocoding/&quot;&gt;http://aspstarterkit.com/index.php/getting-started/google-map-api-adding-address-markers-and-geocoding/&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.geospatialtraining.com/Newsletter/Summer%202006/Google%20Geocoding.htm&quot;&gt;http://www.geospatialtraining.com/Newsletter/Summer%202006/Google%20Geocoding.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;目標網站:&lt;br /&gt;&lt;a href=&quot;http://en.nomao.com/marieyuen&quot;&gt;http://en.nomao.com/marieyuen&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Mac/Cocoa/Linux/Android/Program/Develop&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://my0613.blogspot.com/feeds/77711558328727278/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4801889095894090165/77711558328727278' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/77711558328727278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4801889095894090165/posts/default/77711558328727278'/><link rel='alternate' type='text/html' href='http://my0613.blogspot.com/2008/02/httpnext.html' title=''/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>