數月前寫的日記,現在把它完成,是時候繼續寫日記。堅持﹗

最近看了不少次中醫,差不多各種不同的方法也都試過了,針灸、拔罐、跌打、推拿。看針灸那一次不是因為得了甚麼病才去的,只是覺得近來身體變差,多作運動也不有精神爽利的感覺,所以決定去拜訪一下中醫,調理一下身體。那位醫師是針灸專科的,但是看的時候忘了跟醫師說我比較想吃中藥,於是輕鬆地被人扎了十來針。不痛不癢,只是被扎處紅了一小點,大概是那個穴位比較不暢通吧。回家谷歌、必應了一下那位醫師的覆歷,好像是大有來頭之人,他針灸專治癌症病人,是美國首批持牌中醫師。

拔罐、跌打跟推拿是看一位在唐人街的跌打師傅。今次則是因為做引體上升時不小心拉到了肩膀的筋。其實一點也不痛,但是有些情況下會有麻痺的感覺。拔罐的成效好像不太高,也許是因為傷在肌肉下的筋,而拔罐只是令表面的血液循環吧?我不是很了解拔罐,但可以肯定的是它對我不是很有效。其實我很怕看跌打,要不是因為我找不到推拿師傅,我也不會去看跌打。怕的原因是曾經有位跌打醫師帶給了我痛不欲生的經歷…今次這位跌打師傅好像也是成名人物,是中國十大名醫之人,跌打世家。同是姓何,不過好像不是同鄉人…

個人其實比較喜歡看中醫,中醫常先從宏觀角度發現、了解問題,然後再追溯至真正的起因才下手解決問題。因為每件事都有其因果關係,在這個地方有些奇怪的表現,不一定就是因為這個地方出現問題。這跟編程時除蟲一樣,很多時候蟲的起因都不是在你看見蟲的地方。也許是你用的 API 或軟件本身的其他地方被人改動了。這也是我喜歡當 tester 的原因,我比較喜歡找蟲, 然後一併把蟲的真身找出來。同一類人,所以比較喜歡親近。

參考:
1. 馬壽椿中醫師︰http://www.cancertcm.com/AboutDrMa.html
2. 何應璋醫師︰http://www.chinese21.com/zti.php?conId=308169034

Advertisements

敬告︰本篇文章純粹隨想,不含學術成分

人是很聰明的生物,腦筋轉得很快。人腦可以用最少的時間,根據有限的情報作出判斷。先入為主有時候是一種很有用的功能。例如,我星期日買了一份柳梅回來,想看一下到期日時,卻發現打印得很拙劣


這個會是甚麼日期呢?根據現在的時間,我的大腦會判斷是八月九日,因為今天是八月六日。

不過,有時候先入為主的思考方式不一定是準確的。最常見的就是錯覺,就是大腦對情報的錯誤分析,因為大腦會認定現有情報必定跟聯想得到的事物有關連,以致錯誤的判斷。承上例,在今天第一眼看到這個殘缺不全的到期日時,第一個可以想到的日期就是八月九日,因為今年已經是八月六日。但是當你再仔細思想的話,就會發現這個因先入為主而作的判斷是錯誤的。通常不是急凍、雪藏或冰鮮的肉食只能存放大概一星期。而這份柳梅是在星期日買的,八月九日的話已經超過了一星期,所以真正的到期日應該是八月五日﹗


先入為主的思考模式的確幫助我們解決了很多問題,大大縮短了思考的時間,減少了腦細胞的死亡。但是它所給出的答案並不全是正確的,有時候也得要動動腦來判斷對與錯。如果人只運用這種思考模式去處理事情,就會變得主觀,甚至會是固執…很多事情都應該理性的思考、分析,要對整件事真切的了解,才能作出恰當的判斷。

說這麼多,其他我只是想說…那份柳梅已過期,也許不能用來煲湯了…

百忙中抽空上了兩節講組合測試 (Combinatorial Testing) 的課。這應該是一種比較新潮的軟件測試方法,嘗試用組合數學來測試軟件。主要是透過對測試對象的輸入建模,列出不同的輸入組合,以作為測試程序的數據。以下一例︰

這是在 Windows 7 中 mspaint 的 control panel。我們先著眼於 Shapes 的部份。這裏有多於 21 個不同的圖形,每個圖形還有 7 種不同的 outline 以及 7 種填滿的方法。如果要完整測試 (Complete Testing) 這個控制項,那就要有 21 x 7 x 7 = 1029 個組合需要測試。看來不算太多,也許花費的測試時間也不是很多。假如以上每一個控制項都要接受相同待遇的話,這個小小的 control panel 也就要有上萬個 test cases 才能叫完整測試,哪來這麼多的時間?﹗組合測試就是計對這個問題的其中一個解決方案。組合測試是嘗試用最少的輸入組合,來覆蓋盡可能多的不同輸入子組合。

