2015年11月26日 星期四

Threat Modeling

1. Ask 4 questions when doing threat modeling
     1.  What are you building?
     2.  What can go wrong? (STRIDE)
     3.  What are you going to do about it?
     4.  Did you do an acceptable job at 1-3?

2015年11月21日 星期六

Web 安全測試錦囊妙計

1. 真正的軟體安全乃關乎風險管理,我們得確保軟體對我們的企業來說是夠安全的。有時候,安全防護的純粹主義(security purist)者可能指出軟體不構安全,然而,只要滿足企業擁有者的需求--當擁有者明白風險所在,並且完全理解他們所接受的東西時--那麼,軟體便可以算是夠安全的。安全測試提供證據及必要的體認,讓企業根據要接受的風險度,進行明智的合理決策。

2. 檢視HTML原始碼有兩個目的,幫助你找到最明顯的安全問題。更重要的是,它讓你為將來的測試建立baseline, 比較攻擊前後的原始碼,讓你得以調整你的輸入,了解什麼會或不會突破安全防護,並且在試驗一次。

2015年11月17日 星期二

寧靜禱文

God grant me the serenity, 主啊!求祢賜我寧靜的心,
to accept the things I cannot change; 去接受我不能改變的一切;
courage to change the things I can; 賜我勇氣,去改變我所能改變的一切;
and wisdom to know the difference. 並賜我智慧,去分辨這兩者的差異,

Living one day at a time; 認真地去過每一天,
Enjoying one moment at a time; 享受生命的每一時刻;
Accepting hardships as the pathway to peace; 迎接艱難,作為進入平安的途徑;
Taking, as He did, 按照主的方式,
this sinful world as it is, not as I would have it; 面對這不是我所想要的罪惡世界;
Trusting that He will make all things right, 堅信主會使正義彰顯,一切更新,
if I surrender to His Will; 只要我順服祢的旨意;
That I may be reasonably happy in this life 今生我得蒙受足夠的喜樂,
and supremely happy with Him ,Forever in the next. 來生與主同享永世的歡愉。

Amen. 阿門

2015年11月15日 星期日

程式設計人應該知道的97件事

1. 我們應該讓例外浮現到架構的最高層,讓通用的例外處理機制來處置,以確保系統處於安全的狀態,例如,可能需要回復交易,寫Log,還有警示管理員,最後有禮貌地回報給使用者。

2. 審慎的練習(Deliberate Practice),代表重複,執行任務的時候要以熟練該任務的一個或多個面向為目標,多次重複這個過程。 專家級的技術,是隨著時間推移逐漸累積而來,而不是一口氣在第一萬個小時達到! 儘管如此,一萬個小時實在很多: 大約是每周二十小時並且持續十年。面對如此程度的承諾,你也許會擔心你不是成為專家的料。是,你是,所謂偉大,在很大程度上是一種意志力的選擇,是屬於你的選擇。

3. 若你從夠遠的地方觀察任何活動,程序或是訓練,它都會顯得很簡單。沒有開發經驗的經理認為程式設計師做的事情很簡單,而沒有管理經驗的程式設計師,也認為經理做的事情很簡單。寫程式是某些人得花上一些時間才做得來的事情。而其中困難的部分--思考--最不容易被人看見,以最不為外行人所賞識。業界一直以來的願景,都是希望用減少撰寫程式的方式來簡化軟體開發,這對於真正了解開發究竟牽涉什麼的程式設計師來說無疑是幼稚的。不過,導致這錯誤的心理過程 (覺得應該很簡單)就是人類的天性。

     當你沒有積極參與這些事,就會有種無意識的傾向,以為這些事情都很簡單,而且像魔法一般完成的。當魔法一直持續發生, 一切都很好,一旦魔法停止了,專案就遇到麻煩了。

4. 身為一個專業的城市設計師,你必須讓自己的專業領域知識隨時保持在最新的狀態。你需要用晚上的時間,周末的時間,甚至休假時間來自我學習;所以你不能把這些時間用來為專案加班。你真的以為腦外科醫生每周60小時都在做手術? 飛行員每周60小時都在天上飛?當然不是。工作準備和接受教育才是他們職業的核心部分。

