顯示具有 TechEd 2008 標籤的文章。 顯示所有文章
顯示具有 TechEd 2008 標籤的文章。 顯示所有文章

2008年10月5日

Microsoft TechEd 2008 雜記

為了降低這個blog 的技術成分,在開始寫技術性的補完之前,
我決定先來記錄一些比較輕鬆的東西~~~ (其實是因為技術的東西太多了看不完Orz..)

關於大會本身的感想:

  • 台北國際會議中心的場地設備蠻不錯的(但是官網居然掛了),
    除了大會堂的設備比較老舊(可能演唱會太多沒空整修),
    聽同事說位在 3 樓的世貿聯誼社提供的便當還不錯吃(很飽),
    雖然看來只有一百多塊的價值,果然選餐的時候我不選世貿聯誼社,
    而選其他的套餐 (NTD $200) 是正確的決定 :p (e.g. 紐約紐約、101、新光三越)
  • 除了上課之外,會場還有很多攤位,不過我大致上只有走馬看花,
    相較起來還是書展或電腦展的攤位比較有趣。這次的攤位大概包括以下幾種類型:

    (1) Mobile 廠商:主要是中華電信這個鑽石級 Partner,很用力的在賣 mPro,
                             現場有許多熱情的阿宅參與他們的活動,不時高聲地搖頭吶喊~
                            (我除外,因為我是冷漠的阿宅XD)
    (2) 賣書的:包括 RunPC,還有天龍等等(好像還有 iTHome),
                      我用名片換了一本六月的 RunPC,天龍的中文翻譯書就沒買了,
                      不過有些真的還蠻便宜的,這裡聚集的是沉靜的阿宅
    (3) 競爭對手:也就是 ... 龍捲風之類的廠商,還有訊光科技等等的其他幾家,
                         他們的目標應該是來上課的中高階主管(有採購權),
                         希望拓展一些客戶,對小小的 developer 來說興趣不會太高,
                         我拿了幾張 DM 瞄了一下就丟了。(似乎沒有阿宅在此聚集)
    (4) 硬體廠商:似乎有些賣 router 還是甚麼儲存設備的廠商,沒有很注意,
                         不過藉由 SG 的加持,印樣中有家廠商的活動也成功招攬到
                         不少熱情的阿宅
    (5) 技術社群:有為了爭取超低團購價不遺餘力的藍色小舖, 
                       (如果沒有公司補助的話,真的要把握小舖的優惠價,希望每年還有)
                         還有點部落等等,似乎有集點換贈品的活動,不過我也懶得集,
                         想必有參加集點換贈品的都是勤勞的阿宅
  • 學員上課證做得還不錯,蠻有質感的,基本上是一張 RFID Card
    紀錄你上過哪些課,或者到過哪些攤位等等,
    因此在休息時間除了各攤位的人員努力的邀請你刷卡集點換贈品之外,
    也有微軟工作人員到處拿著讀卡機要幫你把卡片資料上傳到 .. Marketing DB XD?

    Anyway,我的卡在第三天中午交接給後面要聽課的同事,
    結果最後他說全部人的卡都被微軟回收走了,真可惜 ><"
    明明在公司就有看到去年留下來的學員證,微軟真的是小氣巴拉,
    報名費都那麼貴了,連張卡也不給人家留做紀念 .... =.="
  • 展場的 SG 就 ... 還好,我同事覺得很普衝 XD
    不過有一個蠻紅的,大家都搶著照她,應該是照片中右邊那位,
    吉祥物也蠻可愛的 ~~
  • 今年有兩個鑽石級 partner,分別是中華電信和 IBM,
    不過我實在搞不懂 IBM 到底哪裡有攤位還是甚麼好宣傳的地方,
    除了學員證上面看的到 IBM,好像就沒有其他地方有 IBM 的攤位或 LOGO了,
    感覺起來根本就是個錢太多的凱子 XD 真的是很有趣~
  • 剛剛在寫講師的部分的時候忽然發現,之前 TechEd 的講師介紹連結又失效了,
    (更新:好像是網址換了,吼,這一頁有列出全部講師介紹)
    既然如此就不得不捅一下,TechEd 的官方網站時在是有夠爛!
    看起來似乎是跟 iTHome 合作的,從報名成功之後的第一次登入開始,
    整個就用得很不爽,修改報名資訊分成長長的三頁要填寫,
    非得全部填完才會生效,我想先改個密碼,晚一點再填緊急聯絡人都不行,
    整個操作流程很難用,看不到 Usability 在哪裡。

    然後這網站用 IE8 Beta2 來開的話,就看不到每日的議程資訊了,
    拜託,這是 TechEd 的網站耶,要是甚麼 Office Online 在 IE8 Beta 掛了就算了,
    結果在課程內容強打 IE8 這個據說年底就要出正式版的產品的 TechEd 網站,
    用 IE8 來開根本就有問題,感覺就是很奇怪,台灣這邊的資訊應該不比美國慢多少才對呀,相信明年應該不會出現這種囧況。(搞不好明年是用 IE9 開網站會掛 ^_^)

