2007年9月24日 星期一

[維護]你的 moodle 變慢了嗎?

這學期上課使用 moodle 時,一個班的學生同時使用線上測驗時,就會發生大部份同學遇到 MySQL OverLoad 的問題,進主機用 top 觀察一下,記憶體用量沒問題,但是 mysqld 卻使用了 99.9% 的 CPU 。

檢查了一下 moodle 的 db 使用量,發覺有一個資料表 mdl_cache_text 就用掉了 400MB 以上。這個表應該是前端網頁文字的快取用途,看了一下內容,裡面的條目重複情形還蠻多的。

既然是 cache ,那代表即使刪掉了,也會自己重建吧?!另外,猜測每次執行時,可能會大量 qurey 這個表,所以大膽猜一下,這個表可能是造成系統瓶頸的原因。所以,動手將這個表的內容清掉了。重新進入 moodle 後,感覺反應確實有變快了。

再來就是等星期三上課時的實測效果,看看是不是真的能有效的解決問題了。

[update 2007-09-26]

今天上課時,完全沒有再發生 MySQL OverLoad 問題了,所有學生 ( 44 人 ) 都很順利在同一段時間裡進入隨堂測驗。看來之前的猜測沒錯。有空再來看看 moodle 這個 text_cache 機制到底是怎麼回事?!

[C++]isNumeric

C / C++ 的標準函式庫裡,找不到一個類似 VB 裡的 isNumeric() 可以判斷字串是否為數值型式的標準函式可用。

沒錯, Visual C++ 的 System 命名空間裡,有 Char::isNumeric 可以用,但是非 VC++ 的 compiler 不能用。

另外,有找到一份 C++ Programming How-To ,裡面有一份強化過的 A! Dev's String class ,看起來遠比標準 C++ 的 String class 好多了,有空應該研究看看。只是學生比賽時,這樣的程式庫不知道可不可以用?

回到 isNumeric() 函式,看來只有自己手工打造一個來用了。

2007年9月14日 星期五

[VB]最簡單的中置式求值法

常見的中置式求值做法,是要操作運算元堆疊和運算子堆疊,比較運算子優先順序逐一運算求值。

今天有人問我,想實驗用 VB 的 Print 指令直接求出中置式的值,例如輸入的中置式字串

"(5-3)*4/2+(2+3)"

先把運算子符號放一個陣列(例如叫 opr()),運算元數字放一個陣列(例如叫 opd()),再用 for next 依原來順序放在 Print 指令後執行

Print opr(0);opd(0);opr(1);opd(1)...

結果呢?當然是印出原運算式字串。

那有沒有辦法做到呢?其實是可以的。

2007年9月8日 星期六

朝天子 志感

今天在看霹靂皇龍紀(第36集)時,刖俠遊患吟出這首元曲,深覺與最近的心情相呼應,特此記下:

朝天子 志感

作者:元 無名氏

不讀書有權,不識字有錢,不曉事倒有人誇薦。
老天只恁忒心偏,賢和愚無分辨。
折挫英雄,消磨良善,越聰明越運蹇。
志高如魯連,德過如閔騫,依本分只落的人輕賤。

不讀書最高,不識字最好,不曉事倒有人誇俏。
老天不肯辨清濁,好和歹沒條道。
善的人欺,貧的人笑,讀書人都累倒。
立身則小學,修身則大學,智和能都不及鴨青鈔。

嗯!又是牢騷。

2007年6月4日 星期一

[非關政治]名實相符是重要的!

馬英九因為特支費使用發票有問題,即使據說那是合法的用途,但不能因為用途是正確的,就可以使用非法的手段。

陳水扁因為國務機要費使用發票有問題,即使據說是用在機密外交…等,但不能因為目的是正義的,就可以使用非法的手段。

即使是應得的收入,名實不相符,還是不要拿的好!

有感而發,別理我。

2007年4月25日 星期三

舊的回響浮出來了?

昨天升級了 LifeType 1.2.1 ,今天檢查一下 error_log ,看到一堆如下的 error :

[Wed Apr 25 13:31:01 2007] [error] [client xxx.xxx.xxx.xxx] File does not exist: /var/www/html/lifetype/js/tinymce/jscripts, referer: http://blog.nlhs.tyc.edu.tw/category/2/9

都是找不到 TinyMCE 的 emotions 表情圖。原因是以前自己做 TinyMCE 包的路徑和後來 Mark 包進 LifeType 正式版的路徑不同造成的。

一時手賤,進資料庫改回響裡的回文表情圖路徑,沒改完就放棄了。不過,有改的,卻變成最近回響了。 ^_^|||