5. 軟體評估的主要目的並非是預測專案的成果;是為了判別出專案的目標是否能實現,讓專案得以掌握。因此,評估時程的用意是為了使適當的專案管理與規劃成為可能,允許專案的利益關係人基於實現目標上做出承諾。

2015年11月14日 星期六

對失敗遲鈍,跌倒了也能快速復原

1. 找出內心想做的事: 光是在意別人的評價,沒辦法變得堅強。重要的是,找到自己想做的事,專心於目標上,反而可以對別人的評價免疫。

2. 放下悲慘遭遇的鈍感力: 鈍感力指的是不去在意別人對自己做了什麼,也不因失敗鬱鬱寡歡,或和其他人比較而心有不甘。這種看似遲鈍的個性,其實是不為小事所動搖的強悍。

3. 集中在目前能做的事

看到別人沒看到的秘密

柯達在傳統底片愈強,轉型到數位相機就愈困難;傳統出版業要轉型數位出版也困難重重;微軟無法轉型成網路入口;雅虎很難成為搜尋引擎;Google要轉型做社群網路也鎩羽而歸;Facebook要變成信息軟體,也不如LINE來得成功;阿里巴巴無法成為微信;傳統銀行也很難轉型成互聯網金融....

企業過去取得成功所具備的核心能力,都成為未來轉型僵化的原因,那是因為每一個時代所看到的秘密不一樣。

2015年11月7日 星期六

被討厭的勇氣

1. 阿德勒心理學就是勇氣的心理學。你之所以不幸,並不是過去或環境造成的,更不是因為能力不足,只是勇氣不夠而已。換句話說,就是缺乏變得幸福的勇氣

2. 任何人都是在追求卓越,也就是想奮發向上,訂定某些理想或目標後,就向前邁進。但是當理想無法達成時就會對自己產生一種低劣無能的感覺

3. 如果認為因為我的學歷低所以無法成功,那就不得不解釋為不想成功,而不是無法成功。簡單來說,就是害怕跨出那一步,而且不想付出實際的努力。不想為了改變而犧牲目前所擁有的享受與快樂。也就是缺乏改變生活型態的勇氣。所以對目前的狀態即使感到有些不滿或不方便,卻還是覺得維持現狀比較輕鬆愉快。

沒有這份勇氣的人,往往會陷入自卑情結。因為學歷低,所以無法成功,就會變成只要學歷高的話,我就可以輕易獲得成就來暗示自己是有能力的。現在的自己只不過受限於學歷的框架,懷才不遇,真正的我其實很優秀的。

4. 所謂追求卓越,指的是讓自己的腳向前跨一步,而不是非超越他人不可的那種競賽。
競爭的可怕就在這裡。就算你不是輸家,就算你一直獲得勝利,但只要你置身在競爭之中,內心就無法得到片刻安寧。因為不想成為輸家,而且為了不成為輸家,必須不斷贏下去,也沒辦法相信別人。社會上有許多人雖然獲得成功,但同時卻無法感受到實質的幸福,就是因為他們活在競爭之中,對他們而言,世界是一個危機四伏,草木皆兵的地方。

5. 憤怒不過是一種溝通方式,而事實上,不利用憤怒來溝通是有可能的。我們不必發洩怒氣,也可以進行意見交流,甚至讓對方接受我們。如果從經驗中漸漸了解這一點,憤怒的情緒自然而然地也就不會再出現。

6. 讀書是孩子的課題。所以當父母命令孩子好好用功讀書時,就像帶著滿腳泥巴踩進別人的家裡,干涉了別人的課題。這麼一來,就很難避免衝突。因此我們必須站在這是誰的課題的觀點,將自己和他人的課題切割開來。大致上,所有人際關係中的紛爭,插不多都是因為一腳踩入人家的課題裡,或是自己的課題遭到干涉所引起的。介入他人的課題,還有背負他人的課題,會讓自己的人生變得沉重又辛苦。所以你必須清楚知道從這裡開始,就不是我的課題了。然後把他人的課題切割,捨棄。這就是讓人生卸下重擔,變得單純的第一步。

