跳到主要內容

發表文章

目前顯示的是 2月, 2020的文章

改用 Python 顯示3D 學生座位成績表

以前有使用過用 gnuplot 來繪製校務系統的座位成績圖,改用 python 搭配 matplotlib 來繪製新的 3d 圖形 程式碼: import sys import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm from matplotlib.ticker import LinearLocator, FormatStrFormatter with open("grade_data/sm2-1.txt", "r") as f:     mydata = f.readlines() x = [] y = [] z = [] for myline in mydata:     if myline[0] != '#':         tmp = myline.split()         x.append(int(tmp[5]))         y.append(int(tmp[6]))         z.append(float(tmp[4])) bottom = np.zeros_like(z) width = depth = 0.5 fig = plt.figure() cmap = cm.get_cmap('CMRmap') max_h = np.max(z) min_h = np.min(z) co = [cmap((k - min_h)/max_h) for k in z] ax = fig.add_subplot(projection='3d') ax.bar3d(x, y, bottom, width, depth, z, shade=True, color=co) ax.grid(True) plt.xlabel("X") plt.ylabel("Y") ax.set_title("n = %s , mean = %s, std = %s" %(len(

Apache 採用 LDAP 認證

最近因為無線網路認證的需求,把 Freeradius 和 OpenLDAP 再重新架設起來。 無線網路的部份是藉由 pfSense 防火牆的 Captive portal (網頁認證) 功能,將防火牆內的 client 都事先導到 Freeradius 去做認證,使用者的帳號和密碼由 OpenLDAP 儲存。 使用者的帳號、密碼分成兩個群組: 教師部份:專任教職員同電子郵件規則,兼任教師則需向資訊組申請一組帳號密碼。 學生部份:同學生網路空間,以“st學號”為帳號,身份證字號(英文大寫)為密碼 除了無線網路部份,最近在學校的 Apache http server 上實驗 LDAP 權限管制成功。 OS:Ubunt Linux,Server:Apache 2 要使用 LDAP 前,需要先啟用 mod_ldap 和 mod_authnz_ldap 在需要作權限管制的路徑上(我是放在 <Directory>…</Directory> 的設定裡,一般看到的使用說明都是<Location>…</Location>)加上 ldap 設定:  AuthType basic  AuthName "LDAP auth"  AuthBasicProvider ldap  AuthLDAPUrl "ldap://LDAP_IP:Port/basedn?attribute?scope?filter  Require valid-user    

安裝 MariaDB (瑪莉亞資料庫) 系統

最近資料組終於可以買新的電腦來逐步取代舊的伺服器系統。新電腦的作業系統採用 Ubuntu 11.04 amd64 版本,在安裝的過程中,看到網路有 MySQL 被 Oracle 併購,原本的設計工程師發展另一套資料庫系統:MariaDB的消息(這算是舊…舊聞了),因此趁著有新電腦的機會,打算採用 MariaDB 來取代 MySQL 來測試看看。  [@more@]在 Ubuntu 官方的套件庫中並無 MariaDB的套件,所以要先到 MariaDB 的官方網站: http://mariadb.org/   官網中有提供 MariaDB 的第三方套件庫,可以加到 apt 的 source.list中,利用 apt-get 的指令安裝 MariaDB。選擇 Download   把產生的套件source list加到apt的設定中。 要安裝 MariaDB之前,還要再安裝第三方套件庫的金鑰。 參考: http://kb.askmonty.org/v/installing-mariadb-deb-files sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 1BB943DB 金鑰安裝完成後,就可以用 apt-get 安裝 MariaDB sudo apt-get update sudo apt-get install mariadb-server-5.2 把新電腦的資料庫系統換過來後,用測試環境來跑一兩天,看起來好像都沒有問題,因為 MariaDB 號稱完全相容於 MySQL,所以連原本的程式也不用修改。再把網誌的系統也併更改過來,原本的資料庫也都可以正常運作。看起來好像可以無痛且無縫升級。  

ubuntu ssl 憑證製作

因為學校參加資策會「高中職資訊安全管理」試辦,配合相關資訊安全政策,校務系統將改為 https 加密網頁的瀏覽方式。 雖然 Linux 伺服器中的 Apache 網頁伺服器已經有運行系統預設的 https 站台,用的 SSL 憑證是預設的,有點不是很符合實際狀況。 打算製作屬於學校本身的 SSL 憑證,雖然還是自我簽發,但簽發單位至少署名是大同高中。 SSL 憑證製作的過程參考: http://blog.yam.com/hn12303158/article/16457837   ","ubuntu ssl 憑證製作","因為學校參加資策會「高中職資訊安全管理」試辦,配合相關資訊安全政策,校務系統將改為 https 加密網頁的瀏覽方式。 雖然 Linux 伺服器中的 Apache 網頁伺服器已經有運行系統預設的 https 站台,用的 SSL 憑證是預設的,有點不是很符合實際狀況。 打算製作屬於學校本身的 SSL 憑證,雖然還是自我簽發,但簽發單位至少署名是大同高中。 SSL 憑證製作的過程參考:http://blog.yam.com/hn12303158/article/16457837

99年合氣道頒證授段帶

總算拿到合氣道黑帶初段了。 頒證與授段典禮10/24在雙蓮國小大同合氣道館舉行,還加一次的研修。

99年合氣道秋季晉段測驗

總算自己練合氣道要升黑帶初段了,99年10日3日在中山運動中心考晉段。 過程有夠緊張,後方雙手抓的四方摔前方抓錯手 ,反手摔還脫手 ,不過其他的部份還算順利,應該可以順利晉段!     有外國人考喔  [@more@] ","99年合氣道秋季晉段測驗","總算自己練合氣道要升黑帶初段了,99年10日3日在中山運動中心考晉段。 過程有夠緊張,後方雙手抓的四方摔前方抓錯手,反手摔還脫手,不過其他的部份還算順利,應該可以順利晉段!     有外國人考喔

校務系統使用的幾個附加功能程式

校務系統結合數個知名的javascript或php程式來增加功能,最近陸續利用時間查看是否有更新,以便更新最新的版本。發現有部份程式的官方網站忘記了,還要利用google大神找出來…而且也忘了當初是如何和校務系統裡面的資料接軌,從頭再把程式推演一遍慢慢修改。先把這些系統的網站記下來當作備忘,之後再把各個系統與校務系統資料交換的方式也記下來,以後也好參考。 一、編輯器(Ckeditor): 網址: http://ckeditor.com/ 用於校務系統公告、訊息等輸入的線上編輯器。 二、DHTML UI: 網址: http://www.dhtmlx.com/index.shtml 用在學生資料的顯示上,不過它提供的 UI 項目很多,找時間把其他的控制項也放上去。 三、Email Function (phpmailer): 網址: http://phpmailer.worxware.com/ 校務系統線上發信功能。 四、編輯器(Tinymce) : 網址: http://tinymce.moxiecode.com/ 用於網誌系統的內容編輯器。 五、Ajax函式組(Mootools): 網址: http://mootools.net/ 用於首頁中 Ajax 功能 六、線上繪圖函式組(JpGraph): 網址: http://jpgraph.net/ 用於校務系統線上繪圖功能(成績單、各科人數…等)

利用gnuplot製作3d圖形

最近班級的第一次月考成績出爐,想說看看月考成績和班級座位是否有任何關係,找出 gnuplot 這套強大的函數繪圖軟體來作圖觀察看看。 做出的圖形如下,還真的可以看出座位表和成績之間的關係呢。 把製作的過程記起來,以免以後忘記了。 [@more@] 這個製作的過程很早之前就試過了,還在校務系統的程式上多加上成績項目和座位表的報表輸出的功能。因為 gnuplot 是利用指令作圖,太久沒用幾乎都忘光了,所以把完整的過程記錄下來當作以後的參考。 1.下載 gnuplot gnuplot 的官方網頁: http://www.gnuplot.info/ 到 sourceforge 下載最新版 下載後,將壓縮檔解開後,在「bin」資料夾內就有gnuplot的執行程式「wgnuplot.exe」。 2.至校務系統下載成績檔 校務系統內的「課程中心」的成績功能裡,有各項成績報表匯出的功能。 匯出的成績報表裡包含學生資料、成績和座位行列。 匯出的資料是純文字格式,資料用「Tab」分隔,共有7欄,有#開頭的行是註解,並不會用在繪圖。 其中成績是第5欄,座位是6, 7欄,定位的方式是站著講台往學生方向,坐標原點在左下方。其中第6欄是X,第7欄是Y。 把資料存成純文字檔,例如檔名:testdata.txt,放在gnuplot主程式同一個資料夾內。 3.執行 gnuplot   gnuplot主要是利用命令來執行繪圖的動作。 輸入「splot "testdata.txt" using 6:7:5」利用testdata.txt 中第6,7,5欄的資料順序來繪製3d圖形。 可以利用滑鼠拖曳圖形來旋轉。 輸入「set isosamples 100,100」設定100的取樣值,讓圖形可以更平滑,再輸入「replot」重新繪圖,可以看到變化。 輸入「set dgrid 40,40」增加繪圖點。 輸入「set pm3d」繪製更好看的3d圖形。   原本預設的顏色並不是很好,所以重新設定調色盤「set palette model HSV functions gray,1,1」重新上色   紅色的十字看起來很礙眼,所以利用「set hidden3