關於講師的一些補充:

  • 周旺暾 (Blog在這裡, 我的課程心得在這裡)
    感覺他有時候講話會太快,然後糊在一起,如果他能把速度稍微放慢就很棒了。
    聽說他是一路從工程師努力往上爬到「資深應用開發技術經理」的位子,
    技術底子很夠,能講的主題很廣,從 Mix08 Taipei 的 Silverlight Streaming,
    到這次 TechEd 講 S+S & MS Cloud Computing,昨天公司又邀請他講 IE8,
    還蠻厲害的,但是聽他講課真的要超專心,因為他講話很快,
    一恍神可能就會漏掉甚麼重要的東西。
  • 李匡正 (Blog在這裡,我的課程心得在這裡)
    他的 Title 是「資深應用架構技術經理」,雖然他一開始就在抱怨要跟客戶溝通 SOA 的觀念非常辛苦,因為客戶都有自己的想法,也因此造成他自己根本就不喜歡 SOA 這個 term,但是又被逼著連續幾年要負責傳達微軟對 SOA 的想法之類囉哩囉嗦的一堆,但是他講課是蠻清楚的,英文發音似乎有特別練過,咬字很清晰,
    他的課不一定很有啟發性,不過會很有效的讓你吸收到他想表達的東西。
  • Steve Riley (Blog在這裡,我的課程心得在這裡)
    他是這次 TechEd 我最喜歡的講師,個人風格很強烈,穿著休閒的襯衫短褲,
    頭髮長到耳朵下面一點點(但有點禿頭XD),整體看來有嬉皮的 fu。
    他講課的速度很適中,是一般台灣人聽得最習慣的紐約腔(應該是吧XD)
    如同一般熱情的阿多仔一樣會有很多肢體動作,滿場亂竄,
    有時候還會站上椅子(甚至還有跪下一次XD)。

    他有講到一句名言:
    Why do you think your company give you a laptop?
    It's much more expensive then a desktop!!
    -- Becasue they know you will work for FREE.


    Hmm ... that's darn right! And I guess our company setup all the Web Sites (Issue Tracking, Work Repotring, Wiki, etc.) so you can work at home for FREE, too!!

    根據Steve的說法,他每年都在世界各地的 TechEd 講課,
    看來明年應該也會繼續來 TechEd Taiwan,到時候希望可以再去聽!
  • 楊勇克 (Blog ... 我懶得找XD 我的課程心得在這裡)
    那個阿鬼阿 ... 呃 ...,他的 Title 是「微軟大中華區的高效能運算技術經理
    我覺得他還蠻帥的,很可惜受限於語言,讓他沒辦法好好發揮,
    不然高效能運算應該是個不錯的 Topic。希望下次主辦單位可以注意到這點,
    既然他普通話講得那麼辛苦,不如直接講英文就好了,
    反正港式英文也是相當的有趣,硬是逼他講不流利的普通話,
    然後搞得大家都很辛苦,一堆人提早走,這又是何必勒?
  • 李智樺 (Blog ... 是個謎,我的課程心得在這裡)
    他是「資深系統架構師」,以前做過 RD 一段時間 (想必是名副其實的 RD),
    目前在 K2 這家公司做 consulting,他在某種角度看起來有蔣公的 fu,
    也有點像中華電信 MOD 廣告裡的那個管家XD

    如同前天寫的心得,上他的課蠻輕鬆的,以他的年紀來講,笑點掌握得很不錯,
    他的中文聽起來有點像北京腔,這點還蠻有趣的。他說以前當學生的時候,
    最討厭老師問問題然後要學生回答,他有一陣子在大學當講師,
    所以他上課的時候一樣會問問題,但是只要你有舉手他就送獎品給你,
    你完全不需要回答XDD,
    造成當天一堆人顯然不知道答案但是亂舉手的狀況,
    對於炒熱上課氣氛相當的有效,這招蠻有意思的,可以偷學一下。
  • 郭明祥 (Blog ...,我的課程心得在這裡)
    他是凌群的技術顧問,身上掛了一堆 MCAD, MCSE 之類的證照,
    看起來很厲害,但很顯然這些證照的考試範圍不包括時間管理

    基本上他的課..專心聽當然是學的到東西,很多細節的東西都解釋的蠻清楚的,
    只要你先 make sure 在他的課程之後你沒有安排重要的事情要處理就 OK 了。