程式語言錯亂篇

同時使用多種程式語言還蠻痛苦的。集訓學生 ( 只剩一個了 ) 教他 C++ ,而最近電腦課的程式語言課程則是上 VB.Net 。相似的語法的細微差異,一時不察,讓我多花了許多時間除錯。

紀錄一下:

2007年3月9日 星期五

遠端關閉學生的應用程式-使用 taskkill

伙伴 huihui 發表了一個關閉學生應用程式的電腦教室管理工具。初看到這一段:

……其實用 WMI 加上 Script 就可以達成任務……

天真的我以為是在 AP 裡執行現成的 Windows 命令來達成將學生電腦的 IE 關掉的目的 ( 經過求證,我太天真了 ) ,於是便搜尋看看到底是用那個 Windows 命令完成的,結果找到了一個與 linux 上的 kill 命令相似的 Windows 內建命令: taskkill 。使用 taskkill 命令加上其他命令的配合,便可以達成「一口氣關閉整間電腦教室的 IE 瀏覽器」的目的。

這次要用的命令,除了 taskkill 之外,還有 for 與 start 搭配使用。

2007年2月28日 星期三

修復 moodle 的 log 功能

數位學習網站的紀錄功能壞了好一陣子了,懶得修啊!

今天查了一下,原來是紀錄 log 的 mdl_log table 壞了,用下面的 SQL 語法:

repair table mdl_log

就可以修復了。關於 repair 語法的參考: REPAIR TABLE Syntax

2007年1月24日 星期三

Visual Studio 2005 Express 繁體中文版 ISO 下載網址

用 google 搜尋到的,順便記下來,下載網址如下:

資料來源:台灣MSDN論壇的這篇討論第6個回覆。

另,據該討論版主回覆, Visual J# 2005 Express 沒有中文版, SQL Server 2005 Express 沒有 ISO,但是有完整安裝檔:[前往下載頁]

為維護版面,不顯示下載的原始網址,請自行看連結內容囉!

2007年1月23日 星期二

他們不是代罪羔羊

看完獨孤木的「揮揮衣袖,不帶走一片雲彩(中)」,裡面提到不論是破釜沈舟走定了,還是以退為進有所要求,記得找個代罪羔羊來幫你說話。

已經過了好幾年的不愉快往事不想再提,只是想說,文中提到的方法,除了出國進修之外,其他的我都真實遇到了。我的家人不是代罪羔羊,是苦主啊!

這裡可以再提供一個苦主(當時讀幼稚園的小女兒)的說法:「爸爸已經一個月沒有回家陪我吃晚飯了。」

吐吐苦水,沒事。

2007年1月16日 星期二

測試dp.SyntaxHighlighter

※更新:這個站沒有用 dp.SyntaxHighlighter ,原測試部份移除了

先記一下,要記得替 TinyMCE 加上:

2006年12月21日 星期四

分享一些 LifeType 架站經驗-給小吳老師

小吳老師在「pLog 安裝系列(一)-安裝環境」一文裡問了一些問題:

老師您好: 最近也準備架設讓全校老師使用的BLOG平台,我們的規劃是架一台主機單獨執行 pLog, 我的安裝環境是:1g-ram,raid1(150g*2),suse10.1,lifetype1.1 可否請老師針對1.要有獨特的網址和2.將資料與程式分開這兩部分的作法詳加說明,若能以圖示說明流程更有助於理解。 再者也要請問您:「若此伺服器不放個人網頁,是否在磁碟分割時要將/var/lib/mysql的空間(放資料庫的位置)規劃大一點,而/home的位置就不用給太多空間?」 若還有應注意的事項,也請您不吝指導。謝謝您的熱心回覆。祝 教安。

真是慚愧啊,這一系列的文章只寫了第一篇就停掉了,時間一久,都忘了自己原來有計劃要寫這些東西,實在太懶散了。

但是,最近實在是空不出時間把這些東西詳細寫出來,本篇就小吳老師的問題,提供一些個人玩 LifeType 的經驗:

2006年11月21日 星期二

選錯台了?失連中的 V-webmail

最近發現 V-webmail.org 的網站全掛O_o

看情形好像是整個 domain 不見了(註冊到期?),官方找得到的,只剩下在 Sourceforge.net 上的 V-webmail 專案網站而已,連同作者出沒的 phpguru.org 上也沒看到什麼相關說明…

難道當初選錯 webmail 程式了嗎?

2006年11月3日 星期五

第一次程式集訓記事

第一次集訓沒做什麼事,先跟同學確立集訓方式跟原則。