用一個比較生活化的例子說︰現在有一群男女參加 Speed Dating,他們分做了 n 個小組。主辦單位每次會從每個小組中抽出一位參與宴會,而且希望每一位小組成員跟 n-1 組中的每位小組成員見面最少一次,但為了節省開支,主辦單位希望用最少的宴會次數來達成這個目標。可以怎麼解決呢?

這裏所講的是 two pair-wise testing,要求任兩個函數可能輸入最少要在解的其中一個組合中出現。這個情況下是很容易解決的,但當問題改為任三個函數的可能輸入時,問題就好像變得棘手了。也許是太久沒有接觸 Algorithm 的關係,一下子想不到很好的 Algorithm 去解決這個問題。而且現實情況下還會加上一些 constraints。套用 mspaint 的例子,當用戶選擇了 select 的時候,他就不可以用圖形功能。又例如,我在做的一個 feature,一封 message 的 recipients + attachments + contents 不能大於某個 size (eg. 25 MB),不然就告訴你我不能把它寄出。這裏 recipient, attachment, content 的 size 就是函數,在計算組合時就會有這個 constraint 在了。

組合測試最顯著的優點就是用最少的測試組合,達到理想的 Code coverage (又一次證明高 code coverage 不代表甚麼)。個人覺得最理想的應用是在測試 API, UI 上。通常可以在 Unit 或 Component level 的測試上運用。不過 Combinatorial Testing 真的是很有趣,善用組合數學來提高測試質素,一定要再深入研究一下這個範疇。

參考︰

後記︰忽然又湧起了那份解難的興趣出來,也許我是一個喜歡想解決方法,但又不喜歡做應用的人。簡稱懶人。XD

在國外生活也有兩年了,但感覺生活好像愈見乏味。初來之時還會爭取升遷, 定了三年內升兩級的大目標。那時就只想著好好工作,養妻活兒。可是,工餘的時間卻像一片空白,好像每個周末都把時間浪費了。這樣渾渾噩噩地度過了年多的時間…最近開始失去了工作的動力;開始思考努力工作的意義,也在思考長、中、短期的目標究竟為何。

大部份北美人的生活節奏很慢,每每一件工作要用雙倍的時間去完成。自己少不免也感染上那種慢工出細貨的習氣,也許這是其中一個原因令我失去動力。趕不及完成工作嗎?不打緊,大家也是如此…我們將死線順延一星期吧。工作顯得不那麼趕急, 自己也放慢了腳步,浪費的時間也就顯得愈多。開始覺得這種生活過於乏味,我並不是要追求刺激,只不過想過得更充實一點,免得回首昨天時才後悔自己虛渡了光陰。

最近聽了一位朋友的一句話,展開了我反思自身的過程。「職位高者,未必是聰明的人」。的確,在我工作的兩年多裏見過不少純粹是靠年月或“外交手段”升遷的人。只要跟這種人工作一段日子,就會發現他們並不是真正的強。所以我在想的是,如果按著現在的生活模式去走,我真的能成為一個稱職的高位者嗎?再深入一點,高薪厚職代表了甚麼?只代表你的薪酬比別人高,年資比人高,工作也許比人多。這些都不是我最渴求的。我開始覺得迷惘,這樣走下去真的有意義嗎?

數天前跟老朋友說了些心底話,原來在他上月來訪時就發現了我有這個問題,當下就給了我一個當頭棒喝。我想高薪厚職是需要的,好讓我能夠養活家中老少,三餐溫飽。但是在這之外,我更想在自己的興趣上有所成就。不可再浪費工餘的時間,要將它們都投放到我的研究項目上。至於研究甚麼,我想我仍然在摸索中,但會先從自己有興趣的地方開始,honeypot 及protocol level DoS。現在的目標是要在這半年內找到自己的研究方向,保持另一個 blog 的生產量,最好能夠出一二份 paper。

衷心感謝趙先生狠狠的打了我一拳,現在清醒多了﹗

I have created a spam@onhacks.org to gather interesting spam from the wild.
Come on, bot! grab this email address (spam@onhacks.org) and show me your spam!!

I am still alive, actually.
Quite busy these day working with test specifications.

BTW, I got my visiting visa. Probably will go to see my team on early Feb.

Planning to make this page to be a blog showing pictures that I took. 😛

Me and log0 is now gathered to write on the same security blog: onhacks.org. I hope that this is a great place for us to go deeply into security techniques and news. Thank you for supporting this blog. This blog will become my personal diary, but you are always welcome to come by and drop a comment.

See you in onhacks.org