7. 亞歷山大大帝,當他遠征到波斯領土的利底亞時,當地的神殿祭祀著一輛戰車,那輛戰車是過去的國王哥帝安用特殊而牢靠的繩結綁在神殿柱子上的,大家都傳說解開這個繩結的人,將成為亞洲之王。許多自認很有辦法的人都抱著捨我其誰的想法前來挑戰,可是那個繩結卻異常牢固,沒有人能解開。亞歷山大大帝看到那繩結非常牢固,就拿出一把短劍,一刀切斷了它。據說當時他是這麼說的: 所謂的命運,並非依靠傳說來安排,而是揮舞自己的劍去斬開

8. 只關心自己的人,會認為自己就是世界的中心。對這些人而言,其他人不過是為我做些什麼的人,幾乎認定大家都必須為我而轉動,應該優先考量我的想法。正是如此,他們逾越了人生的主角這個分際,成為世界的主角。因此他們和別人來往的時候,總想著,這個人會給我什麼? 但是他們的期望不可能每次都獲得滿足,因為別人並不是為了滿足你的期望而活。而當期望無法滿足的時候,他們會大失所望,感覺受到嚴重侮辱,變得忿忿不平。他們會想,那個人什麼也沒為我做,那個人辜負了我的期待,那個人不再是我的夥伴,是敵人。抱著世界以我為中心這種信念的人,通常用不了多久就會失去夥伴。

9. 所謂肯定自我,是明明做不到,卻要暗示自己我可以,我很強。這種想法也會連接到優越情結上,算是欺騙自己的一種生活方式。另一方面,接納自我是在自己無能為力的情況下,坦然接受那個辦不到的自己,而且盡最大努力朝目標前進,不欺騙自己。說得更簡單一點,對拿到六十分的自己說,這次只不過是運氣太差了,我其實有一百分的實力。這就是肯定自我。相對的,坦然接受只拿六十分的自己,並思考,要怎麼做才能離一百分越來越近?則是接納自己。

10. 作家馮內果在小說第五號屠宰場引述過一段話: 主啊,求祢賜給我平靜的心,去接納無法改變的事物;賜給我勇氣,去改變可以改變的東西;並賜給我智慧,去分辨這兩者的差異

11. 人生是一連串的剎那,過去和未來都不存在。你想要藉由回顧過去,預見未來,給自己一個免除責任的藉口。事實上,過去發生了什麼事,和當下一點關係也沒有;而未來會如何,也不是當下要考慮的問題。當你認真地活在此時此刻,根本不會想到這些事。

12. 人生最大的謊言就是沒有活在當下。沉溺於過去,不斷張望未來,讓自己所有的人生都映照在微弱的燈光下,還以為自己看見了些什麼。關鍵的一刻,不在昨天,也不在明日,就在此時此刻




魔球 (Money Ball)

1. 比恩記得有一次雷尼戴克斯坐在大都會的球員休息區,看著對方投手熱身,雷尼說: 站在投手丘那個大笨驢是誰? 我說: 雷尼,你在開玩笑吧? 那是史提夫卡爾頓,搞不好是棒球史上最偉大的左投手。雷尼說:喔對了! 我知道! 他安靜了一分鐘又說: 那他有甚麼厲害的? 我說: 雷尼,不要鬧了,史提夫卡爾頓耶! 他的快速球驚人,還有可能是有史以來最刁鑽的滑球。雷尼坐在那裡又看了一會兒,好像在消化這些訊息。最後他只說: 狗屎,我要把他打爆! 我心想: 投手丘的那個傢伙,是登上雜誌封面人物的大明星,雷尼唯一能想到的,卻是把他打爆。
比恩說: 他可以轉頭就忘記挫敗,卻能從每次成功中吸取力量。他對失敗毫無概念,也從不在乎面子問題,我則是相反