以上是跟技術沒甚麼關係的感想,技術篇的補完看來要慢慢寫才寫的完了 ~~

2008年10月4日

Microsoft TechEd 2008 心得 - Day3

繼前一天充實的課程之後,接下來我剩下兩堂課程要參加,
教室都是大會堂(最大間的,可以容納1208人),
以下是我的心得:

0850 ~ 1000
課程主題:單元測試(Unit Testing)實務分享
講師:李智樺

李講師的講課內容很生動有趣,不過他的 blog 實在是無敵難找的,
黑暗執行緒大大也找不到,希望投影片裡面有附連結。

(由於上面的連結就是黑暗執行緒大大的筆記內容,因此我就以那篇筆記為基礎,
另外作一些補充。)

  • 採用Test Driven Development的開發模式,會強迫你進一步深入思考程式的各方面(架構、需求、作法)是否合理(所謂的 Second Thought),這點非常重要,
    在動手做之前寧可多花一些時間做深入的思考,
    可以有效減少在程式中埋下難解的邏輯錯誤的可能性。

    (關於如何利用 VS 進行 TDD 開發,可以參考 DNN CEO 的這篇 post)
  • 再一次強調 Martin Fowler 這位大師所說的:「不要相信文件,只相信 code」,
    但是通常 code 數量太多(成千上萬),那麼要如何相信呢? 利用 Unit Test 來驗證!!

    在工作一年後,深深的覺得這句話果然是至理名言,非常中肯;
    而李講師所提倡的「以 Test Case 作為交接以及外包廠商的第一道驗證」的觀念
    我也非常認同,不過這應該需要公司的 Top Management 下決心去貫徹,
    否則很難全面落實。

    李講師還提到「己所不欲,勿施於人」這句老話,也就是說 101% 的 developer 都曾接手過文件敘述含混不明,程式碼混亂不堪(就算很乾淨也可能因為數量太龐大而不易了解)的案子/元件,這絕對是很痛苦的事情,因此身為一個優秀的 developer就該要有一個 discipline:當離職前將自己手上的工作交接給接班人時,
    應該就要附上 Unit Test 的程式碼,並且實際 RUN 一遍!! 如果連這個最基本的門檻都沒辦法達成,說真的,的確是很難檢驗這些程式碼到底有沒有問題。
    (人工測試能做到多高的 Code Coverage? )

    從這邊繼續延伸下去,由於接下來我也要開始著手開發新的元件,
    所以最近有時間就會去 Survey 自動從 Source Code 產出文件的工具,
    因為只有 Source Code 才是最準的!! (Source Code 就是你最好的老師,
    一切的真相都在 Source Code 裡。)
    等到有初步的結果我再整理 PO 上來。
  • 綜合整理在 TDD 思維下的開發順序;

    (1) Write Test Case (with dummy input/output)
    (2) Write your code
    (3) Modify the input/output ofthe Test Case
    (4) Run Unit Test --> Target: 100% pass
    (5) Run Code Coverage (Target: at least over 80%)
    --> May need to write more Test Cases to improve code coverage
    (6) Refactoring
    (7) Iterate the above steps until the System is complete
  • 整合測試和單元測試的差異:這應該還蠻好理解的,單元測試只管自己這個小小的 function 是否可利用 (正確的) input 產生 output,並正確處理例外狀況。
    而整合測試則是要確保當綜合個別小小的功能時,能夠正確完成一個大的目標。
  • 我也聽不懂劍潭的笑話 .... || 笑點也許是這個鄭成功把寶劍投入潭中鎮壓鬼怪的故事根本就是 100% 唬爛的 ... =.="
  • 其他 VS 有多好用好用之類的就不用提了,我覺得李講師的台風真的很不賴,
    但是 maybe 是受限於大會堂的性質,必須要盡量淺顯易懂,
    因此其實內容講得有點重複(也許是故意重覆來加深大家的印象),
    接下來他會在 10/16 的MSDN 研討會講 WCF,如果有空應該去捧個場,
    希望可以講得深入一些。

0850 ~ 1000
課程主題:提升ASP.NET網站延展性的策略與應用
講師:郭明祥

這一場說實在是很無聊的,跟上一場相比,講師的風格差太多,
這場的講師完全就是 100% 自己講自己的,完全不管台下的反應
本來這個 session 規劃到 11:30 結束,結果我和我同事 11:50 就受不了走了,
他整個就還是依然故我的繼續講,甚至有兩個工作人員上台去提醒他也沒用,
又沒有講得特別吸引人,整個聽完就沒甚麼印象,
還耽誤到我們中午吃飯的時間 ...

