tag:blogger.com,1999:blog-23650021003171960082024-03-21T22:04:53.689-07:00Program City @ fbukevin就也是一個念資訊的大學生,涉足領域在網路、資安、程設、系統、網設.....
Next City @ Veck:http://veck.logdown.com/fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.comBlogger42125tag:blogger.com,1999:blog-2365002100317196008.post-60815318081122688892014-02-26T00:19:00.002-08:002014-02-26T00:19:12.378-08:00Ubuntu Server 12.04 LTS 設定 iptables 實現 NAT Server<br>
情境:實驗室的 AP 原本有一個實體 IP,由於想讓實驗室其他設備也可以有網路但是不要佔用實體 IP,所以想架一個 NAT Server<br>
<br>
環境與 IP 配置:<br>
<br>
NAT Server: Ubuntu 12.04.3 LTS (GNU/Linux 3.8.0-29-generic x86_64)<br>
<span class="Apple-tab-span" style="white-space: pre;"> </span>-eth0: 對外,有一實體 IP (140.xxx.xxx.xxx)<br>
<span class="Apple-tab-span" style="white-space: pre;"> </span>-eth1: 對內,有一虛擬 IP (10.0.10.1)<span class="Apple-tab-span" style="white-space: pre;"> </span><br>
[不用 192.168.x.x 或 173.16.xxx.xxx 沒有特別原因]<br>
<br>
AP: TP-LINK TL-WR940N<br>
<span class="Apple-tab-span" style="white-space: pre;"> </span>-WAN: 對外,連接至 NAT Server 10.0.10.2<br>
<span class="Apple-tab-span" style="white-space: pre;"> </span>-LAN: 對內,DHCP 派發至各設備 192.168.x.x<br>
<br>
<a href="http://blog.veck.im/2014/02/ubuntu-server-1204-lts-iptables-nat.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-39028201991747992632014-02-11T06:07:00.000-08:002014-02-11T06:07:07.798-08:00Gawor LDAP Browser/Editor<br>
這是其中一種 Base on Java 的 LDAP Browser/Editor<br>
<br>
由 Jarek Gawor 發行<br>
<br>
好像還蠻有好評,但是<a href="http://www.novell.com/coolsolutions/tools/downloads/browser281.zip">載點</a>不容易找<br>
<br>
Requirement: Java Runtime Environment (JRE)<br>
<br>
下載回來以後解壓縮 zip 檔,進入資料夾<br>
<br>
在 Windows 底下可以直接點擊 lbe.bat 執行<br>
在 Linux 要開啟 Terminal,然後進入到資料夾,執行 lbe.sh ($ sh lbe.sh)<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br>
<a href="http://blog.veck.im/2014/02/gawor-ldap-browsereditor.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-33240916267191109202014-02-06T03:40:00.002-08:002014-02-06T03:50:19.446-08:00Market Studying<span style="color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 18.200000762939453px;">今天看到了 Sony 出售 VAIO 筆電部門,還有昨天看到 Google 將不久前方才收購的 Motorola 出售給聯想,</span><span style="color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 18.200000762939453px;">總覺得有種趨勢,所以試寫出來參考</span><br>
<span style="color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 18.200000762939453px;"><br>
</span> <span style="color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 18.200000762939453px;">早期的 PC 市場以 Windows 和 OS X 兩大商業系統為主流,但 OS X 在只有一家設備供應商的條件下屹立不搖並且鞏固了品牌的顧客忠誠度,相較起來 Windows 因為百家爭鳴,直至今日許多 Windows 陣營的公司都逐漸敗陣下來</span><br>
<br style="color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 18.200000762939453px;">
<span style="color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 18.200000762939453px;"><b>Smart Phone 市場與 Camera 市場也有很明顯的走勢</b></span><br>
<br>
<a href="http://blog.veck.im/2014/02/market-studying.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-66459250104208594862014-01-04T10:42:00.000-08:002014-01-04T10:48:31.611-08:00Ubuntu 用 Binary 的方式安裝 Tomcat<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Century Schoolbook L","serif"; mso-fareast-font-family: "Century Schoolbook L";">1. </span><span style="font-family: "Century Schoolbook L","serif"; mso-fareast-font-family: "Century Schoolbook L";">到<span lang="EN-US"> Apache Tomcat</span>官網下載<span lang="EN-US">
apache-tomcat-8.0.0-RC10-tar.gz<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Century Schoolbook L","serif"; mso-fareast-font-family: "Century Schoolbook L";"><br></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Century Schoolbook L","serif"; mso-fareast-font-family: "Century Schoolbook L";">2. </span><span style="font-family: "Century Schoolbook L","serif"; mso-fareast-font-family: "Century Schoolbook L";">解壓縮後放到<span lang="EN-US"> /opt</span>、<span lang="EN-US">/usr/local </span>或 家目錄下<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Century Schoolbook L","serif"; mso-fareast-font-family: "Century Schoolbook L";"><br></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Century Schoolbook L","serif"; mso-fareast-font-family: "Century Schoolbook L";">3. </span><span style="font-family: "Century Schoolbook L","serif"; mso-fareast-font-family: "Century Schoolbook L";">編輯<span lang="EN-US"> ~/.bashrc</span>,加入:<span lang="EN-US"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Century Schoolbook L","serif"; mso-fareast-font-family: "Century Schoolbook L";"> export TOMCAT_HOME=”[2 </span><span style="font-family: "Century Schoolbook L","serif"; mso-fareast-font-family: "Century Schoolbook L";">的路徑<span lang="EN-US">]”<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Century Schoolbook L","serif"; mso-fareast-font-family: "Century Schoolbook L";"> export PATH=”$PATH:$TOMCAT_HOME/bin”<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: "Century Schoolbook L","serif"; mso-fareast-font-family: "Century Schoolbook L";"> export CLASSPATH=”$TOMCAT_HOME/lib/jsp-api.jar:$TOMCAT_HOME/lib/servlet-api.jar:$CLASSPATH”</span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: 'Century Schoolbook L', serif;"> ( </span><span style="font-family: 'Century Schoolbook L', serif;">或是在<span lang="EN-US"> bin </span>中執行<span lang="EN-US"> setclasspath.sh )</span></span></div>
<div class="MsoNormal">
</div>
<br>
<a href="http://blog.veck.im/2014/01/ubuntu-binary-tomcat.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-57149169532326970832014-01-03T00:36:00.001-08:002014-01-03T00:37:30.236-08:00[Shared] Sinatra為何輕 <div class="MsoNormal" style="line-height: 22.2pt; mso-pagination: widow-orphan;">
<b><span lang="EN-US" style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 11.5pt; mso-font-kerning: 0pt;">Sinatra</span></b><b><span style="color: #333333; font-family: "新細明體","serif"; font-size: 11.5pt; mso-ascii-font-family: Verdana; mso-font-kerning: 0pt; mso-hansi-font-family: Verdana;">為何輕</span></b><span lang="EN-US" style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 11.5pt; mso-font-kerning: 0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 22.2pt; mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 11.5pt; mso-font-kerning: 0pt;">Sinatra </span><span style="color: #333333; font-family: "新細明體","serif"; font-size: 11.5pt; mso-ascii-font-family: Verdana; mso-font-kerning: 0pt; mso-hansi-font-family: Verdana;">採用</span><span lang="EN-US" style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 11.5pt; mso-font-kerning: 0pt;"> DSL </span><span style="color: #333333; font-family: "新細明體","serif"; font-size: 11.5pt; mso-ascii-font-family: Verdana; mso-font-kerning: 0pt; mso-hansi-font-family: Verdana;">語法,</span><span lang="EN-US" style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 11.5pt; mso-font-kerning: 0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 22.2pt; mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體","serif"; font-size: 11.5pt; mso-ascii-font-family: Verdana; mso-font-kerning: 0pt; mso-hansi-font-family: Verdana;">也啟發了其他程式語言的</span><span lang="EN-US" style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 11.5pt; mso-font-kerning: 0pt;">framework</span><span style="color: #333333; font-family: "新細明體","serif"; font-size: 11.5pt; mso-ascii-font-family: Verdana; mso-font-kerning: 0pt; mso-hansi-font-family: Verdana;">的建立。</span><span lang="EN-US" style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 11.5pt; mso-font-kerning: 0pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 22.2pt; mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #2161a0; font-family: "Verdana","sans-serif"; font-size: 11.5pt; mso-font-kerning: 0pt;"><a href="http://en.wikipedia.org/wiki/Sinatra_%28software%29#Frameworks_inspired_by_Sinatra"><span style="color: #2161a0; text-decoration: none; text-underline: none;">Frameworks inspired by Sinatra</span></a><o:p></o:p></span></div>
<div class="MsoNormal">
<br></div>
<div class="MsoNormal">
<span style="color: #333333; font-family: "新細明體","serif"; font-size: 11.5pt; mso-ascii-font-family: Verdana; mso-font-kerning: 0pt; mso-hansi-font-family: Verdana;">比較一下</span><span lang="EN-US" style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 11.5pt; mso-font-kerning: 0pt;"> rails 3 </span><span style="color: #333333; font-family: "新細明體","serif"; font-size: 11.5pt; mso-ascii-font-family: Verdana; mso-font-kerning: 0pt; mso-hansi-font-family: Verdana;">及</span><span lang="EN-US" style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 11.5pt; mso-font-kerning: 0pt;"> sinatra </span><span style="color: #333333; font-family: "新細明體","serif"; font-size: 11.5pt; mso-ascii-font-family: Verdana; mso-font-kerning: 0pt; mso-hansi-font-family: Verdana;">安裝時所要用的套件,</span><span lang="EN-US" style="font-family: 'Times New Roman', serif; font-size: 13.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: 22.2pt; mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體","serif"; font-size: 11.5pt; mso-ascii-font-family: Verdana; mso-font-kerning: 0pt; mso-hansi-font-family: Verdana;">在乾淨的</span><span lang="EN-US" style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 11.5pt; mso-font-kerning: 0pt;"> gem </span><span style="color: #333333; font-family: "新細明體","serif"; font-size: 11.5pt; mso-ascii-font-family: Verdana; mso-font-kerning: 0pt; mso-hansi-font-family: Verdana;">的環境下安裝</span><span lang="EN-US" style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 11.5pt; mso-font-kerning: 0pt;"> rails </span><span style="color: #333333; font-family: "新細明體","serif"; font-size: 11.5pt; mso-ascii-font-family: Verdana; mso-font-kerning: 0pt; mso-hansi-font-family: Verdana;">就裝了</span><span lang="EN-US" style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 11.5pt; mso-font-kerning: 0pt;"> 29 </span><span style="color: #333333; font-family: "新細明體","serif"; font-size: 11.5pt; mso-ascii-font-family: Verdana; mso-font-kerning: 0pt; mso-hansi-font-family: Verdana;">個</span><span lang="EN-US" style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 11.5pt; mso-font-kerning: 0pt;">gems</span><span style="color: #333333; font-family: "新細明體","serif"; font-size: 11.5pt; mso-ascii-font-family: Verdana; mso-font-kerning: 0pt; mso-hansi-font-family: Verdana;">:</span><br>
<span style="color: #333333; font-family: "新細明體","serif"; font-size: 11.5pt; mso-ascii-font-family: Verdana; mso-font-kerning: 0pt; mso-hansi-font-family: Verdana;"></span><br>
</div><a href="http://blog.veck.im/2014/01/shared-sinatra.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-30545047321113848172013-12-30T23:05:00.000-08:002013-12-30T23:05:44.392-08:00[Shared] A Tour of Google Cloud Platform (Colin Su)昨天上雲端程式設計與應用,老師請到了高手前輩來介紹 Google Cloud Platform,因為講解的很詳細,經得同意後將投影片分享過來<br />
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="356" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/29490805?rel=0" style="border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;" width="427"> </iframe> </div>
<div style="margin-bottom: 5px;">
<div style="text-align: center;">
<strong> <a href="https://www.slideshare.net/littleq0903/introduction-to-google-cloud-platform" target="_blank" title="A Tour of Google Cloud Platform">A Tour of Google Cloud Platform</a> </strong> from <strong><a href="http://www.slideshare.net/littleq0903" target="_blank">Colin Su</a></strong> </div>
</div>
<br />
<div style="text-align: center;">
NOTICE: 圖片請勿任意擷取使用!</div>
<br />
聽起來 GCP 很像是 Amazon 所提供的 AWS 服務,但是兩造各有優缺點,Google 的技術與服務品質絕對不會輸給 Amazon,不過我覺得兩者也都會有適合使用他們服務的客源<br />
<br />
Google Cloud Platform: <a href="https://cloud.google.com/">https://cloud.google.com/</a><br />
Amazon Web Services: <a href="http://aws.amazon.com/">http://aws.amazon.com/</a><br />
<br />fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com1tag:blogger.com,1999:blog-2365002100317196008.post-86109611016501327152013-12-06T22:30:00.000-08:002013-12-06T22:32:10.045-08:00布魯諾與帕保羅 The Story of Pipeline<div class="MsoNormal">
<span lang="EN-US"> </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">工作中間休息一下,把前天的一個經驗紀錄一下,我參加了富邦人壽的說明會,主要是想招募拉保險業務的新人,所以其實我沒有很有興趣,但是其中播放的一段影片讓我覺得很棒,是講述一個村莊的兩個年輕人,布魯諾與帕保羅的賺錢之道,有一天,村長聘僱了布魯諾和帕保羅兩個年輕人去對面的山上提水回來村莊中,每天的報酬依照挑水的量給,布魯諾是個高大力士,所以很滿意這樣的機會,並且思考著要將水桶加大,以及增加挑水次數,來增加一天的挑水量,他相信這樣子可以讓他更快賺夠實現夢想的財富;帕保羅可就不這麼想,他每天回來後手都酸得要命,而且感到精疲力盡,所以他想出了一個點子,他決定建造一條管道,將水從對面的山頭引來村莊中。</span></div>
<a href="http://blog.veck.im/2013/12/story-of-pipeline.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-23082669647930078172013-11-01T04:30:00.002-07:002013-11-01T04:30:51.751-07:00[Python] Python/C API On Linux Mint 今天第一次嘗試使用 Python/C API<br>
<br>
但是花了點時間處理 GCC 編譯器引入 Python.h 的問題<br>
-----------------------------------------------------------------------------------<br>
<br>
Python/C 是 Python 作為黏合語言的一個重點,要用 C 呼叫 Python 的模組,或是在 C 中使用 Python 語法,基本上需要透過這個 API ,其中有一個主要的 Header 叫做 Python.h,需要在其他標頭檔之前引入,接著就可以呼叫這個標頭檔中定義一些與 Python 有關的 C 函式了<br>
<br>
我實驗的平台是 Linux Mint x86_64 3.8.0-19-generic 、Python 2.7.4、GCC 4.7.3<br>
<br>
<a href="http://blog.veck.im/2013/11/python-pythonc-api-on-linux-mint.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com2tag:blogger.com,1999:blog-2365002100317196008.post-70292858047174462852013-09-23T09:51:00.001-07:002013-09-23T09:55:40.871-07:00[PHP] Twitter REST API (以Search API為例) – 使用 TwitterAPIExchange.php<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<span style="font-family: 新細明體, serif; text-indent: 0cm;">基本上作者有一份文件,教學講得還蠻完整的,這個專案還不停的在更新。</span></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<br></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">同樣的,要使用 </span><span lang="EN-US">Search API </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">撈取 </span><span lang="EN-US">twitter </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">的歷史</span><span lang="EN-US"> tweets</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">,必須要先到開發者網站去建立你的</span><span lang="EN-US"> Application </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">並取得</span><span lang="EN-US"> Consumer Key</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">、</span><span lang="EN-US">Consumer Secret</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">、</span><span lang="EN-US">Access Token </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">和</span><span lang="EN-US"> Access Token Secret<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<br></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">接著你需要到</span> <span lang="EN-US"><a href="https://github.com/J7mbo/twitter-api-php">TwitterAPIExchange</a> </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">的 </span><span lang="EN-US">GitHub </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">上去下載這個專案回來</span><br>
<br></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">你會發現這個專案的檔案數目比 </span><span lang="EN-US">Phirehose </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">少了很多</span><span style="font-family: "新細明體","serif"; text-indent: 0cm;">,最核心的也就只有 </span><span lang="EN-US" style="text-indent: 0cm;">TwitterAPIExchange.php </span><span style="font-family: "新細明體","serif"; text-indent: 0cm;">這支檔案</span></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<br>
</div><a href="http://blog.veck.im/2013/09/php-twitter-rest-api-search-api.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-62931115268801586442013-09-12T09:26:00.000-07:002013-09-12T09:26:08.408-07:00Twitter API:REST API & Streaming API<div class="WordSection1">
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<span lang="EN-US" style="text-indent: 0cm;"><a href="https://dev.twitter.com/docs">Twitter API</a> </span><span style="font-family: 新細明體, serif; text-indent: 0cm;">是</span><span lang="EN-US" style="text-indent: 0cm;">Twitter </span><span style="font-family: 新細明體, serif; text-indent: 0cm;">提供的一系列</span><span lang="EN-US" style="text-indent: 0cm;">Web API</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">服務,提供程式開發人員可以透過這些</span><span lang="EN-US" style="text-indent: 0cm;">API</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">來存取</span><span lang="EN-US" style="text-indent: 0cm;">Twitter</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">上的</span><span lang="EN-US" style="text-indent: 0cm;">tweets</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">,多數以</span><span lang="EN-US" style="text-indent: 0cm;">JSON</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">的格式回傳存取的資料,以比較常用的</span><span lang="EN-US" style="text-indent: 0cm;">Search API</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">和</span><span lang="EN-US" style="text-indent: 0cm;">Streaming API</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">為主,從</span><span lang="EN-US" style="text-indent: 0cm;">2013</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">年的</span><span lang="EN-US" style="text-indent: 0cm;">3</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">月開始,</span><span lang="EN-US" style="text-indent: 0cm;">Twitter API</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">更新為</span><span lang="EN-US" style="text-indent: 0cm;">1.1</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">版本,原本獨立的</span><span lang="EN-US" style="text-indent: 0cm;">Search API</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">和</span><span lang="EN-US" style="text-indent: 0cm;">Streaming API</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">也併入了</span><span lang="EN-US" style="text-indent: 0cm;">REST API</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">中,成為眾多</span><span lang="EN-US" style="text-indent: 0cm;">API</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">中的其中兩者。</span></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<br></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">因為</span><span lang="EN-US">1.0</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">版已經全面停用,所以這裡不再提</span><span lang="EN-US">1.0</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">版的用法。</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<br></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<span lang="EN-US">Search API </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">和</span><span lang="EN-US"> Streaming API </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">都是到</span><span lang="EN-US">Twitter</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">的資料庫中去撈推文,但是這兩者所撈的資料型態卻有所不同。</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<br></div>
<div class="MsoListParagraph" style="margin-left: 24.0pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -24.0pt;">
<!--[if !supportLists]--><span lang="EN-US">1.<span style="font-size: 7pt;"> </span></span><span lang="EN-US">Search API: </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">這個</span><span lang="EN-US">API</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">所存取的資料是</span><span lang="EN-US">Twitter</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">的歷史推文資料,一次最多可以查到</span><span lang="EN-US">100</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">個條目,預設為</span><span lang="EN-US">15</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">個</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-left: 24.0pt; mso-char-indent-count: 0; mso-list: l2 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -24.0pt;">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br></span></div>
<div class="MsoListParagraph" style="margin-left: 24.0pt; mso-char-indent-count: 0; mso-list: l1 level1 lfo2; mso-para-margin-left: 0gd; text-indent: -24.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;">l<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><!--[endif]--><span lang="EN-US">REST</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">中的條目是:</span><span lang="EN-US">GET search/tweets </span><span style="text-indent: 0cm;">(</span><a href="https://dev.twitter.com/docs/api/1.1/get/search/tweets" style="text-indent: 0cm;">https://dev.twitter.com/docs/api/1.1/get/search/tweets</a><span style="text-indent: 0cm;">)</span></div>
<div class="MsoListParagraph" style="margin-left: 24.0pt; mso-char-indent-count: 0; mso-list: l1 level1 lfo2; mso-para-margin-left: 0gd; text-indent: -24.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="font-family: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;">l<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><!--[endif]--><span lang="EN-US">API</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">的存取</span><span lang="EN-US">URL:<b> </b> https://api.twitter.com/1.1/search/tweets.json<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<br></div>
</div><a href="http://blog.veck.im/2013/09/twitter-apirest-api-streaming-api.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-67123477846552343342013-09-03T09:34:00.000-07:002013-09-12T09:27:25.080-07:00[PHP] Twitter Streaming API – 使用 Phirehose.php<div>
<br></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">要使用 </span><span lang="EN-US">Twitter Streaming API </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">來撈資料,首先還是要了解 </span><span lang="EN-US">Twitter Streaming API </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">是什麼,可以<span style="color: #38761d;"><!--看參考</span></span><span style="color: #38761d;"><b><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><a href="http://veckcode.blogspot.tw/2013/09/twitter-apirest-api-streaming-api.html#more">這裡</a></span></b><span lang="EN-US">(</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">因為我覺的官網說明還是有點模糊</span><span lang="EN-US">)</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">,或是直接</span>--></span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">去</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><a href="https://dev.twitter.com/docs/streaming-apis" target="_blank">官網</a></span></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<br></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<span lang="EN-US">Phirehose.php </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">是由 </span><span lang="EN-US">fennb (Fenn Bailey) </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">包裝的一個存取 </span><span lang="EN-US">Twitter Streaming API </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">工具,</span> </div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<br></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">要以使用 </span><span lang="EN-US">Twitter Streaming API</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">,有兩個除了可解讀 </span><span lang="EN-US">PHP </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">的伺服器外的預備工作:</span></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br>
</span></div>
<div class="MsoListParagraph" style="margin-left: 18.0pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">1.<span style="font-size: 7pt;"> </span></span><!--[endif]--><b><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">下載 </span><span lang="EN-US">Phirehose</span></b><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">:你可以直接到這個專案的 </span><span lang="EN-US">GitHub </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">下載 </span><span lang="EN-US">Zip </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">來用:</span><span lang="EN-US">https://github.com/fennb/phirehose </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">,下載回來的 </span><span lang="EN-US">Zip </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">解壓縮以後會有兩個資料夾和一些文字檔案,其中合新的檔案都在</span><span lang="EN-US">lib</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">資料夾中的三個,</span><span lang="EN-US">example </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">資料夾中的檔案是作者的示範 </span><span lang="EN-US">PHP </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">程式,我主要以 </span><span lang="EN-US">sample.php </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">做測試,只會用到 </span><span lang="EN-US">lib </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">中的 </span><span lang="EN-US">OauthPhirehose.php </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">和 </span><span lang="EN-US">Phirehose.php</span></div>
<div class="MsoListParagraph" style="margin-left: 18.0pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">2.<span style="font-size: 7pt;"> </span></span><!--[endif]--><b><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">取得認證鑰匙 </span><span lang="EN-US">Consumer Key</span></b><b><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">、</span><span lang="EN-US">Consumer Secret</span></b><b><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">、</span><span lang="EN-US">OAuth Access Token </span></b><b><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">和 </span><span lang="EN-US">OAuth Access Secret</span></b><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">:可以直接在開發者頁面的『</span><span lang="EN-US">My Applications</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">』那邊取得,也可以到 </span><span lang="EN-US">Streaming API </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">的三個 </span><span lang="EN-US">API (Public</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">、</span><span lang="EN-US">User</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">、</span><span lang="EN-US">Site) </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">頁面中的任何一個 </span><span lang="EN-US">Endpoints </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">頁面,中間右邊的 </span><span lang="EN-US">bar </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">會有一個 </span><span lang="EN-US">OAuth Tool</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">,那邊也會有你創建過的 </span><span lang="EN-US">Application </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">項目,選好 </span><span lang="EN-US">Application </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">按下 </span><span lang="EN-US">Generate </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">的按鈕,也可以得到這四個認證鑰匙。</span></div>
<div class="MsoListParagraph" style="margin-left: 18.0pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1; mso-para-margin-left: 0gd; text-indent: -18.0pt;">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"></span><br>
</div><a href="http://blog.veck.im/2013/09/php-twitter-streaming-api-phirehosephp.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com1亞洲24.726874870506972 120.805664062520.995019870506972 115.6420900625 28.458729870506971 125.9692380625tag:blogger.com,1999:blog-2365002100317196008.post-13717846671469052492013-07-29T04:22:00.000-07:002013-07-29T04:42:35.090-07:00又一種 ASP.NET 連接 MySQL 方法<div class="MsoNormal" style="margin-left: 18.0pt; mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
</div>
<ol>
<li><span style="font-family: 新細明體, serif; text-indent: -18pt;">安裝 </span><span lang="EN-US" style="text-indent: -18pt;">MySQL</span></li>
<li><span style="font-family: 新細明體, serif; text-indent: -18pt;">安裝 </span><span lang="EN-US" style="text-indent: -18pt;"><a href="http://dev.mysql.com/downloads/connector/odbc/">MySQL Connector/ODBC</a></span><br><span style="font-family: 新細明體, serif;">安裝完成的檢查:控制台</span><span lang="EN-US">\</span><span style="font-family: 新細明體, serif;">系統管理工具</span><span lang="EN-US">\</span><span style="font-family: 新細明體, serif;">資料來源</span><span lang="EN-US"> (ODBC)\</span><span style="font-family: 新細明體, serif;">驅動程式</span><br><span style="font-family: 新細明體, serif;">看看有沒有成功安裝</span><span lang="EN-US"> (</span><span style="font-family: 新細明體, serif;">捲軸往下拉,應該會有 </span><span lang="EN-US">Mysql
ODBC 5.1 Driver)</span></li>
<li><span style="font-family: 新細明體, serif; text-indent: -18pt;">建立資料庫、資料表、灌資料</span></li>
<li><span style="font-family: 新細明體, serif; text-indent: -18pt;">開啟 </span><span lang="EN-US" style="text-indent: -18pt;">VWD</span><span style="font-family: 新細明體, serif; text-indent: -18pt;">,建立 </span><span lang="EN-US" style="text-indent: -18pt;">ASP.NET Web </span><span style="font-family: 新細明體, serif; text-indent: -18pt;">應用程式</span></li>
<li><span style="font-family: 新細明體, serif; text-indent: -18pt;">在方案總管的<b>專案</b></span><span lang="EN-US" style="text-indent: -18pt;">(not</span><span style="font-family: 新細明體, serif; text-indent: -18pt;">方案</span><span lang="EN-US" style="text-indent: -18pt;">)</span><span style="font-family: 新細明體, serif; text-indent: -18pt;">上方按右鍵,選擇『加入參考』,切換到『瀏覽』標籤,搜尋位置『</span><span lang="EN-US" style="text-indent: -18pt;">C:\Program Files (x86)\MySQL\MySQL Connector Net x.x.x\Assemblies\</span><span style="font-family: 新細明體, serif; text-indent: -18pt;">』,看要進入哪個版本,找到『</span><span lang="EN-US" style="text-indent: -18pt;">Mysql.Data.dll</span><span style="font-family: 新細明體, serif; text-indent: -18pt;">』加入</span></li>
<li><span lang="EN-US" style="text-indent: -18pt;">xxx.aspx.vb </span><span style="font-family: 新細明體, serif; text-indent: -18pt;">加入</span><span style="text-indent: -18pt;"> </span><span lang="EN-US" style="text-indent: -18pt;">Imports MySql.Data.MySqlClient </span><br><span lang="EN-US">xxx.aspx.cs </span><span style="font-family: 新細明體, serif;">加入</span> <span lang="EN-US">using MySql.Data.MySqlClient;</span></li>
<li><span style="font-family: 新細明體, serif; text-indent: -18pt;">撰寫程式碼</span></li>
</ol>
<div class="separator" style="clear: both; text-align: left;">
成功執行連線與檢索畫面:</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://1.bp.blogspot.com/-oTaNS6JST5k/UfZNX44aLAI/AAAAAAAAC88/VON_4KO20yU/s1600/0.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="155" src="http://1.bp.blogspot.com/-oTaNS6JST5k/UfZNX44aLAI/AAAAAAAAC88/VON_4KO20yU/s320/0.JPG" width="320"></a></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<a href="http://blog.veck.im/2013/07/aspnet-mysql.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-75149956427169397212013-06-25T07:12:00.000-07:002013-06-25T07:15:49.541-07:00讓電腦成為Router<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<span style="font-family: 新細明體, serif;">繼前一篇-</span><span style="background-color: white; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"><a href="http://veckcode.blogspot.tw/2013/06/rj45.html">利用RJ45跳線連接兩台電腦-的相同理由</a>,本來只是想要讓筆電可以操作桌機的系統,後來就想進一步讓桌電可以透過筆電連出去網際網路。</span><br>
<span style="background-color: white; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"><br></span>
<br>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">第一步是開啟網路連線 ( 開啟網路共用中心 \ 變更介面卡設定 )</span></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<span style="font-family: 新細明體, serif; text-indent: 0cm;">在已經連線的網路項目上按右健,如下圖,這是比電上的網路連線,目前無線網路連線到的是中華電信的</span><span lang="EN-US" style="text-indent: 0cm;">Wifi AP – cht9147</span><span style="font-family: 新細明體, serif; text-indent: 0cm;">,區域網路是連線到另一台沒有連接任和網際網路的電腦上,進入內容中</span></div>
<div class="MsoNormal" style="mso-char-indent-count: 0; text-indent: 0cm;">
<span style="font-family: 新細明體, serif; text-indent: 0cm;"></span></div>
</div><a href="http://blog.veck.im/2013/06/router.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-5180949830372674032013-06-25T06:50:00.000-07:002013-06-25T06:50:58.339-07:00利用RJ45跳線連接兩台電腦<span style="text-indent: 12pt;">因為桌機沒有無線網路卡,又懶得再牽長線和設定上網,突然想要來試試看用跳線連接兩台電腦,這樣我就可以使用另桌機的資源,只需要讓筆電上網就好。</span>
<br>
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br></span>
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">現在已經很少人直接這樣連接電腦,連早期的</span><span lang="EN-US">RS-232</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">和</span><span lang="EN-US">Hub</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">也都被</span><span lang="EN-US">Router</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">和</span><span lang="EN-US">Switch</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">取代了</span><span lang="EN-US">(</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">下次想玩玩看</span><span lang="EN-US">RS-232)</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">,網路上普遍找到的是跳線的教學,設定的資料不多。</span>
<br>
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br></span>
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">首先還是簡單介紹一下兩種不同的</span><span lang="EN-US">RJ-45</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">埠雙絞線線序規格,也就是</span><span lang="EN-US">RJ-45</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">接頭內色線的排列方式,有兩種,一種是</span><span lang="EN-US">TIA/EIA-568-A (</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">簡稱</span><span lang="EN-US">T568A)</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">,另一種是</span><span lang="EN-US">TIA/EIA-568-B (</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">簡稱</span><span lang="EN-US">T568B)</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">。</span><br>
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 新細明體; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;"><br></span>
<br>
<div class="MsoNormal" style="text-indent: 12.0pt;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF4KMKNgeh1XOL-IlK6ktokp6y9qMhm19aKqonguxCUpgNAmmqpVQBJazbvlfWBeUhkX16pNqcUzdoW3iBp6iBXvMi9ZLCX24-HKC7BNVLkzncQ1AdbAqEmDyCa0Nat5w9xnPMReg5Ifg/s1600/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF4KMKNgeh1XOL-IlK6ktokp6y9qMhm19aKqonguxCUpgNAmmqpVQBJazbvlfWBeUhkX16pNqcUzdoW3iBp6iBXvMi9ZLCX24-HKC7BNVLkzncQ1AdbAqEmDyCa0Nat5w9xnPMReg5Ifg/s1600/1.PNG" height="290" width="400"></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
</div><a href="http://blog.veck.im/2013/06/rj45.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-63141697430500524532013-06-13T09:01:00.000-07:002013-06-13T09:21:27.715-07:00子網路遮罩 與 預設閘道 的功用<div class="MsoNormal">
<b><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">子網路遮罩</span></b><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">:</span><span style="font-family: 新細明體, serif;">主要是用來辨識某部主機所處的子網路。</span></div>
<div class="MsoNormal">
<span style="font-family: inherit;">( subnet mask )</span></div>
<div class="MsoNormal">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"><br></span></div>
<div class="MsoNormal">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">電腦傳送封包時</span><span lang="EN-US">, </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">必須判斷目的電腦是否位於相同的子網路</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">若不是在同一個子網路</span><span lang="EN-US">, </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">則必須先將封包送至路由器</span><span lang="EN-US">, </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">由路由器轉送至目的子網路</span></div>
<div class="MsoNormal">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;"><br></span></div>
<div class="MsoNormal">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">而判斷的方法就是靠子網路遮罩:</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">當傳送端要傳送時,</span><span style="font-family: 新細明體, serif;">他的網哪會將來源位址及目的位址分別與子網路遮罩做二進位的</span><span lang="EN-US"> AND </span><span style="font-family: 新細明體, serif;">運算,</span><span style="font-family: 新細明體, serif;">如此就可以判斷該封包的目的地是否是在與傳送端同一個子網路中</span></div>
<div class="MsoNormal">
<span style="font-family: 新細明體, serif;"><br></span></div>
<div class="MsoNormal">
<span lang="EN-US">(</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">子網路遮罩表示法跟網段很像,都是後面用</span><span lang="EN-US">/</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">標示兩個數字,但意義不同喔</span><span lang="EN-US">!)<o:p></o:p></span></div>
<br>
<div class="MsoNormal">
<span lang="EN-US"></span></div>
<a href="http://blog.veck.im/2013/06/blog-post.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-25744988496483501052013-06-08T23:18:00.001-07:002013-06-08T23:20:47.335-07:00Learn Git Branching Note (or Solution)<b><span style="font-size: large;">learn Git Branching</span></b> <a href="http://pcottle.github.io/learnGitBranching/" rel="nofollow nofollow" style="background-color: white; color: #3b5998; cursor: pointer; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; line-height: 17px; text-decoration: none;" target="_blank">http://pcottle.github.io/<wbr><span class="word_break" style="display: inline-block;"></span>learnGitBranching/</a><br>
<br>
這是老師及學長介紹的一個 Git 學習網站,作者自己設計了一些循序漸進的關卡來讓初學者在學習完解說的觀念以後,可以馬上實際操作,練習使用 Git 的命令<br>
<br>
因為分成了五大部分,所以分別建立了五份檔案紀錄我在學習時的一些筆記:<br>
<br>
<a href="http://blog.veck.im/2013/06/learn-git-branching-note-or-solution.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-40981791714213101622013-06-01T05:56:00.000-07:002013-06-01T05:56:57.829-07:00Abstract - On the Criteria To Be Used in Decomposing Systems into Modules<div class="MsoNormal">
<span lang="EN-US"> </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">這篇文章主要在敘述如何透過模組化一個系統,使得其在開發上更有彈性與快速,且在開發階段可以更加容易地理解系統各部分,這篇文章中所謂的『模組化』是在作者所提出的幾項原則下對一個系統做分解,搭配作者提出的例子</span><span lang="EN-US">-KWIC index (Key Word In Context index)</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">的兩種分解方式,來理解非傳統的分化相較於傳統的方式有什麼樣的優點。</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"> </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">近期</span><span lang="EN-US">(</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">根據文章著作年代,應該是</span><span lang="EN-US">1972</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">年</span><span lang="EN-US">)</span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">的模組化程式設計發展,主要著重在程式碼撰寫的技巧和組譯技術的改進,然而對於多數的系統開發而言,最常使用的則是高度模組化程式。</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"> </span><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">對於模組化程式設計,我們期望可以達到三個效果:</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 42.0pt; mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">(1)<span style="font-size: 7pt;">
</span></span><!--[endif]--><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">分工及縮短開發時程</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 42.0pt; mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">(2)<span style="font-size: 7pt;">
</span></span><!--[endif]--><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">彈性的功能調整</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 42.0pt; mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">(3)<span style="font-size: 7pt;">
</span></span><!--[endif]--><span style="font-family: "新細明體","serif"; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri;">更容易地了解整個系統</span><br>
</div><a href="http://blog.veck.im/2013/06/abstract-on-criteria-to-be-used-in.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-53609312838744046762013-05-31T01:56:00.000-07:002013-05-31T03:14:22.733-07:00Apache Lucene-4.3.0 Note<br>
<下載與設定><br>
<ol>
<li>先到<a href="http://lucene.apache.org/core/" target="_blank">官方網站</a>下載<a href="http://www.apache.org/dyn/closer.cgi/lucene/java/4.3.0" target="_blank"> Lucene </a>(目前為 4.3.0),Windows 上下載 .zip</li>
<li>下載回來以後解壓縮 .zip</li>
<li>根據官網說明,進入解壓的資料夾以後,分別在 /core、/demo、/analysis/common 和 /queryparser (不是 /queries) 四個子資料夾中可以找到 lucene-core-4.3.0.jar、lucene-demo-4.3.0.jar、 lucene-analyzers-common-4.3.0.jar 和 lucene-queryparser-4.3.0.jar 四個 jar 檔案 (tar.gz 會有點不一樣)</li>
<li>將這四個檔案 "copy" 到你安裝 JDK 的 lib 資料夾中 (*1)</li>
<li>將這四個檔案在 lib 中的絕對路徑加到 Java 的 CLASSPATH 設定中 (例如:C:\Program Files\Java\jdk1.7.0_05\lib\lucene-core-4.3.0.jar,別忘記要加 .jar 喔!如果你是直接複製檔名的話)</li></ol><a href="http://blog.veck.im/2013/05/apache-lucene-430.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com1tag:blogger.com,1999:blog-2365002100317196008.post-5314247068375028922013-04-20T05:21:00.003-07:002013-04-20T05:23:55.620-07:00Elevator Scheduling (1)<br>
下午去吃飯回來搭電梯時,因為電梯剛好在二樓,我就直接按鈕進去了<br>
<br>
當我到了六樓,一出來就發現有人在等電梯,我突發奇想,思考一個可能性,就是會不會他們其實剛好正要按電梯按鈕,但是就只是差那麼個幾秒鐘,導致我先搶到電梯了?<br>
<br>
那麼假如今天剛好相反過來,我慢了一點,電梯明明在二樓,我就只能眼睜睜看著它先到六樓再下來載我嗎?<br>
<br>
我開始思考延遲電梯反應時間的可能性<br>
<br>
讓可能只是誤差非常小的時間範圍內,可以讓慢了一點的我還是可以先搭到電梯,然後到了六樓以後再換六樓的人搭下來,結果光是在Word上邊寫邊想就花了我兩個小時左右的時間,以下是我的思考結果,之前在圖書館搭電梯就曾經對三部電梯的調度提過問題,可惜當時沒有那麼無聊好好思考和紀錄,現在就可以當參考了<br>
<br>
有聽過<a href="http://en.wikipedia.org/wiki/Elevator_algorithm" style="text-decoration: none;" target="_blank"><span style="color: #6fa8dc;"><b>電梯演算法</b></span></a> (Elevator Algorithm),還有個有名的人物 <span style="background-color: white; font-family: arial, sans-serif; font-size: x-small; line-height: 16px;"><a href="http://online.wsj.com/article/SB10001424127887324469304578143200385871618.html" style="text-decoration: none;" target="_blank"><span style="color: #6aa84f;"><b>Theresa Christy</b></span></a></span>,會不會其實這個問題早就克服了呢?<br>
<br>
<a href="http://blog.veck.im/2013/04/elevator-scheduling-1.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com1tag:blogger.com,1999:blog-2365002100317196008.post-62610808065540682782013-04-19T20:02:00.000-07:002013-04-19T20:02:56.072-07:00Shell 內建命令 (Shell Built-in Command)<br>
<br>
Shell Built-in Command 是指與 shell code 寫在一起編譯成,屬於 shell 這個 program 本身功能的指令,在Windows中稱為 internal command,例如:cd, exit, umask, alias 等等,<span style="background-color: white;">這種內建在 shell 程式碼內的功能無法在 shell 中使用 execv() 去呼叫外部程式的方式執行</span><br>
<br>
<span style="background-color: white;"><Shell.c></span><br>
<span style="background-color: white;">int main()</span><br>
<span style="background-color: white;">{</span><br>
<span style="background-color: white;"> ...</span><br>
<span style="background-color: white;"> if( strcmp(cmd, "cd") == 0)</span><br>
<span style="background-color: white;"> cd(pathname);</span><br>
<span style="background-color: white;"> ...</span><br>
<span style="background-color: white;">}</span><br>
<span style="background-color: white;"></span><br>
<a href="http://blog.veck.im/2013/04/shell-shell-built-in-command.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-23563754226970622712012-11-01T21:20:00.002-07:002013-11-01T02:44:20.733-07:00[離散] Planar Graph and Coloring Theorem<b>Problem 1:</b> Show that the graph is not planar, and find a subgraph homeomorphic to <span style="font-size: xx-small;">K3,3</span>.<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg34F69454VWcA7aXERCeVvb3LMuM7e-kjC88yq_-MuUBeC0b5DACOhl62CQD87aLu_lVc5OPJ-USper_tALxGwVeMkAM4CNoqUkok8V20T2fZqjL2ZvO8oKinnzainBGUdC3jbonktPVk/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg34F69454VWcA7aXERCeVvb3LMuM7e-kjC88yq_-MuUBeC0b5DACOhl62CQD87aLu_lVc5OPJ-USper_tALxGwVeMkAM4CNoqUkok8V20T2fZqjL2ZvO8oKinnzainBGUdC3jbonktPVk/s320/1.png" width="320"></a></div>
<br>
<div class="separator" style="clear: both; text-align: center;">
<br></div>
<br>
NOTE 1 : Although there is no <span style="background-color: white; color: #222222; font-family: arial, sans-serif; line-height: 16px;"> </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; line-height: 16px;">Δ (Triangle), we should not only check e </span><span style="background-color: white; font-family: inherit;"><span style="line-height: 22.066667556762695px; text-align: center;"> </span><span style="line-height: 22.066667556762695px; text-align: center;">≤ 2 v - 4, but also check e </span></span><span style="background-color: white; line-height: 22.066667556762695px; text-align: center;"><span style="font-family: inherit;">≤ [ k / (k-2) ] * (v - 2).</span></span><br>
<a href="http://blog.veck.im/2012/11/planar-graph-and-coloring-theorem.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-65558265235096253752012-11-01T02:09:00.000-07:002013-11-01T02:44:30.051-07:00[離散] Euler Circuit and Hamiltonian Cycle ProveThis is my note for learning and proving Euler Circuit and Hamiltonian Cycle problems.<br>
<br>
<b>Problem 1</b>: Given a 2-dimension mesh graph of m rows and n columns as follows (m>2, n>2)<br>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLjMjviXbTBmhiF0uzgOyr2GLellmm88fxyfrP3bcjK09Iq2kqPA580dv4ieLIh30GHLFF5HN4ASnbh_UlQVtQvdalnIum3XYkH_5d0XALvpxB3y_7K4JboThaVMddiilFmUgEgp26p40/s1600/%E6%93%B7%E5%8F%96.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLjMjviXbTBmhiF0uzgOyr2GLellmm88fxyfrP3bcjK09Iq2kqPA580dv4ieLIh30GHLFF5HN4ASnbh_UlQVtQvdalnIum3XYkH_5d0XALvpxB3y_7K4JboThaVMddiilFmUgEgp26p40/s1600/%E6%93%B7%E5%8F%96.JPG"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Courtesy of <a href="http://www.aya.or.jp/~babalabo/Hamilton/Draft1-2.html">http://www.aya.or.jp/~babalabo/Hamilton/Draft1-2.html</a></td></tr>
</tbody></table>
(a) Please show that if both m and n are even number, the mesh graph doesn't contain an Euler Circuit.<br>
(b) Please show that if both m and n are even number, the mesh graph doesn't contain an Euler Trail.<br>
(c) Please show that if both m and n are even number, the mesh graph contains a Hamiltonian Cycle.<br>
(d) Please show that if both m and n are odd number, the mesh graph contains a Hamiltonian Path.<br>
<br>
<b>Proof : </b><br>
<a href="http://blog.veck.im/2012/11/euler-circuit-and-hamiltonian-cycle.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com1tag:blogger.com,1999:blog-2365002100317196008.post-7206698238277774762012-07-24T08:41:00.000-07:002012-07-24T08:49:43.887-07:00環境變數 Path 的應用(小兒科篇,單純覺得這樣應用很有趣 !!! ^<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: x-small; line-height: 16px;">ω</span><span style="background-color: white;">^)</span><br>
<br>
相信大部分的人都寫過 Java,在安裝完 JDK 以後,都一定要做一件事情,也就是到我的電腦去把 javac.exe 和 java.exe 這兩個執行檔所在的目錄 bin 這個相對路徑加入系統的環境變數中,甚至有些系統中會自動幫你加入,所以很多人只知道要這麼做,好讓你在使用命令提是字元編譯和執行 java 程式的時候可以直接輸入 java 和 javac 對原始碼進行處理,不過其實這個 Path 的用途最主要是用來讓系統搜尋 "指令程式" 用的。<br>
<br>
一般我們在命令提示字元輸入的指令,大部分都是作業系統自動在所有 Path 變數中指定的目錄下尋找與輸入的指令名稱相同的可執行檔或批次檔,並執行它工作,所以 Java 的環境變數才會要求要把 javac.exe 和 java.exe 所在的目錄 bin (這個名稱的目錄底下一般都存放可執行檔)路徑給加入到 Path 中。<br>
<br>
<a href="http://blog.veck.im/2012/07/path.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-80859343387575743952012-07-03T02:12:00.000-07:002012-07-03T02:15:00.737-07:00Astyle (Artistic Style) - C/C++/C# 和 Java 程式碼排版工具<br>
<br>
有個學弟請我幫他 Debug,昨天看他的程式碼時,沒有排版真的讓我感到有點麻煩,所幸 Notepad++ 上下括號反紅的功能減輕了我的負擔,但是今天他又來敲我,我開了檔案以後,又是一陣眼花撩亂,沒有裝外掛,也沒有用其他IDE,我找到了一個程式-<a href="http://astyle.sourceforge.net/"><span style="color: #b45f06;">Artistic Style</span></a> (astyle),它是一個可以獨立運作的排版程式,用C++撰寫,程式碼開源,可以對 C, C++, C# and Java 進行排版以後產生新的檔案,雖然在 Linux 底下,vim 或 vi 的 "gg=G" 已經可以完成這項工作,在 Mac 和 Windows 中應該也都有 IDE 或是 Plugin 可以達成,但是鮮少見到這樣輕量的小程式,而且還是用幾個簡單的 C++ 撰寫成的,所以就來介紹一下囉!<br>
<br>
<a href="http://blog.veck.im/2012/07/astyle-artistic-style-ccc-java.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0tag:blogger.com,1999:blog-2365002100317196008.post-57157289002912120412012-07-02T17:32:00.000-07:002012-07-02T17:33:49.770-07:00Linear Algebra - Trace of 2 Matrices Multiply在線性代數中,一個 n x n 矩陣 A 的<span style="color: orange;"> <a href="http://zh.wikipedia.org/wiki/%E8%B7%A1">trace</a></span> (跡) 等於該矩陣主對角線(最左上至最右下)上各個元素的總和,一般記作 tr(A) 或 Sp(A):<br>
<br>
tr(A) = a1,1 + a2,2 + ...+ an,n = <span style="font-family: inherit;">Σaii, for all i = 1 to n</span><br>
<span style="font-family: inherit;"><br></span><br>
<span style="font-family: inherit;">假如有兩個矩陣 A </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; line-height: 16px;">∈ F(mxn), B</span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; line-height: 16px;">∈F(nxm),則 tr(AB) = tr(BA)</span><br>
<span style="color: #222222; font-family: arial, sans-serif;"><span style="line-height: 16px;">以 C 程式實做如下:</span></span><br>
<a href="http://blog.veck.im/2012/07/linear-algebra-trace-of-2-matrices.html#more">閱讀更多 »</a>fbukevinhttp://www.blogger.com/profile/05532388790974896442noreply@blogger.com0