<?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:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-4757510160763150330</id><updated>2009-09-29T23:05:26.611-07:00</updated><title type='text'>巫紘碩(GDX) - 學習日誌</title><subtitle type='html'>一些學習的筆記</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default?start-index=26&amp;max-results=25'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-2234721948742975172</id><published>2008-09-13T09:53:00.000-07:00</published><updated>2008-09-13T09:59:13.992-07:00</updated><title type='text'>Python 學習筆記 - HTML Parser - EOF in middle of construct</title><content type='html'>最近用HTMLParser的時候發生了因為EOF(EOF in middle of construct)而產生exception的問題&lt;br /&gt;後來將網頁儲存後發現是因為網頁內容不符合規範所造成的&lt;br /&gt;範例:&lt;br /&gt;&lt; img //這裡不是用空白而是用換行(\n '0A')&lt;br /&gt;src="" /&gt;&lt;br /&gt;因此將內容中的換行全部replace成空白得以解決&lt;br /&gt;看來以後要避免這種鳥問題還是先做這些前處理比較好...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-2234721948742975172?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/2234721948742975172/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=2234721948742975172' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/2234721948742975172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/2234721948742975172'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/09/python-html-parser-eof-in-middle-of.html' title='Python 學習筆記 - HTML Parser - EOF in middle of construct'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-836565221845889218</id><published>2008-07-29T21:01:00.000-07:00</published><updated>2008-07-29T21:20:11.532-07:00</updated><title type='text'>TSQL 筆記 - 利用 SQL Server 2005 的 row_number() 選出在資料庫中指定資料的分頁</title><content type='html'>前幾天研究室學長問的問題，嘗試了一下，可以用 SQL Server 2005 的 row_number() 函數來解決&lt;br /&gt;範例問題：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;我們要知道 Table 中指定資料所在的分頁&lt;br /&gt;範例 Table [t1]：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'CCN'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'icools'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'GDX'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'jpst'&lt;br /&gt;目標：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;取得 data 欄位的 'GDX' 所在列數 (row)&lt;br /&gt;解決方法：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DECLARE @id int&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SET @id = (SELECT [id] FROM [t1] WHERE [data] = 'GDX')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT count(*) / 3 + 1 FROM [test] WHERE id &lt; @id&lt;br /&gt;&lt;br /&gt;目標(2)：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;取得 data 欄位的 'GDX' 所在列數 (用 data 欄位做排序)&lt;br /&gt;解決方法：&lt;br /&gt;set @id = (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT TOP 1 [rid] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT row_number() over (order by [data] ASC) as [rid], [data]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM [t1]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;) AS b&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE b.[data] = 'GDX'&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;SELECT count / 3 + 1&lt;br /&gt;FROM (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT row_number() over (order by [data] ASC) as rid&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM [t1]) AS b&lt;br /&gt;WHERE b.rid &lt; @id&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-836565221845889218?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/836565221845889218/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=836565221845889218' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/836565221845889218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/836565221845889218'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/07/tsql-sql-server-2005-rownumber.html' title='TSQL 筆記 - 利用 SQL Server 2005 的 row_number() 選出在資料庫中指定資料的分頁'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-3432692052668035579</id><published>2008-07-16T23:39:00.000-07:00</published><updated>2008-07-16T23:42:14.639-07:00</updated><title type='text'>Python 學習筆記 - 自訂模組路徑</title><content type='html'>在windows中直接設定環境變數PYTHONPATH即可&lt;br /&gt;&lt;br /&gt;在Linux中必須修改~/.profile，加入一行 export PYTHONPATH=/path/to/module&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-3432692052668035579?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/3432692052668035579/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=3432692052668035579' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/3432692052668035579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/3432692052668035579'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/07/python.html' title='Python 學習筆記 - 自訂模組路徑'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-514090717738492105</id><published>2008-06-23T22:17:00.000-07:00</published><updated>2008-06-23T22:22:20.015-07:00</updated><title type='text'>Ubuntu 學習筆記 - sudo 指令後面的參數不能用 tab auto complete</title><content type='html'>前幾天發生這怪怪的問題&lt;br /&gt;以前輸入 sudo apt-g 之後按 tab 應該會自動完成 sudo apt-get &lt;br /&gt;或是輸入 sudo apt- 案兩次 tab 後會顯示可輸入指令&lt;br /&gt;不過好像某次安全性更新後這功能就失效了，若不加上 sudo 指令是可以正常 work 的&lt;br /&gt;後來 google 的結果找到了解決方法&lt;br /&gt;用文字編輯器開啟 /etc/bash.bashrc 檔案&lt;br /&gt;然後把以下內容去註解或是加入&lt;br /&gt;# enable bash completion in interactive shells&lt;br /&gt;if [ -f /etc/bash_completion ]; then&lt;br /&gt;. /etc/bash_completion&lt;br /&gt;fi &lt;br /&gt;這樣就可以正常 work 囉^_^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-514090717738492105?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/514090717738492105/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=514090717738492105' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/514090717738492105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/514090717738492105'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/06/ubuntu-sudo-tab-auto-complete.html' title='Ubuntu 學習筆記 - sudo 指令後面的參數不能用 tab auto complete'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-8453079008385186004</id><published>2008-06-16T20:11:00.000-07:00</published><updated>2008-06-16T20:32:41.763-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google App Engine'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='網頁設計'/><title type='text'>Google App Engine - urlfetch</title><content type='html'>在 GAE 中不能使用 Python Standard Library 的任何有用到 Socket 的模組&lt;br /&gt;像是 urllib、httplib 等都是被禁止的&lt;br /&gt;因此若有需要存取其他網頁，則必須使用 GAE 提供的 urlfetch&lt;br /&gt;範例：&lt;br /&gt;from google.appengine.api import urlfetch&lt;br /&gt;r = urlfetch.fetch('http://www.google.com/', method="GET")&lt;br /&gt;if r.status_code == 200:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print result.content&lt;br /&gt;&lt;br /&gt;在 GAE 的 urlfetch 介紹頁提到 &lt;br /&gt;urlfetch 僅能對 port 80 (http) 和 port 443 (https) 進行存取&lt;br /&gt;timeout 也不能設定&lt;br /&gt;而 Http Redirect 也以最大五次為限&lt;br /&gt;&lt;br /&gt;而在實際的測試中，也發現 urlfetch 似乎有內定的 cooldown&lt;br /&gt;不能在短時間內發出大量 urlfetch，否則會出現 DownloadError Exception&lt;br /&gt;這對某些類型的網站並不是很方便 :(&lt;br /&gt;&lt;br /&gt;不知道付費版本會不會有這些限制 :P&lt;br /&gt;&lt;br /&gt;參考資料：&lt;a href="http://code.google.com/appengine/docs/urlfetch/overview.html" target="_blank"&gt;Urlfetch Overview&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-8453079008385186004?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/8453079008385186004/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=8453079008385186004' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/8453079008385186004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/8453079008385186004'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/06/google-app-engine-urlfetch.html' title='Google App Engine - urlfetch'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-5630480084447706318</id><published>2008-06-16T10:14:00.000-07:00</published><updated>2008-06-16T10:18:37.292-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google App Engine'/><category scheme='http://www.blogger.com/atom/ns#' term='網頁設計'/><title type='text'>Google App Engine - 上傳靜態檔案</title><content type='html'>在一個 App Engine 專案裡面所有要上傳的檔案都必須在 app.yaml 檔案中設定&lt;br /&gt;如果我們要上傳 css 和 js 資料夾，則必須在 app.yaml 加入以下的敘述:&lt;br /&gt;handlers:&lt;br /&gt;- url: /css&lt;br /&gt;&amp;nbsp;&amp;nbsp;static_dir: css&lt;br /&gt;    &lt;br /&gt;- url: /js&lt;br /&gt;&amp;nbsp;&amp;nbsp;static_dir: js&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-5630480084447706318?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/5630480084447706318/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=5630480084447706318' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/5630480084447706318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/5630480084447706318'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/06/google-app-engine.html' title='Google App Engine - 上傳靜態檔案'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-3664798352736317414</id><published>2008-06-15T07:14:00.000-07:00</published><updated>2008-06-15T07:31:03.889-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='程式設計'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Python 學習筆記 - copy</title><content type='html'>copy 這個模組可以讓你複製 Python 的物件&lt;br /&gt;範例:&lt;br /&gt;import copy&lt;br /&gt;a = copy.copy(x)&lt;br /&gt;b = copy.deepcopy(x)&lt;br /&gt;&lt;br /&gt;copy 和 deepcopy 不同之處在於 copy 儘會複製當前物件&lt;br /&gt;而 deepcopy 則是若該物件有屬性指向其他物件，則也會一併複製&lt;br /&gt;範例:&lt;br /&gt;class test:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def __init__(self, data):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.data = data&lt;br /&gt;l = [1, 2, 3, 4]&lt;br /&gt;t = test(l)&lt;br /&gt;import copy&lt;br /&gt;a = copy.copy(t)&lt;br /&gt;b = copy.deepcopy(t)&lt;br /&gt;l.append(5)&lt;br /&gt;print a.data&lt;br /&gt;print b.data&lt;br /&gt;&lt;br /&gt;將會輸出:&lt;br /&gt;[1, 2, 3, 4, 5]&lt;br /&gt;[1, 2, 3, 4]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-3664798352736317414?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/3664798352736317414/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=3664798352736317414' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/3664798352736317414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/3664798352736317414'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/06/python-copy.html' title='Python 學習筆記 - copy'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-2045586156229518567</id><published>2008-05-22T09:46:00.000-07:00</published><updated>2008-05-22T09:48:35.830-07:00</updated><title type='text'>加速USB Serial使3G/3.5G網卡在Linux中發揮應有速度</title><content type='html'>&lt;div class="entry"&gt;      &lt;p&gt;之前在&lt;a title="Ubuntu下使用3G/3.5G網卡上網(以Telit UM20為例)" rel="bookmark" href="http://ubuntu.ccn.tw/2008/04/29/ubuntu%e4%b8%8b%e4%bd%bf%e7%94%a83g35g%e7%b6%b2%e5%8d%a1%e4%b8%8a%e7%b6%b2/"&gt;Ubuntu下使用3G/3.5G網卡上網(以Telit UM20為例)&lt;/a&gt;這篇文章中提到了如何在Ubuntu底下掛載3G/3.5G網卡並撥接上網&lt;br /&gt;&lt;br /&gt;相信有在Ubuntu使用3G/3.5G網卡的人一定覺得很奇怪&lt;br /&gt;怎麼下載速度一直都沒辦法突破60KB，即使你擁有3.5G&lt;br /&gt;&lt;br /&gt;這個問題一直困擾我很久，google了許多天都找不到解答，最後終於在&lt;a href="http://www.junxion.com/opensource/linux_highspeed_usbserial" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.junxion.com/opensource/linux_highspeed_usbserial');" target="_blank"&gt;這篇文章&lt;/a&gt;中獲得解答!&lt;br /&gt;原因大約是封包大小被限制在64byte，間接造成了傳輸速率降低&lt;br /&gt;&lt;br /&gt;要解決這個問題，文章中利用修改並重新編譯usbserial的這個模組來達成&lt;br /&gt;以下是詳細步驟：&lt;/p&gt; &lt;ol&gt;&lt;li&gt;取得您目前使用版本的Linux Kernel Source (Ubuntu 8.04下使用sudo apt-get install linux-source)&lt;br /&gt;或者可以到&lt;a href="http://www.kernel.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.kernel.org/');"&gt;http://www.kernel.org/&lt;/a&gt;下載&lt;br /&gt;之後解壓縮下載的檔案(tar -jxvf linux-source-2.x.xx.tar.bz2)&lt;br /&gt;Ubuntu 8.04 apt-get後檔案會存在/usr/src/底下&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;解壓縮後cd linux-source-2.x.xx/drivers/usb/serial/&lt;br /&gt;底下有個usb-serial.c的檔案，用文字編輯器編輯他(sudo gedit usb-serial.c)&lt;br /&gt;在 static int debug; 前一行加上 static ushort maxSize = 0;&lt;br /&gt;在 buffer_size = le16_to_cpu(endpoint-&gt;wMaxPacketSize); 後一行加上 buffer_size = (endpoint-&gt;wMaxPacketSize &gt; maxSize)?endpoint-&gt;wMaxPacketSize:maxSize;&lt;br /&gt;在檔案最後面加上&lt;br /&gt;module_param(maxSize, ushort,0);&lt;br /&gt;MODULE_PARM_DESC(maxSize,”User specified USB endpoint size”);&lt;br /&gt;之後儲存&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;編輯完usb-serial.c後我們將目錄切換回linux-source-2.x.xx底下&lt;br /&gt;然後用make指令編譯所有檔案(我嘗試使用gcc單獨編譯usb-serial.c，可是一直無法成功，望高人指點:))&lt;br /&gt;等待編譯完後linux-source-2.x.xx/drivers/usb/serial/底下會多usbserial.ko的檔案&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;將usbserial.ko複製到/lib/modules/2.x.xx-xx-generic/kernel/drivers/usb/serial/中即可&lt;br /&gt;建議先備份原本的usbserial.ko&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;成功的話，之後使用modprobe的時候會多個maxSize的參數&lt;br /&gt;sudo modprobe usbserial vendor=0×1bc7 product=0×1002 maxSize=2048&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;以上都成功的話重新撥接，就可以用正常的3G/3.5G上網囉! &lt;img src="http://ubuntu.ccn.tw/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" class="wp-smiley" /&gt;&lt;/p&gt;     &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-2045586156229518567?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/2045586156229518567/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=2045586156229518567' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/2045586156229518567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/2045586156229518567'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/05/usb-serial3g35glinux.html' title='加速USB Serial使3G/3.5G網卡在Linux中發揮應有速度'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-1338183418136718564</id><published>2008-05-09T10:25:00.000-07:00</published><updated>2008-05-09T10:32:32.354-07:00</updated><title type='text'>Ubuntu 學習筆記 - apt-file</title><content type='html'>apt-file是個好用的工具&lt;br /&gt;當你只知道缺少某個檔案，卻不知道該檔案在哪個套件中時&lt;br /&gt;就可以用apt-file來尋找該檔案是在哪個套件中&lt;br /&gt;&lt;br /&gt;安裝apt-file:&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install apt-file&lt;/blockquote&gt;安裝完記得先update更新cache:&lt;br /&gt;&lt;blockquote&gt;sudo apt-file update&lt;/blockquote&gt;然後就可以使用apt-file了:)&lt;br /&gt;使用apt-file，範例:&lt;br /&gt;&lt;blockquote&gt;sudo apt-file find gtkwidget.h&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;如此就可以找出gtkwidget.h所在的套件:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-1338183418136718564?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/1338183418136718564/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=1338183418136718564' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/1338183418136718564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/1338183418136718564'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/05/ubuntu-apt-file.html' title='Ubuntu 學習筆記 - apt-file'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-5879549472308828075</id><published>2008-05-05T03:33:00.000-07:00</published><updated>2008-05-05T03:47:09.140-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GTK'/><category scheme='http://www.blogger.com/atom/ns#' term='GTK+'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Python 學習筆記 - gtk - 產生一個window</title><content type='html'>import pygtk&lt;br /&gt;pygtk.require(r'2.0')&lt;br /&gt;import gtk&lt;br /&gt;&lt;br /&gt;class MyWindow:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def __init__(self):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#建立一個新的gtk window&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#設定window大小&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.window.set_size_request(300, 300)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#window被銷毀的時候離開gtk&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.window.connect(r'destory', lambda: w: gtk.main_quit())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;顯示window&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.window.show()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def main():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#開始gtk&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gtk.main()&lt;br /&gt;&lt;br /&gt;w = MyWindow()&lt;br /&gt;w.main()&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-5879549472308828075?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/5879549472308828075/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=5879549472308828075' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/5879549472308828075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/5879549472308828075'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/05/python-gtk-window.html' title='Python 學習筆記 - gtk - 產生一個window'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-1658670700775715088</id><published>2008-04-29T01:37:00.001-07:00</published><updated>2008-04-29T01:39:14.018-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3.5G'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Modem'/><category scheme='http://www.blogger.com/atom/ns#' term='3G'/><title type='text'>Ubuntu下使用3G/3.5G網卡上網(以Telit UM20為例)</title><content type='html'>&lt;p&gt;現在的3G網卡似乎都是將驅動程式虛擬成一台光碟機&lt;/p&gt;  &lt;p&gt;這在Windows下還蠻方便的，插下去就可以直接裝驅動程式上網了&lt;/p&gt;  &lt;p&gt;可是在Ubuntu下這卻是很大的缺點&amp;#8230;&lt;/p&gt;  &lt;p&gt;Ubuntu只會抓到那台虛擬的光碟機，而不會知道他其實是一台數據機&lt;/p&gt;  &lt;p&gt;導致要撥號抓不到數據機的囧境發生XD&lt;/p&gt;  &lt;p&gt;因此若要在Ubuntu下用3G網卡上網的話，要先將光碟機移除&lt;/p&gt;  &lt;p&gt;然後跟Ubuntu說它其實是一台數據機&amp;#8230;XD&lt;/p&gt;  &lt;p&gt;步驟如下(以Telit UM20為例)：&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;sudo umount /media/UM20      &lt;br /&gt;sudo rmmod usbserial       &lt;br /&gt;sudo modprobe usbserial vendor=0&amp;#215;1bc7 product=0&amp;#215;1002&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;vender和product可以下lsusb來看&lt;/p&gt;  &lt;p&gt;順利的話用dmesg就可以看到ttyUSB0~4掛載上去了(有時候數字會不太一樣)&lt;/p&gt;  &lt;p&gt;之後就可以用wvdial撥號上網囉&lt;/p&gt;  &lt;p&gt;首先設定/etc/wvdial.conf的內容如下&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;[Dialer Defaults]      &lt;br /&gt;Phone = *98#       &lt;br /&gt;APN = internet       &lt;br /&gt;Username = username       &lt;br /&gt;Password = password       &lt;br /&gt;Stupid Mode = 1       &lt;br /&gt;Dial Command = ATDT       &lt;br /&gt;Modem = /dev/ttyUSB1       &lt;br /&gt;Baud = 460800       &lt;br /&gt;Init2 = ATZ       &lt;br /&gt;Init3 = ATQ0 V1 E1 S0=0 &amp;amp;C1 &amp;amp;D2 +FCLASS=0       &lt;br /&gt;ISDN = 0       &lt;br /&gt;Modem Type = Analog Modem&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;注意這是撥號Hinet的設置，其他電信的Phone好像不太一樣&lt;/p&gt;  &lt;p&gt;Modem的設定要設定第二個USB&lt;/p&gt;  &lt;p&gt;也就是如果是掛載ttyUSB0~3，就必須設定ttyUSB1 (這是Telit UM20的例子，不確定其他廠牌是否一樣)&lt;/p&gt;  &lt;p&gt;設定好/etc/wvdial.conf的內容，就可以用wvdial &amp;amp;指令撥號上網囉:-)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-1658670700775715088?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/1658670700775715088/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=1658670700775715088' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/1658670700775715088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/1658670700775715088'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/04/ubuntu3g35gtelit-um20.html' title='Ubuntu下使用3G/3.5G網卡上網(以Telit UM20為例)'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-2221641199404881816</id><published>2008-04-15T11:27:00.000-07:00</published><updated>2008-06-16T20:32:03.822-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pictures'/><category scheme='http://www.blogger.com/atom/ns#' term='PicLens'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Python - PyPicLens 0.1 - 用 PicLens 瀏覽電腦中的圖片</title><content type='html'>這是無聊寫來玩的東西，可以利用 PicLens 來瀏覽電腦中的照片&lt;br /&gt;食用方法：&lt;br /&gt;將下載後的 pypiclens.exe 放到你的圖片目錄執行即可&lt;br /&gt;&lt;br /&gt;&lt;a href="http://soft.gdx.tw/pypiclens.exe"&gt;下載 pypiclens.exe for windows&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-2221641199404881816?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/2221641199404881816/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=2221641199404881816' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/2221641199404881816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/2221641199404881816'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/04/python-pypiclens-01-piclens.html' title='Python - PyPicLens 0.1 - 用 PicLens 瀏覽電腦中的圖片'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-2956546215934252652</id><published>2008-04-09T09:09:00.000-07:00</published><updated>2008-04-29T01:40:24.418-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TurboGears'/><category scheme='http://www.blogger.com/atom/ns#' term='CherryPy'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Python 筆記 - CherryPy.Session</title><content type='html'>在 TurboGears 中要使用 Session 要先在 dev.cfg 中的 [global] 區塊加入&lt;br /&gt;session_filter.on = True&lt;br /&gt;&lt;br /&gt;之後便可以使用 Session&lt;br /&gt;&lt;br /&gt;Example Code:&lt;br /&gt;import cherrypy&lt;br /&gt;s = cherrypy.session&lt;br /&gt;s['test'] = s.get('test', True)&lt;br /&gt;print s['test']&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-2956546215934252652?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/2956546215934252652/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=2956546215934252652' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/2956546215934252652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/2956546215934252652'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/04/python-cherrypysession.html' title='Python 筆記 - CherryPy.Session'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-3629821109138832203</id><published>2008-04-09T00:05:00.000-07:00</published><updated>2008-04-29T01:40:43.573-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MD5'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Python 筆記 - 產生 md5 字串</title><content type='html'>以下代碼將產生一32長度的md5字串&lt;br /&gt;import md5&lt;br /&gt;return md5.new('Test').hexdigest()&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-3629821109138832203?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/3629821109138832203/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=3629821109138832203' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/3629821109138832203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/3629821109138832203'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/04/python-md5.html' title='Python 筆記 - 產生 md5 字串'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-2290045160195804749</id><published>2008-03-17T04:15:00.000-07:00</published><updated>2008-04-29T01:41:31.310-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='PyODBC'/><title type='text'>Python 筆記 - 連結資料庫</title><content type='html'>在 Python 存取資料庫的地方嚐試了許多 Library&lt;br /&gt;最後覺得以 pyodbc 這套 library 較好&lt;br /&gt;支援了 Unicode、Commit、Rollback、ConnectionString、DSN 等等的功能&lt;br /&gt;有完整的資料庫欄位型態，寫法也很精簡&lt;br /&gt;還有一個重點是 Library 不會太大&lt;br /&gt;&lt;br /&gt;pyodbc 官網：&lt;a href="http://pyodbc.sourceforge.net/"&gt;http://pyodbc.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;範例：&lt;br /&gt;import pyodbc&lt;br /&gt;connStr = 'DRIVER={SQL Server};SERVER=server;DATABASE=database;UID=user;PWD=password'&lt;br /&gt;conn = pyodbc.connect(connStr)&lt;br /&gt;cur = conn.cursor()&lt;br /&gt;cur.execute('SELECT user, status FROM Users')&lt;br /&gt;for r in cur:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print cur.user, cur.status&lt;br /&gt;cur.close()&lt;br /&gt;conn.close()&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-2290045160195804749?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/2290045160195804749/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=2290045160195804749' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/2290045160195804749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/2290045160195804749'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/03/python.html' title='Python 筆記 - 連結資料庫'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-4933013435414348906</id><published>2008-03-16T20:40:00.000-07:00</published><updated>2008-03-17T04:31:32.221-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='資料庫'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Syntax'/><title type='text'>SQL Server T-SQL中的Try...Catch</title><content type='html'>在SQL中的Try...Catch寫法&lt;br /&gt;Begin Try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;....&lt;br /&gt;End Try&lt;br /&gt;Catch Try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;....&lt;br /&gt;End Try&lt;br /&gt;&lt;br /&gt;範例:&lt;br /&gt;若指定資料存在則更新，不存在則新增&lt;br /&gt;&lt;br /&gt;Table user:&lt;br /&gt;username&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;status&lt;br /&gt;&lt;br /&gt;Begin Try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//嘗試更新GDX的狀態&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Update user Set status = 'busy' Where username = 'GDX'&lt;br /&gt;End Try&lt;br /&gt;Begin Catch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//更新錯誤，新增GDX的狀態&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Insert Into user (username, status) Values ('GDX', 'busy')&lt;br /&gt;End Catch&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-4933013435414348906?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/4933013435414348906/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=4933013435414348906' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/4933013435414348906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/4933013435414348906'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/03/sql-server-t-sql-trycatch.html' title='SQL Server T-SQL中的Try...Catch'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-983100322496188050</id><published>2008-02-28T07:35:00.000-08:00</published><updated>2008-03-01T11:07:46.998-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='分頁'/><category scheme='http://www.blogger.com/atom/ns#' term='資料庫'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Syntax'/><title type='text'>SQL - 分頁</title><content type='html'>以前還沒有那麼熟SQL語法的時候&lt;br /&gt;只會作將資料庫資料讀出來、寫入、更新等等基本的動作，以為這就是SQL的全部了&lt;br /&gt;後來作的東西越來越多、看的越來越多，經驗也比以前豐富了&lt;br /&gt;發現SQL真是博大精深，很多複雜的動作都可以在SQL裡完成&lt;br /&gt;而不需要將資料讀出再交由程式作處理，也減少了程式的複雜度&lt;br /&gt;&lt;br /&gt;例如最常用到的分頁，以前總想著把資料全部讀出來再用程式選取需要的資料&lt;br /&gt;但這樣實在太浪費校能和記憶體了&lt;br /&gt;資料量小倒是還好，當資料量一大，成千上萬筆的資料不可能一次選出&lt;br /&gt;因此在此做了筆記&lt;br /&gt;&lt;br /&gt;範例資料表名稱: a&lt;br /&gt;範例資料表結構:&lt;br /&gt;id: 主索引&lt;br /&gt;data: 資料&lt;br /&gt;&lt;br /&gt;利用以下語法即可達到不需程式控制的分頁技巧&lt;br /&gt;&lt;br /&gt;SELECT TOP &lt;span style="color: rgb(255, 0, 0);"&gt;pSize&lt;/span&gt; * FROM [a]&lt;br /&gt;WHERE [a].[id] NOT IN&lt;br /&gt;(SELECT TOP &lt;span style="color: rgb(255, 0, 0);"&gt;pSize * pIndex&lt;/span&gt; [b].[id] FROM [a] AS [b] ORDER BY [b].[id])&lt;br /&gt;ORDER BY [a].[id] DESC&lt;br /&gt;&lt;br /&gt;pSize代表一頁的資料筆數&lt;br /&gt;pIndex代表目前的頁面(從0開始)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-983100322496188050?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/983100322496188050/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=983100322496188050' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/983100322496188050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/983100322496188050'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/02/sql.html' title='SQL - 分頁'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-1963706864102158566</id><published>2008-02-18T17:37:00.000-08:00</published><updated>2008-03-01T11:03:27.872-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='程式設計'/><category scheme='http://www.blogger.com/atom/ns#' term='無名小站'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='Wretch'/><title type='text'>Python 練習程式 - 無名相簿下載 Ver 1.0.2</title><content type='html'>加入了下載相片頁面的影片和mp3檔的功能:-)&lt;br /&gt;現在還是 Console 介面&lt;br /&gt;改天有空玩玩 wxPython 寫成 Windows 介面~&lt;br /&gt;&lt;br /&gt;py2exe Build 出來的 Win32 exe 的 dependent 檔案好大阿XD&lt;br /&gt;&lt;br /&gt;Download Win32 exe: &lt;a href="http://soft.gdx.tw/WretchPW.exe"&gt;WretchPW.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;P.S 這只是練習 Python 寫的程式&lt;br /&gt;如有需要無名相簿下載器, 可以使用 WretchXD&lt;br /&gt;在 &lt;a target="_blank" href="http://soft.ccn.tw/"&gt;http://soft.ccn.tw&lt;/a&gt; 可以下載^_^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-1963706864102158566?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/1963706864102158566/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=1963706864102158566' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/1963706864102158566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/1963706864102158566'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/02/python-ver-102.html' title='Python 練習程式 - 無名相簿下載 Ver 1.0.2'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-7827368099001002650</id><published>2008-02-18T08:34:00.000-08:00</published><updated>2008-03-01T11:03:53.541-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='程式設計'/><category scheme='http://www.blogger.com/atom/ns#' term='無名小站'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='Wretch'/><title type='text'>Python 練習程式 - 無名相簿下載 Ver 1.0.1</title><content type='html'>加入了下載密碼相簿的功能 :-)&lt;br /&gt;還有移除了許多 Garbage Code&lt;br /&gt;&lt;br /&gt;Download Win32 exe: &lt;a href="http://soft.gdx.tw/WretchPW.exe"&gt;WretchPW.exe&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-7827368099001002650?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/7827368099001002650/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=7827368099001002650' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/7827368099001002650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/7827368099001002650'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/02/python-ver-101.html' title='Python 練習程式 - 無名相簿下載 Ver 1.0.1'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-7959003974193844710</id><published>2008-02-18T00:08:00.000-08:00</published><updated>2008-02-19T18:52:32.764-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='程式設計'/><category scheme='http://www.blogger.com/atom/ns#' term='無名小站'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='Wretch'/><title type='text'>Python 練習程式 - 無名相簿下載 Ver 1.0</title><content type='html'>最近在學習 Python&lt;br /&gt;很多地方和以前習慣的 C, C++, C#, Java 都有很大不同&lt;br /&gt;也因此花了許多時間來習慣&lt;br /&gt;&lt;br /&gt;像是程式區塊的 { }&lt;br /&gt;在Python中是用強制縮排來取代&lt;br /&gt;以 C 為例&lt;br /&gt;一段 if statement 在 C 中是長這樣:&lt;br /&gt;if (a &gt; b) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf(a);&lt;br /&gt;}&lt;br /&gt;而在 Python 中則是&lt;br /&gt;if a &gt; b:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print a&lt;br /&gt;整個就是清爽很多XD&lt;br /&gt;當然這種強制的設定有褒有貶&lt;br /&gt;我個人是非常贊同這種設定的&lt;br /&gt;至少看別人的 code 不會因為排版習慣不同而看得很辛苦了&lt;br /&gt;&lt;br /&gt;在這個練習題中練習了 Python 中 Http 的通訊協定&lt;br /&gt;還有一些基本的觀念&lt;br /&gt;喔，密碼的相簿還沒處理，所以還不能下載XD&lt;br /&gt;&lt;br /&gt;Download Win32 exe: &lt;a href="http://soft.gdx.tw/WretchPW.exe"&gt;WretchPW.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;學的更多之後再上來發表心得 :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-7959003974193844710?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/7959003974193844710/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=7959003974193844710' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/7959003974193844710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/7959003974193844710'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/02/python-ver-10.html' title='Python 練習程式 - 無名相簿下載 Ver 1.0'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-993876364386899528</id><published>2008-01-26T04:33:00.000-08:00</published><updated>2008-01-26T04:41:53.827-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='程式設計'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='網頁設計'/><title type='text'>PHP筆記(1) - 取得Http Content Data</title><content type='html'>以前在ASP.NET的時候會將上傳的檔案以自己的方式作處理&lt;br /&gt;透過BinaryWriter來寫入資料到RequestStream裡&lt;br /&gt;Server端再用BinaryReader從Request.InputStream讀出來&lt;br /&gt;轉到php的時候找了很久都找不太到相似的方法&lt;br /&gt;本來以為要改寫了&lt;br /&gt;今天終於google到了@@&lt;br /&gt;使用php://input即可達到相同效果&lt;br /&gt;還有一些有用的參數&lt;br /&gt;&lt;ul class="itemizedlist"&gt;&lt;li class="listitem"&gt;&lt;span class="simpara"&gt;&lt;var class="filename"&gt;php://stdin&lt;/var&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="listitem"&gt;&lt;span class="simpara"&gt;&lt;var class="filename"&gt;php://stdout&lt;/var&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="listitem"&gt;&lt;span class="simpara"&gt;&lt;var class="filename"&gt;php://stderr&lt;/var&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="listitem"&gt;&lt;span class="simpara"&gt;&lt;var class="filename"&gt;php://output&lt;/var&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="listitem"&gt;&lt;span class="simpara"&gt;&lt;var class="filename"&gt;php://input&lt;/var&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="listitem"&gt;&lt;span class="simpara"&gt;&lt;var class="filename"&gt;php://filter&lt;/var&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;資料來源:&lt;br /&gt;&lt;a href="http://php.chinaunix.net/manual/zh/wrappers.php.php"&gt;http://php.chinaunix.net/manual/zh/wrappers.php.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-993876364386899528?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/993876364386899528/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=993876364386899528' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/993876364386899528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/993876364386899528'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/01/php1-http-content-data.html' title='PHP筆記(1) - 取得Http Content Data'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-120788560775407064</id><published>2008-01-21T20:44:00.000-08:00</published><updated>2008-07-29T23:58:37.943-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='程式設計'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='資料庫'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Syntax'/><title type='text'>利用SQL選取資料表中相同類型的前N筆資料</title><content type='html'>這是在最近IR Project碰到的問題&lt;br /&gt;&lt;br /&gt;範例資料表 - 人事：&lt;br /&gt;編號      人名       階級&lt;br /&gt;1            王小明  主管&lt;br /&gt;2            張小明  主管&lt;br /&gt;3            李小明  主管&lt;br /&gt;4            陳小明  主管&lt;br /&gt;5            李安      員工&lt;br /&gt;6            張安      員工&lt;br /&gt;7            王安      員工&lt;br /&gt;8            陳安      員工&lt;br /&gt;9            平安      員工&lt;br /&gt;&lt;br /&gt;我們希望選出主管和員工的前兩筆資料，也就是&lt;br /&gt;編號      人名       階級&lt;br /&gt;1            王小明  主管&lt;br /&gt;2            張小明  主管&lt;br /&gt;5            李安      員工&lt;br /&gt;6            張安      員工&lt;br /&gt;&lt;br /&gt;可以利用SQL LEFT OUTER JOIN Statement來達成&lt;br /&gt;解答：&lt;br /&gt;SELECT ta.編號, ta.人名, ta.階級&lt;br /&gt;FROM 人事 AS ta&lt;br /&gt;      LEFT OUTER JOIN 人事 AS tb&lt;br /&gt;      ON ta.階級 = tb.階級 AND ta.編號 &lt;= tb.編號&lt;br /&gt;GROUP BY ta.階級, ta.編號, ta.人名&lt;br /&gt;HAVING COUNT(1) &lt; 2&lt;br /&gt;ORDER BY ta.階級, ta.編號&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-120788560775407064?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/120788560775407064/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=120788560775407064' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/120788560775407064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/120788560775407064'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/01/n.html' title='利用SQL選取資料表中相同類型的前N筆資料'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-4709052054401761466</id><published>2008-01-12T07:25:00.000-08:00</published><updated>2008-02-18T08:56:36.992-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='程式設計'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>查詢誰刪除了你的MSN聯絡人 - WhoDeleteMe Ver1.0.0.0</title><content type='html'>最近正在利用DotMSN寫MSN Bot&lt;br /&gt;順手的小產物0.0&lt;br /&gt;需要輸入帳號密碼, 查詢期間你的MSN會被登出&lt;br /&gt;&lt;br /&gt;System Required: .NET Framework 2.0+&lt;br /&gt;&lt;a href="http://soft.gdx.tw/WhoDeleteMe1.0.0.0.rar"&gt;下載&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-4709052054401761466?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/4709052054401761466/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=4709052054401761466' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/4709052054401761466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/4709052054401761466'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/01/msn-whodeleteme-ver1000.html' title='查詢誰刪除了你的MSN聯絡人 - WhoDeleteMe Ver1.0.0.0'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-6770552482614871649</id><published>2008-01-07T11:10:00.000-08:00</published><updated>2008-01-30T12:00:33.616-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='程式設計'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='南台科技大學'/><title type='text'>南台科技大學校園IP流量監控 Ver 1.0.0.0</title><content type='html'>隨手寫的一個很簡單的IP流量偵測程式&lt;br /&gt;只是去讀取流量網頁作分析而已&lt;br /&gt;會紀錄log在同目錄下的 "IP位址 日期log.txt"&lt;br /&gt;目前只有偵測單一IP的功能&lt;br /&gt;以後有時間再增加功能吧&lt;br /&gt;&lt;br /&gt;System Required：.NET Framework 2.0+&lt;br /&gt;&lt;a href="http://gdx.tw/software/StutNetAlarter.exe"&gt;下載&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-6770552482614871649?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/6770552482614871649/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=6770552482614871649' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/6770552482614871649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/6770552482614871649'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/01/ip.html' title='南台科技大學校園IP流量監控 Ver 1.0.0.0'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4757510160763150330.post-338165248591667737</id><published>2008-01-07T10:57:00.000-08:00</published><updated>2008-01-07T11:36:48.151-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='程式設計'/><category scheme='http://www.blogger.com/atom/ns#' term='IP'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><title type='text'>取得本機對外IP位址 - 利用.NET web reference</title><content type='html'>在專案中加入Web參考 http://checkrealip.com/IP.asmx&lt;br /&gt;即可以使用 com.checkrealip.IP 來取得本機對外IP位址&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4757510160763150330-338165248591667737?l=gdx-learning.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gdx-learning.blogspot.com/feeds/338165248591667737/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=4757510160763150330&amp;postID=338165248591667737' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/338165248591667737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4757510160763150330/posts/default/338165248591667737'/><link rel='alternate' type='text/html' href='http://gdx-learning.blogspot.com/2008/01/ip-net-web-reference.html' title='取得本機對外IP位址 - 利用.NET web reference'/><author><name>GDX</name><uri>http://www.blogger.com/profile/16942415618236105271</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03786768153253520007'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>