Anyway, 延展性基本上分 Scale Up (向上延展,擴充本機的硬體),還有 Scale Out (以多台機器提供服務,例如 Cluster / Web Farm 等架構),其中有很多要考量的細節,
必須慎重評估各種方案以及整個 application 的特性和應用情境,才能做出最好的選擇。

因為細節沒印象了,大致上是這樣,花了很多時間講細節 (e.g. ASP.NET的運作),
裡面的確是有很多學問,因此 developer 不能只關注軟體面(雖然光是軟體就很難精通),
必須要一定程度的了解硬體上有哪些要注意的地方,以及有哪些可善加利用的特性,
如此才能打造出真正擴充性高的應用程式。

另外他有介紹 Fiddler 這個效能監測工具,除了監控封包併計算統計數據外,
還可以產出不錯的圖表,而且是免費的,算是蠻實用的。

這一場另一個有趣的地方是,我注意到有一位聽障的朋友坐在第一排,
然後旁邊有人即時手語翻譯!! 這實在是太酷炫了,我以為手語只能表達一般生活用語,但是顯然手語也是可以表達「Application Scalibility」、「ASP.NET Worker Process」等專有名詞的!! 因此在這裡要對那位即時手語翻譯大師敬上十二萬分的敬意!!
雖然不知道這是不是微軟提供的服務,不過希望我永遠都不需要用到 Orz..

現在由於太想睡所以實在想不起來他到底還講了啥,似乎還有一個計算 remponse time 的公式,不過剩下沒寫到的,就一起放到下一篇的補完裡面好了,預計還會加上 Rosario、Oslo、SDLC、Live Mesh 等等的資料,敬請期待 ~~~

2008年9月29日

Microsoft TechEd 2008 心得 - Day2-1

科科,Delay 好幾天的心得終於有空寫了,
由於我並沒有辦法很爽的去參加三個整天,
而是參加了第二天整天加上第三天早上,
因此預計就用三篇的篇幅來介紹我的心得 ...

Day2 -1

0850 ~ 1000
課程主題:深入淺出談軟體與服務(Software-Plus-Services)
講師:周旺暾