2. 分析棒球統計數字,可以讓你識破棒壇許多胡說八道。例如,球隊總教練談到得分時,都傾向於聚焦全隊打擊率。然而,透過科學分析可以輕易發現,全隊得分與打擊率的關係很小。與得分關係密切的多的,是上壘率與長打率。許多讓教頭成名的進攻戰術,觸擊,盜壘,打帶跑,在大多情況下要不是意義不大,就是弄巧成拙。

3. 運動家隊各階層的打擊準則:
     1. 每個打者都要表現得像首棒打者,將上壘視為首要目標。
     2. 每個打者都要具備全壘打的能力,部分原因是長打立會讓對方投手投得更小心,更容易形成四壞球保送,因而提高上壘率。
     3. 對於任何有天分成為職棒球員的人來說,打擊主要是一種心理技巧,而非身體技巧。或至少,打擊能教的部分是屬於心理層面。

4. 一個人光憑看球,是絕對無法區分打擊率三成與兩成七五打者之間的差別的。兩者的差異,就是每兩星期差一支安打。每場比賽都親自到場採訪的記者,如果不做任何紀錄,看個一年下來,或許可以感受兩者的差別,不過我不大相信。一位優秀打者和普通打者間的差別,很難用肉眼看出來,必須靠紀錄才行。

5. 總教練總是傾向選擇最不可能失敗的戰術(觸擊,盜壘,打帶跑),而不是最有效率的戰術。公然出糗的痛苦,壓過了選擇最佳戰術得到的報酬

6. 如果你沒有能力想像某種外型的人去做某種事,只因為你沒見過同樣外型的人做過,這不但是一種罪惡,也是一種浪費。缺乏想像力,會導致市場無效率,當你只因外表,就將某一群人排除在工作之外,你就更不可能找到最適任這個工作的人

7. 運動家隊評估選手的機制和其他隊完全相反,他們竟能以選秀會第二一八順位,選進可能是全國最好的打者。你知道甚麼樣的球員會讓我興奮嗎?就是他有某種特點,使得其他人都不看好他,但我知道那個特點一點也無關緊要

8. 比恩將小聯盟無名小卒轉變為成功的大聯盟終結者,而且在他們取得自由球員身分後,拒絕支付數百萬年薪,是因為他的重要見解,創造一位終結者,比去買來要有效率。成氣候的終結者基本上都估價過高,大部分是因為決定終結者市場定位的統計數字,救援成功,讓達成這個目標的人,聽起來極其重要。但救援成功碰上的典型狀況,第九局壘上無人,球隊領先,其實遠遠不如先發投手所面對的各種危急狀況。

9. 對於棒球行家而言,最具戲劇張力的不是第一球,而是第三球。純以預期結果來看,兩好一壞與一好兩壞的差別非常大。面對一好兩壞,大多數的中等大聯盟打者都會變明星球員;不過面對兩好一壞,他們就會變成貧打的第九棒。大家老說第一球搶好球有多重要,不過真正重要的,是在前三球中搶到兩個好球。對打者而言,任何偏離好球帶的球,都是讓機率轉為對自己有利的機會。你唯一要做的就是: 不要揮棒

10. 當比恩準備大肆採購時,心中有五個簡單的守則:
    一,不管你有多麼成功,改變永遠是好事。絕對不要安於現狀。沒錢時你就負擔不起長期解決方案,只能負擔短期解決方案。你必須不斷升級。否則你就毀了。
    二,當你必須有所作為時,你就慘了。因為你會做出很爛的交易。沒簽到想要的球員,總是能彌補的。但是如果以錯誤價碼簽到球員,可能永遠彌補不了。
    三,知道棒壇每位球員在你心中的確切所值。每位球員在你的心中應該都有個價格。
    四,知道自己想要哪個球員,然後全力去爭取 (不管其他球隊說他們想把誰賣掉)
    五,你所完成的每項交易,都會被其他主觀的意見公開檢視。如果我是IBM的執行長葛斯納,我才不會擔心自己的每一項人事決定都會登上報紙財經版頭條。並不是每個人都認為自己很懂個人電腦。但每個拿過球棒的人,都認為自己很懂棒球。想要把事情做好,你就不能在意報紙寫些什麼。