為了讓努力不懈的大陸網友能有繼續努力永不休止的機會, Server 的 ssh 全面使用 ssh-key 認證,密碼登入沒有了。
不過,改用過程中發生一件怪事,我的帳號沒有問題,可以用 ssh-key 登入 ssh console / sftp ,但是同事的帳號卻發生 "Server refused our key" 的訊息拒絕連線。
經過一番檢查,原來是 ~/.ssh/authorized_keys 的權限錯了。
我的學習心得、我的心情記事…
伙伴 huihui 最近在玩 ca 認證主機,幫 blog 簽了一個 SSL 憑證,要試試虛擬主機是否能使用獨立的憑證。
試完了,想說 SSL 憑證不用白不用,於是動手改一改 LifeType 程式,看看能否做到後台管理界面都在 SSL 連線下作業,至少 login 時輸入帳號密碼會比較安全。
初步試驗算蠻成功的,只修改兩個地方:
純筆記!
IP-based Virtual host 可以各自擁有獨立的 SSL 憑證, Name-based Virtual host 則只能共用一個 SSL 憑證。
原因: SSL 為比 http 更底層的協定, Name-based Virtual host 是在 http 層才能分辨,而 SSL 憑證早在這之前就載入了。
若 Virtual host 要同時支援 http 與 https 協定,要當成兩個 Virtual host 設定,分別監聽 80 port 與 443 port ,但是把網址與文件目錄設為相同。至於 access log 與 error log 最好是分開以方便未來利用。
訂閱了五十多個 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 上退役。
本站上的網誌聯播也一併被取代,功成身退了。
這是怎麼回事啊?! @@?
剛剛用 iGoogle 的自動翻譯查一下「 skinniest 」這個單字,結果自動翻譯的結果竟然是「藍心湄」?!
有圖有真相:
用 google 搜尋一下 「 skinniest 藍心湄 」 ,也只得到似乎是自動翻譯的結果。有人知道是怎麼回事嗎? :D :D :D :D :D
忍無可忍了,只有祭出 RewriteRule 來堵一下:
RewriteEngine on
RewriteRule \.mp3$ - [F,L]
好你個百度mp3音樂盒,再來試試。
不聽宣導勸導的學生,我準備要拿 access_log 出來簽校規 ( 國立內壢高中學生獎懲實施要點補充規定 第四條、第二款 ) 處分了。
繼上個學期初的垃圾筒消失事件之後,本學期又再次發生了。難道每學期都要發生個一次嗎?
上次是隔天就把垃圾筒找回來了,這回不知道要多久?
[update 2007-10-01]
上回是伙伴 huihui 在垃圾筒消失一段時間候才 post 文章,實際找回垃圾筒已經是多日後了。
另,今天垃圾筒已經自己出現了。
Daniel Miessler 的 dmiessler.com 寫了一篇好文章介紹超好用的網管指令 lsof ,以前都不知道,真是受教了。
先記下連結: http://dmiessler.com/study/lsof/ ,找時間要全文翻過來放著用。
前一陣子教集訓同學走迷宮問題。那自然需要範例的迷宮檔案,以前都偷懶用亂數產生迷宮裡的牆,再手動修一下來使用。
今年花了點時間研究迷宮產生器的寫法,在 google 上搜尋後,找到以下兩個很有用的連結:
MyChat 數位男女 > 程式設計 的這篇討論裡,有唐老鴨寫的現成程式,稍微修改就可以跑了。基本上,是使用「挖通道」的方式,寫遞迴函數來挖迷宮。判斷原則是:「如果牆的另一邊沒有通道,則把牆挖穿,並挖出通道;否則就退回換個方向再試。」
另外,「也是回顧」的 tu 寫了很多關於迷宮的文章,讓我獲益良多。雖然沒有現成的程式可以參考,但是在「產生迷宮的另一種方法」裡所提出的用 set Union 方法產生迷宮,讓我搞清楚了 ( 單一解 ) 迷宮的本質:所有的通道都是相通的,都屬於同一個集合。這樣,我也搞清楚了為什麼唐老鴨的程式挖通道時,碰到通道就不挖了的原因。
再深入研究後,發現要產生單一解的迷宮其實非常的簡單。這篇文章只是先記下以上兩個連結,免得以後忘了。我的迷宮產生器寫法待整理好了再拿出來獻醜吧。
記得古早、古早以前寫 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.
*/
這學期上課使用 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 / C++ 的標準函式庫裡,找不到一個類似 VB 裡的 isNumeric() 可以判斷字串是否為數值型式的標準函式可用。
沒錯, Visual C++ 的 System 命名空間裡,有 Char::isNumeric 可以用,但是非 VC++ 的 compiler 不能用。
另外,有找到一份 C++ Programming How-To ,裡面有一份強化過的 A! Dev's String class ,看起來遠比標準 C++ 的 String class 好多了,有空應該研究看看。只是學生比賽時,這樣的程式庫不知道可不可以用?
回到 isNumeric() 函式,看來只有自己手工打造一個來用了。
常見的中置式求值做法,是要操作運算元堆疊和運算子堆疊,比較運算子優先順序逐一運算求值。
今天有人問我,想實驗用 VB 的 Print 指令直接求出中置式的值,例如輸入的中置式字串
"(5-3)*4/2+(2+3)"
先把運算子符號放一個陣列(例如叫 opr()),運算元數字放一個陣列(例如叫 opd()),再用 for next 依原來順序放在 Print 指令後執行
Print opr(0);opd(0);opr(1);opd(1)...
結果呢?當然是印出原運算式字串。
那有沒有辦法做到呢?其實是可以的。
馬英九因為特支費使用發票有問題,即使據說那是合法的用途,但不能因為用途是正確的,就可以使用非法的手段。
陳水扁因為國務機要費使用發票有問題,即使據說是用在機密外交…等,但不能因為目的是正義的,就可以使用非法的手段。
即使是應得的收入,名實不相符,還是不要拿的好!
有感而發,別理我。