我一進教室就發現,原來他就是在8/26的mix08 Taipei講 Silverlight Streaming的講師,
似乎蠻有名的,而且他能講的範圍很廣,例如這次的主題是S+S(Software Plus Service),
也就是微軟大約在2006年之後針對SaaS (Software as a Service)提出的另一套見解,
並且花了很多時間說明微軟未來的 Cloud Computing 的架構 (細節還是得看投影片),
以下列出幾個重點:

  • 微軟未來的 Cloud Computing 平台名稱應該會叫做「Windows Live Platform」,
    這個名稱跟現有的 Windows Live Service 比較一致,
    但要特別注意的是「Platform」這個字,這除了表示微軟對這套架構的重視,
    也意味著整個 Architecture Design 基本上已經完成,現在正努力實作中。
    這個 Platform 基本上很類似 3-Tier 的架構,以下一一說明。
  • 在微軟規劃要提供的Cloud Computing藍圖中,他們認為應該提供類似OS的服務
    也就是說從底層的服務開始都要提供(e.g. Storage, Network)。
    會做這樣的決定應該是因為微軟本身就已經對軟體的各層次都涉入很深,
    從底層的OS、Programming Language,一直到UI這一層,
    這也是他們要保障既有投資的作法吧。

    微軟要強調這一點是目前市場上有好幾種 SaaS 的運作型態,
    包括 Platform as a Service (PaaS)等等總共有三種的樣子,
    不過我印象沒有很深刻,還是要等投影片出來才比較清楚 ...
  • 在上述的 Platform 中,最底層稱為「Global Foundation Services (GFS)」。
    從名字就知道,這一層提供的是各式各樣的基礎服務 (參考:早期的架構),
    Hardware, Storage, Networking,Computing等,這些服務位於系統的最底層,
    對一般 End User 來說根本不會有感覺,對於 developer 來說,
    原則上也不會直接接觸到,這些東西都是微軟幫你準備好可以直接使用的。

    目前微軟大約以一個月新增一萬台 Server 的速度在建置這一層的服務,
    其他如 IBM 或 Google 也都在一直拼命建機房,
    可見各(超)大軟體公司都很努力的對 SaaS 做出自己的解釋,並提出 Solution。
  • 在「Global Foundation Service」的上一層稱為「Building Block Servcices」。
    比較有 sense 的 User 可能就會知道有這一層的存在,
    這一層提供諸如 Authentication, Authorization, Communication 等服務,
    另外我覺得 Workflow Engine 也可以放在這一層。透過這一層服務的組合,
    再加上特殊的功能以及 UI,就可以建構出更上一層的「Solution」。
    這一層服務對外提供的 API 對 developer 來說就非常重要了。
  • 接下來就是整個 Platform 的最上層:「Personal & Enterprise Solutions」。
    這裡提到的 Solution,除了微軟自己產品的 Solution 以外,
    也包含 3rd Party (ISV) 在微軟的平台上開發出來的 Solution,
    例如微軟的 Office、Exchange,3rd Party 的 ERP、CRM 等等的 Solution。
    跟以往 ISV 提供的 Solution 最大的差異是,由於底層是建構在 MS Cloud 上
    因此這些 Solution 的延展性會非常大,但 Monotization 會有很大的改變。
  • 目前底層的 Service 已經建置的差不多了,接下來很大的 efort 會花在第二層,
    並且要設法將現有的產品 (e.g. Office)轉化為利用第二層的服務來提供功能,
    未來微軟的新產品目標也都是建構在這個 Platform 上
    藉由 Cloud Computing,微軟也希望接觸長尾效應的末端、累積起來量也是相當可觀的潛在客戶。而微軟(內部)的Service也將更有彈性和擴充性(理論上不會掛掉)。
  • 以上是最重要的部分,另外還提到了一些機房管理之類的東西,
    還有微軟認為像上述那些底層的服務,應該交由專業的廠商來提供,
    例如機房的管理就需要專精的廠商來提供,Storage 也有專精的廠商來負責。
    另外他也提到了 Google 的海上機房專利(一時間找不到比較官方的資料@@a),
    也是很有趣,不但很酷炫,而且一整個節能減碳,不過資料傳輸是比較麻煩。

    但是這樣會有很多困難需要克服,例如:

    (1) Service Level Agreement (SLA) 的定義。到底是要由 ISV 負責,
         或者是由更底層的平台廠商負責?
    (2) 資料隱私權的問題。一方面來講是 User 會不會放新將資料交給平台廠商管理?
        另一類型的 User 是永遠也無法將資料放到 Cloud 的,例如國防部。
        對於國防部之類的客戶就沒辦法了,不過要說服一般客戶的確是很大的挑戰。
  • 在時程規劃的部分,預計在今年的 PDC 大會就會釋出 Beta 板的 Cloud SDK,
    其實現在已經陸續有各種服務提供出來,例如 Office Online、Exchange Online,
    SQL Server Data Service 等等,未來基本上微軟各個主力產品都會有 Online 版,
    如 SharePoint, BizTalk, Identity Server, 等等的,
    另外下一場的講師也有作一個 BizTalk Service 的 Demo,相當的淺顯易懂。

 

1020 ~ 1130
課程主題:微軟在SOA上的策略與願景
講師:李匡正

這場的議題主要圍繞在「微軟對 SOA 的解釋和想法」,跟上一場也有些關連,
首先一開始要強調的是,SOA 是為了解決企業內不同系統間要互相溝通的難題,
而逐漸發展出來的一種 Architecture,因此並不是一個實際的「產品」或「Protocol」,
實際上可以用各種方式(語言、平台)來實作,嗯,這算蠻基本的。

另一個 SOA 的特性是非同步 (Async),由於一項功能是由分散在外的 Service 聯合提供,
因此很難確保要做到即時的回應,因此諸如 Local Storage, Synchronization 等議題就變得更加重要了。也因為這樣的特性,造成 SOA 並不一定適用於所有的 Application。


接下來他提到了 WOA (Web Oriented Architecture) 的概念,
稍微Google一下就會發現這個概念並不新,在2006 Open Source Conference就有討論。
跟一般人認知的 SOA 是應用在企業內的封閉網路中不同的地方是,
WOA 強調「Web」,意味著這樣的架構是對外開放的 (Internet),不侷限在企業內,
顯然在安全性上需要考慮的更多 (我想可能也有更多 Service Composition 的可能)。


另外就是 WOA 似乎都走比較輕量級的通訊協定,例如 REST,
SOA 通常都是走 SOAP。(WCF未來會支援 REST,但主要還是走 SOAP 的樣子)

然後接下來 ... 不是很記得微軟在 SOA 上又有另外發明甚麼架構,
基本上架構應該就是上一場周講師講的那個 Windows Live Platform
在 IDE 上,微軟的目標是希望 Visual Studio 的 Design Style (experience) 能夠做到不管是開發傳統的 On-Premise Solution,或者是 Cloud Solution 都能夠一致。
Visual Studio 本來就是超強大的開發工具,繼續投資也是可以預期的。


