2007年9月30日 星期日

Firefox Sage 退役,改用 Google Reader

訂閱了五十多個 RSS ,一直都是用 Firefox + Sage 當 RSS Reader ,也用得很順,就是要維護家裡和學校幾台電腦裡的訂閱清單一致,覺得麻煩而已。

一直嚐試找一個好用的 online RSS Reader ,試過了 Bloglines ,他的界面跟我沒緣份;也試過 Newsgator ,但是太慢了。後來折衷的方法是,把一些比較關注的 RSS 用 Newsgator 做成聯播,放在 blog 上,權充線上閱讀器使用。

google reader 也試用過,但是以前的界面覺得不是那麼方便閱讀文章,留下了一堆 RSS 後,就沒理他了。

前一陣子終於 google reader 改版並且出中文界面了,於是嚐試改用 google reader 取代 Firefox + Sage 的組合。一段時間的使用後, google reader 速度快、界面清爽好用,配合 google toolbar 工具按鈕提示,實在很滿意。於是決定切換到 google reader 上,讓 Sage 從 Firefox 上退役。

本站上的網誌聯播也一併被取代,功成身退了。

skinniest=藍心湄

這是怎麼回事啊?! @@?

剛剛用 iGoogle 的自動翻譯查一下「 skinniest 」這個單字,結果自動翻譯的結果竟然是「藍心湄」?!

有圖有真相:

skinniest.gif

用 google 搜尋一下 「 skinniest 藍心湄 」 ,也只得到似乎是自動翻譯的結果。有人知道是怎麼回事嗎? :D :D :D :D :D

2007年9月28日 星期五

[apache]只有宣導是不夠的

忍無可忍了,只有祭出 RewriteRule 來堵一下:

RewriteEngine on
RewriteRule \.mp3$ - [F,L]

好你個百度mp3音樂盒,再來試試。

不聽宣導勸導的學生,我準備要拿 access_log 出來簽校規 ( 國立內壢高中學生獎懲實施要點補充規定 第四條、第二款 ) 處分了。

定期會消失的垃圾筒?!

繼上個學期初的垃圾筒消失事件之後,本學期又再次發生了。難道每學期都要發生個一次嗎?

上次是隔天就把垃圾筒找回來了,這回不知道要多久?

[update 2007-10-01]

上回是伙伴 huihui 在垃圾筒消失一段時間候才 post 文章,實際找回垃圾筒已經是多日後了。

另,今天垃圾筒已經自己出現了。

2007年9月26日 星期三

[tool]好用的lsof

Daniel Miessler 的 dmiessler.com 寫了一篇好文章介紹超好用的網管指令 lsof ,以前都不知道,真是受教了。

先記下連結: http://dmiessler.com/study/lsof/ ,找時間要全文翻過來放著用。

[演算法]迷宮產生器參考連結

前一陣子教集訓同學走迷宮問題。那自然需要範例的迷宮檔案,以前都偷懶用亂數產生迷宮裡的牆,再手動修一下來使用。

今年花了點時間研究迷宮產生器的寫法,在 google 上搜尋後,找到以下兩個很有用的連結:

MyChat 數位男女 > 程式設計 的這篇討論裡,有唐老鴨寫的現成程式,稍微修改就可以跑了。基本上,是使用「挖通道」的方式,寫遞迴函數來挖迷宮。判斷原則是:「如果牆的另一邊沒有通道,則把牆挖穿,並挖出通道;否則就退回換個方向再試。」

另外,「也是回顧」的 tu 寫了很多關於迷宮的文章,讓我獲益良多。雖然沒有現成的程式可以參考,但是在「產生迷宮的另一種方法」裡所提出的用 set Union 方法產生迷宮,讓我搞清楚了 ( 單一解 ) 迷宮的本質:所有的通道都是相通的,都屬於同一個集合。這樣,我也搞清楚了為什麼唐老鴨的程式挖通道時,碰到通道就不挖了的原因。

再深入研究後,發現要產生單一解的迷宮其實非常的簡單。這篇文章只是先記下以上兩個連結,免得以後忘了。我的迷宮產生器寫法待整理好了再拿出來獻醜吧。

[C++]PI

記得古早、古早以前寫 C 的時候,依稀記得圓周率 PI 在 math.h 標頭檔裡面有定義一個 macro ,可以直接使用。但最近在 C++ 裡嚐試要用時,卻告訴我「未宣告的識別項」錯誤。

調出 math.h 來看,找到答案了!裡面有一段註解:

/* Define _USE_MATH_DEFINES before including math.h to expose these macro
* definitions for common math constants. These are placed under an #ifdef
* since these commonly-defined names are not part of the C/C++ standards.
*/

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集)時,刖俠遊患吟出這首元曲,深覺與最近的心情相呼應,特此記下:

朝天子 志感

作者:元 無名氏

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

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

嗯!又是牢騷。