撰寫一個只會畫直線的程式
目前分類:電腦軟體程式設計 (15)
- Jul 07 Mon 2008 22:56
畫直線的程式 For Python
這個程式很簡單,比之前的計算機範例程式還要小,計算機的程式主要是讓我們練習如何控制按鈕,如何使用Python的GUI工具,並熟悉其開發環境。BOA Constructor是一個相當好用的Pyhton圖形整合工具,這一次我練習了如何控制滑鼠的動作與如何在視窗上面畫圖,程式的內容很短,功能也相當簡單。關於畫直線的程式需要注意的一點就是視窗資料的重繪,如果視窗中的圖形沒有重繪,當你改變該視窗的大小時,之前所繪製的直線都消失了,所以必須重繪。
- Jul 06 Sun 2008 17:03
Flash 與 Python
與Flash的第一次接觸
最近使用Flash撰寫一些程式,實在不是很會用,寫得很差,到處參考別人的文件,東拼西湊的,最後終於完成了一個小小的作品。這篇文章的目的用途是當做使用紀錄,供日後參考用的技術文件,畢竟人事健忘的動物。這次使用Flash的目的,是使用Flash提供的Web Service的能力,利用這個能力與SOAP Server連接並做資料的存取。而這篇文章將以一個極簡單的範例來說明如何透過Flash取得想要的資料。關於SOAP Server的製作請參考之前撰寫的"Pyhon的SOAP Library"這篇文章,這篇文章有教大家如何使用python這個程式語言實作一個RPC Server,提供其他程式作遠端呼叫。當然我也會在這篇文章中簡述RPC Server的製作,而我會使用不同的方式來架構RPC Server,與之前介紹使用Python 的 SOAP Library的用法有些不同,我將使用python內建的函式庫來實作該Server。
前言:
- Jul 05 Sat 2008 09:01
每個程式設計師都可以是駭客
現在的駭客主要的目的不是在破壞一個網站,而是設法在網站中得到一些權限,存取該網站中有用的資料。這篇文章主要的目的是跟大家說明網路管理和網路安全的重要,而我測試的網站是我們學校的網路硬碟,該缺點校方也應我的發表而修復,故目前並無此漏洞,大家也不必去嘗試。當然在我測試的過程中,可以取得每個學生上傳上去的作業、影片和私密資料,連老師放在網路硬碟中的評分表與未來方針與學校未來的規劃都可以拿到,所以等於是擁有很大的權限。給所有網管人員一句話:不要為了別人的方便而隨便開放某些特定的功能,否則可能會造成系統的不安全。當然程式設計師在設計程式時多多少少都會留下一些 bug,當然我也不例外,我也常常寫出一些有問題的程式,但狀況比較少,因為我已經反覆思考過可能存在的問題。或許只要你多了解一些程式語言,多看一些別人寫的程式,你應該可以避免自己的一些問題。
- Jul 05 Sat 2008 07:23
連鎖反應 For Python
Python XMLRPC之連鎖反應
利用XMLRPC套件可以完成電腦間資料的傳遞,正如之前所提到的文章,Java程式可以透過XMLRPC的方式將資料傳送給Python程式,讓Pyhton程式來處理並回傳資料給Java程式。今天要跟大家分享的東西並不是這個,如果對這項技術有興趣請參閱之前的文件。現在要跟大家討論的是如何將同樣的一個工作分散到不同機器或者是分散到不同的處理程序(Process不是Thread)進行資料處理,所應用的技術是XMLRPC。假設大家對Pyhotn程式語言有基本的認識,Python內建函式庫中有一個xmlrpcLlb的函式庫可以使用,利用這個函式庫就可以達到資料分散處理的目的。當然你也可以找到Python的SOAP函式庫同樣可以達到目的。
程式內容很簡單,包含一個主程式跟數個分散處理資料的子程式,主程式的名稱叫clientMain.py,其他子程式依據所開的port number來命名,60000.py表示port number=60000,以此類推,要執行這個程式,首先先將60000.py、60001.py....依序執行啟動,最後啟動clientMain.py的主程式,這個主程式會呼叫port number=60002下的echo這個函式,而port number=60002下的echo會叫用port number=60001下的echo,這樣往下叫下去,將原本的大問題拆解成數個小問題,個別擊破,當然你可以將60000.py放在一台電腦中執行,60001.py放在另一台電腦中執行,以達到分散處理的好處。
- Jul 05 Sat 2008 06:40
實戰一 For Python
模擬自動販賣機的程式
這個程式應該是目前我寫過最大的Python的視窗程式,雖然大但是卻沒做什麼事情,只是控制幾個不起眼的按鈕,跳出幾個設定的視窗介面。這個程式比較令人頭大的是販賣機的"找錢系統",應為販賣機只能給付一定數量的銅板和紙鈔,而且所找回的金額只能由特定面額的紙鈔與銅板來給付,所以比較麻煩。關於視窗介面我們是使用Boa Constructor這個工具軟體來協助建立,利用這個工具幫我們產生販賣機的使用者介面,並完成所有的程式設計。目前已經初步完成這個程式,功能上大致是正常的,"找錢系統"應該能正常工作,程式的進入點是MainApp.py,請點選MainApp.py這個程式執行(因為太多檔案,怕有人不知主程式是哪一個,在此說明),尚須改進的地方:
- Jul 05 Sat 2008 01:56
圖形化整合編輯介面 For Python
- Jul 05 Sat 2008 01:33
影像處理模組 For Python
- Jul 05 Sat 2008 00:42
TKinter 圖型化視窗程式設計 For Python
這個資料也是在我研究所時期所作的一些研究,因為當時要用 Python 撰寫一些程式,又苦無視窗介面所以閱讀了這個視窗環境的資料。
完成TKinter程式需要做捯下面三件事情:
import Tkinter #將TK模組載入
- Jul 05 Sat 2008 00:15
mysql資料庫模組 For Python
- Jul 04 Fri 2008 23:45
一個即時通訊API Jabber For Python
這是一個類似 MSN的東西,有一個Server可以交換聊天者的訊息,這個資料是之前我在大學的時候研讀的,我曾在我的實驗室裡將 Jabber server 建置完成,大家可以透過這個 server 聊天交換訊息。
- Jul 04 Fri 2008 23:30
ZODB 一個好用的物件資料庫 For Python
如何執行ZODB SERVER
- Jul 04 Fri 2008 23:00
Python 程式語言簡介
最近這陣子我可能會先爲大家簡介 Python 這個程式語言,順便幫自己複習一下, 好像 Google 的程式引擎似乎是用這個程式語言實作的,所以先來參透這項程式語言,並介紹有哪些好用的工具與方法。
Python內建函數
- Jul 04 Fri 2008 22:15
VLSI 程式設計介紹
模擬 Java Vartual machine,設計一個堆疊結構,包含:push, pop, peep等功能
現在 Google 推的 Android 上的 VM 已經不是使用堆疊架構而是使用暫存器的方式來實作。
- Jul 04 Fri 2008 22:05
Java 程式語言介紹
Application
程式的進入點public static void main(String args[]){...}
import javax.swing.JOptionPane;主要是產生圖形介面,JOptionPane.showMessageDialog(null,'Hello!\nJava!'); 的功能是彈出一個訊息對話盒,內容為Hello
Applet
- Jul 04 Fri 2008 21:45
REBOL 程式語言介紹
REBOL這個語言十分精巧,整個程式的編譯器也十分小,但是功能很強大,要執行它的程式只要花不到300k的硬體空間安裝一個小小的直譯器,再花300k裝一些其他的東西,總大小並不超過600k的小工具,跟龐大的.net(安裝完需要2.0G)比起來真是大大的減少硬碟空間,這麼小的程式到底能夠做什麼我一開始也很懷疑,因為好奇心的驅使下就嘗試,以下是我對它的功能的簡單說明,它的功能好像很多,一時之間也沒辦法讓我實驗完畢,我只先將我這幾天所體驗的結果做成以下紀錄。
我最先接觸到的功能就是它的網路能力,沒想到從網路上讀取檔案資料會如此簡單方便
print read http://www.ttu.edu.tw
以上這一行紅色的程式是從網路中讀取http://www.ttu.edu.tw的首頁,並將原始碼印出來,就僅僅只需要一行程式竟然就可以將遠方的資料像開啟你自己本機的資料不費力。
send g9106028@mail.ttu.edu.tw read http://www.ttu.edu.tw
我最先接觸到的功能就是它的網路能力,沒想到從網路上讀取檔案資料會如此簡單方便
print read http://www.ttu.edu.tw
以上這一行紅色的程式是從網路中讀取http://www.ttu.edu.tw的首頁,並將原始碼印出來,就僅僅只需要一行程式竟然就可以將遠方的資料像開啟你自己本機的資料不費力。
send g9106028@mail.ttu.edu.tw read http://www.ttu.edu.tw