另外李講師則是以 BizTalk Service (現在似乎是 Alpha 版) 的開發來做實例,
為了讓 VS 的開發方式維持一致,微軟針對 BizTalk 開發了一套「Cloud Activity」,
用起來就跟 Workflow Foundation 中的 Activity 一樣,一切都是拖拉就搞定,
然後不可免俗的又是利用 WCF 來 demo Cloud Service 間彼此如何溝通。
(果然如同祭司說的一樣,如果不會 WCF、WF,以後研討會聽起來整個就很不好吸收)

看來微軟是非常重視 BizTalk 的,而 Workflow Engine 未來也會扮演很重要的角色
這方面的發展應該要持續的觀察。

呃 ... 寫到這裡發現似乎沒辦法整理得很好,不知道為什麼好像沒有記住很多細節 XD
(其他還有講到 Internet Service Bus, CardSpace 的目的是支援聯邦式的認證,從 outsourcing --> cloud-sourcing 等)
可能對SOA已經有點麻木了,而VS的 Demo 也沒有辦法多神奇,反正就是很簡單的樣子,
加上 Windows Live Platform 有比較清楚的架構圖,So ....
這一場的心得就讓我草草的結束吧! XD

2008年9月28日

Microsoft TechEd 2008 心得 - Day2-2

Day2 -2

1330 ~ 1440
課程主題:It's the 21st Century: Time to Throw Away Your Medieval Gateways
                - 21世紀的資安事件中,市場上的擋火牆真的能保護你的資料嗎?
講師:Steve Riley

Here is Steve's Blog, and this post (directly connect to your copnet with IPsec and IPv6) is the topic in this session.

我覺得Steve的presentation skill很厲害,非常懂得如何炒熱氣氛 (他本身也很high),
他現在的Title是 Senior Security Strategist
聽起來整個就很高級而且很賺 (但是相對的也很困難,各方面都要懂得很深入),
他主要的工作就是在像TechEd這樣的conference講安全性的議題 (到處飛來飛去),
而議程內容主要就是利用平常沒講課的時間,
不斷的跟微軟內部的developer討論,還有接受客戶的feedback來決定的。

這堂課聽到的幾個重點如下:

  1. 就工程上(或者科學上)來說,「前提」或「假設」是非常重要的。
    因為系統/protocol所有的設計/功能,都是在一開始定義好的前提下進行的
    當前提是不夠周全(甚至是錯誤的),駭客就會想盡辦法侵入你的系統。

    舉一個最簡單的例子,如果你有一個功能的假設是:
    「這個欄位使用者永遠不會輸入負數,所以程式只要處理正數和零」,
    那麼這個系統就會處於一個危險的狀態,因為當駭客察覺到這個前提後,
    就會千方百計的把負數扔進那個欄位,這時候系統可能就 crash 了。

    其實仔細想一下,這個精神可以廣泛套用到生活上的各層面,
    包括經濟、政治、法律等等,當有人可以設法讓某樣重要的前提失效,
    隨之而來的通常就是難以想像的巨大利益
  2. 環境的改變會對系統的各層面產生巨大的衝擊。
    這裡講的「環境」,也就是第一點所講的「前提」的很重要的一種,
    通常系統很容易就會針對目前設定(短時間內)要運作的環境來進行設計,
    因此隨著時間的流逝,一定要不斷的對系統進行重新修正,
    否則會漸漸的產生越來越大的漏洞。(因為環境的變化太大)

    當然另一種做法就是將老舊系統淘汰掉,重新針對現在的環境設計新的系統。

    以Internet 來說,最早期(約在上世紀60年代)第一次形成機器間可溝通的網路時,
    那時候大約只有5台機器,15個人,5個 Application (其實詳細數字我忘了XD),
    因此是 trsuted network, trusted machine, and trusted people.
    所以他們那時候壓根沒想到要注意所謂「安全性」這回事。

    據說在第一版的 Internet Protocol (RFC 791)中的最後面有提到,
    在這個 protocol 的 development中,「Security」並不列入考慮。

    當然現在的新版文件裡面都有強調 Security 了,
    不過 Steve 說看到這句話應該會 strike the very core of your soul
    想想也是沒錯,現在每天這麼大量的機密資料(金融, 個人, etc.)的傳輸,
    靠的就是當初設計時根本不考慮安全性的通訊協定(而且好老了),實在是很可怕。
  3. 愛因斯坦對「瘋狂」的定義你一再的用相同的方式重覆做同樣的事情,
    但期望做到最後會得到一個不同的結果。


    這裡要強調的是說,現在已經有各式各樣關於安全性的資源,
    告訴你怎樣的程式碼會導致 XSS / SQL Injection,
    如果不小心管理防火牆 policy /不做 update 就很容易會被入侵等等,
    但如果你還是用舊的方法在寫程式,用舊的思維管理你的網路環境,
    卻期望用舊的方法做事可以避免新型態的攻擊,那麼你就是瘋了,
    因為這是絕對不可能的事情
  4. 關於課程的主題,簡單說就是一套利用IPsec和IPv6讓員工/客戶能夠從地球上任何一個角落,安全的連線到公司內部網路的做法。其中有很多細節其實記不太清楚,
    不過可以參考他的Blog

    其中一個重要的觀念是,sadly, 對於要從 Internet 進入 Corpnet 的資料,
    必須要預設這些資料都是有害的(malicious),直到證明它們是無害的為止

    這個原則就是第一點所講的「前提」,必須要有這樣的假設,
    才有可能真正建構出一個安全的企業內網路,例如假設天真的假設所有從所謂 "trusted sources"收到的資料都是 OK 的,不另外進行檢查,
    那麼當這些 "trusted sources" 被駭客攻陷的時候,你的企業網路就準備等死了。

    另外他提到為何防火牆應該僅過濾Inbound Data,而不應該處理 Outbound Data
    大致上是說正常來講,有問題的資料都應該被擋在外面,
    因此企業內部都是安全的資料,因此內部機器間的資料傳輸應該不需要檢查,
    當然這樣講聽起來也沒錯,但是我覺得並非所有資料都會經過防火牆的檢查,
    例如員工用隨身碟或者藍芽手機來傳輸的資料等等,當然這也牽扯很廣。

    其實內建在 Windows Server 2008 裡面的防火牆就有 Inbound & Outbound Rule,
    可見在某種程度上還是需要對Outbound Data作一些管制,
    例如合理的限制沒有權限的User就不能透過他的機器對Server作一些要求等等。

 

1510 ~ 1620
課程主題:Virtualization and security: what does it mean for me? 
                - 虛擬環境架構下該如何建置資安系統【英語演說】
講師:Steve Riley

這一場還是由Steve主講,重點擺在隨著 Windows Server 2008 推出的 Hyper-V (Virtual PC 的下一代),很深入了介紹了 Hyper-V (hypervisor) 的設計理念和架構
不外乎就是架構多好多好,Hyper-V 多安全多安全等等(另外配合一些實例),
另一個重點是要打破「在虛擬化的環境下,舊有的」
因為講了一大堆細節,對virtualization又沒啥研究,因此印象不深,
就記憶所及的部分有以下幾點 (過一陣子應該可以直接抓投影片來看,超精美):

  1. 特別強調 Virtual Machine 跟 Hardware 的 Isolation。
    由於若允許虛擬層直接存取到硬體層,那麼若VM受到感染,
    可能就會對實體機器造成很大的威脅,因此實際上跟硬體間的溝通,
    主要還是透過Host系統內的Hypervisor來進行。

    另外一個重點是 Hypervisor 裡面只會有微軟自己的Code
    這段主要在講說 VMWare 的 ESX 似乎有提供 3rd Party 客製化的部分,
    Steve 是 argue 說在如此底層的原件摻雜外部的 Code,可能造成相當的危險,
    因此為了客戶的安全,微軟是不會幹這種事情低!

    不過講到後來,在 Hypervisor 的 Future Version 中,
    似乎又會開放 Interface 出來,讓虛擬層能夠直接跟硬體溝通
    目標應該是為了要提高效能,但是這樣似乎跟前面強調的 Isolation 有衝突,
    不確定到底是怎麼回事... 不過起碼目前版本的 Hypervisor 表面上聽起來很安全XD
  2. Hypervisor是RUN 在 Ring-1 (應該是吧@@),舊的 CPU 的架構中最底層是 Ring0,
    在新的CPU架構中變成多出一個Ring-1,這裡我也不太懂,等很有空再找資料看。
  3. 在虛擬化的環境中,「安全性」的各項議題跟以前都是一樣的。
    簡單說就是在攻擊 Checkpoint 這陣子推出的虛擬防火牆啦 XD ..
    似乎在 VMWare 的架構中,可以允許 VM 間彼此透過特殊 protocol 溝通,
    但是在微軟的架構中,VM間也是透過標準的網路架構來溝通,
    因此基本上每個VM只要依靠本身的防火牆+防毒軟體就可以阻絕各種惡意攻擊了,
    並不需要另外花錢建置所謂的「虛擬防火牆」。

    另外他也舉例到,從最早的 DOS 是 1Machine+1User+1AP,
    到Windows 3.1 (1Machine+1User+nAP),Windows 95+ (1Machine+nUser+nAP),
    其實都是在 fool the machine,實際上在任何一個時間點永遠只有 1User + 1AP
    因此在 Virtualization 的環境下,就是 1 Real Machine + n VM + nUser + nAP,
    只是 fool 的程度更上一層樓而已,本質上是沒甚麼差異的,
    舊有的安全性觀念和 practice 仍然適用,至於是否會衍生出新的威脅,
    就要看前面兩點所說的虛擬層的架構設計問題了。
  4. VM的好處,在於可以很方便的觀察駭客如何進行惡意攻擊。
    因為是VM (本質上是一個在 File System 中的檔案),所以掛了基本上也不太痛,
    隨時要做新的VM或者還原的effort基本上比搞一台實體機器低得多。
    因此VM也很適合拿來測試Beta版的軟體,或者開發中的系統等等。

    雖然有人會 argue 說駭客可能會讓惡意程式偵測是否處於VM的環境中,
    若判斷屬於VM則不發動攻擊等等,但是目前實際上在網路上的機器,
    根據統計可能已經有將近 1/3 都是VM,而且現在的攻擊多半是自動化+大規模
    因此透過VM來研究駭客的惡意程式仍然是有效且成本低廉的方法。

    因此,Steve 也很鼓勵 developer 利用 VM 的 sandbox 特性,
    來測試並修正自己系統中可能存在的安全性問題。
    (& 觀察駭客如何進行攻擊永遠是一件很好玩的事 XD)
  5. 只要有新的 Security Update 出來,請立刻執行修補的動作,不要等測試完畢。
    在這邊 Steve 是拿美國空軍來做例子,他說以前美國空軍的 update 總是慢一拍,
    因為每次有新的 update 出來都要在測試環境通過一系列的測試,
    等到確認沒有問題之後才會真的進行 deploy,等到完全 deploy 完,
    時間可能差距達兩週甚至一個月。後來他們覺得這樣不行,因此進行研究,
    最後發現 update 一出來就立刻進行更新,更可以有效降低被入侵的風險

    由於現在的0 Day Attack越來越多,就算在一天內就能測試完畢,
    這中間的空窗期仍然可能遭受很大的威脅,Steve 的另一個 argument 是說,
    如果裝了 update,導致你的系統掛了,那就表示你的系統是依賴在這次被解決的弱點上,所以是你的系統有問題!不是 Microsoft Update 的錯!

    我覺得這個說法是蠻有道理的,雖然可憐的developer往往是被客戶要求,
    用各種詭異的手法來完成客戶要求的功能,才會造成上了update系統就掛了。

    不過 ... 微軟以前老是喜歡不走標準,搞自己一些特殊的格式或與法,
    然後在新版的軟體中洗心革面的改走標準的路 (e.g. IE8)
    而造成一大堆舊的程式掛掉,這也是很鳥的事情 ...
  6. 按照一套標準的Hyper-V建置作法,那麼Hyper-V幾乎是牢不可破的(就是說VM掛掉不會害的Host系統也跟著死掉)。詳細步驟要看投影片,印象中包括以下幾點:

    (1) Host System should be Windows Server 2008 - Server Code.
         重點就是盡量減少 Attack Area,這台機器就全職負責Host VM即可,
         其它的功能基本上能免則免。
    (2) 該開的防火牆一定要開,公司的 Security Policy 要貫徹,
         (Windows) Update 一定要隨時保持最新等等。
    (3) 其他實在是不太記得了 .. @@"

 

1650 ~ 1800
課程主題:高效能運算平台High Performance Computing Server 2008 - 管理與部署介紹
                Advanced Overview: High Performance Computing Server 2008
講師:楊勇克

很不幸的,這位講師是道地的港仔,因此大概在開場的一分鐘內,
我和我同事兩個就瞬間體認到,普通話對他來講是很吃力的,
反過來說,他的普通話對我們來講也不是聽得相當舒爽,
再加上其實這堂課是屬於 MIS/ASE 的課程, 他講的也是非常 detail,
所以聽了十分鐘之後我們就閃了,很多人還比我們更早走哩 ~~

所以這堂課的心得就是,阿鬼阿,你還是講中文的好... (真是相當老的梗 Orz)

PS. 希望下次請香港講師來上課的話,可以全程用英文講
      這樣真的對大家都好,我覺得楊講師也是很無奈而且很努力低~~

PPS. 因為對 Steve 講課的 Style 印象太深刻了,所以就先寫好PO出來,
        晚一點再PO關於微軟SOA和 Cloud Computing的心得。

Google Spreadsheet 裡用規則運算式

最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D