My friends, my life, my style - James S.F. Hsieh

9/27/2009

2009 09 23-26 菲律賓 長灘島 Boracay



這張照片是我這次去長灘島最喜歡的一張照片, 雖然 "重心" 感覺有些不穩應該需要剪裁一下, 但是我還是懶的後製了. 這兩位是長灘島當地的孩子, 他們有著無邪的笑容與烏黑烤焦的皮膚,


寄件者 2009 09 23-26 菲律賓 長灘島

除了泳技超強之外, 他們樂天熱情的個性真的讓我印象深刻, 他們可以隨時隨地的跳起舞來或是在船的邊緣表演翻跟斗跳水, 划著舢舨帶著蛙鏡就去潛水抓魚, 所以他們的玩具也非常 "特別".


寄件者 2009 09 23-26 菲律賓 長灘島




寄件者 2009 09 23-26 菲律賓 長灘島

當然, 也有辛苦的孩子, 有些孩子很小就要負責家計, 在海邊兜售著手工藝品, 可愛的他們拿著一個籮筐裝滿著貝殼, 珍珠, 石頭, 做的項鍊首飾,  在沙灘上兜售, 這些孩子有別於其他樂天玩水的孩子, 少了些樂天的感覺, 看了真的心疼, 可惜我沒有拍到照片無法與大家分享, 真的很懊惱這次旅行拍太少照片了.


寄件者 2009 09 23-26 菲律賓 長灘島


寄件者 2009 09 23-26 菲律賓 長灘島

  

這次的旅行天公並不賞臉, 幾乎有一半的時間都在下雨, 對於我們這團的 "嬌客" 們實在是種煎熬, 淋著雨背著背包對我來說是種樂趣, 雖然有些不便, 但是這並不減少了我對海灘與熱帶島嶼的熱情, 唯一不足的就是陽光真的太少了, 所以照片就沒有那麼漂亮嘍 XD


寄件者 2009 09 23-26 菲律賓 長灘島



寄件者 2009 09 23-26 菲律賓 長灘島

這張是我第二喜歡的照片, 有個當地的小販划著舢板在浮淺的海上兜售耶子, 這是個聰明的行銷方式, 因為海水的原因浮淺完畢定口乾舌燥, 當下喝個耶子水真的是太過癮了, 聽導遊說這還是全島最便宜的耶子水喔, 真是難以想像. 菲律賓人是個認份的民族有著樂天的個性, 有人說他們比較懶散, 但我卻不那麼認為, 與世無爭樂天知命遠比我們華人好的多了, 我相信 Stella 一定會喜歡這裡, 我一定會帶著她再去長灘島的 :P


寄件者 2009 09 23-26 菲律賓 長灘島


檢視較大的地圖

9/20/2009

Picasa 為什麼這麼快速

為什麼 Picasa 這麼快速與好用, 以下是我的分析
  1. 使用者當下的動作為最高需求, 其餘的批次動作都可以暫時停頓
    Ex: Scrolling, Editing vs Cataloging
  2. 效能與美觀, 以效能為優先來取得平衡
    畫面簡單可以減少重繪時的計算, 如此可以有更多的時間來維持效能
  3. 提供大量的整批式操作方式, 如果延遲時間長的操作則可用非同步的方式進行
    Ex: Ranking,  Rotation, Uploading, Tagging, 
  4. 減少傷害效能卻不實用的的功能
    • 對資料夾的處理維持與檔案系統一致的邏輯: 如此可以減少邏輯上的衝突, 並且維持使用者原先對 Media 的階層管理邏輯
    • Scrolling 的速度受到控制: 如此可以減少載入 Thumbnail 的需求, 快速的 Scrolling 幾乎不可能用來瀏覽相片
    • 除了目錄間的切換外 Scrollbar 無法 jump/seek: 如此可以減少載入 Thumbnail 的需求, 也可以很容易 Prefetch
    • 利用較低效能傷害的方式來呈現 Cataloging 的進度與結果: 在快速反應與不拖慢反應時間這兩個因素下找到平衡
Adobe 軟體的原則是Performance is important to creative professionals 我相信 Picasa 辦到了

9/19/2009

2009 09 19 阿里磅瀑布

寄件者 2009 09 19 阿里磅瀑布




檢視較大的地圖

9/14/2009

Google stree view 的有趣影片



9/12/2009

猜猜這個瘦子是誰?...... 哀~~ 我老(胖)了

寄件者 James 寫真
其實我也有瘦過 不是嗎?~~~ Jul 1, 2002

9/07/2009

[OOAD] Abstraction 抽象化的目的

抽象化在軟體架構中是個極為重要的過程, 我們利用抽象化來簡化複雜度, 抽象是幫助人們思考的重要手段, 抽象化的目的在於: 提供一個清楚且明確定義的抽象層次, 該層次必須能夠容易描述, 理解, 分析且富含彈性, 抽象層只揭露出必要的資訊, 隱藏不需要知道的細節. 所以, 我們可以視抽象層是個 "思考問題的邊界" "運作的協定" 對於邊界內外的兩端是無關的, 兩者唯一相依的就是抽象的定義.

抽象化的設計原則為 Principle of least astonishment:
1.     明確且可行的抽象目的與具有望文生義的命名 Purpose, Primitiveness, Naming
2.     抽象層獨立於 client 與 supplier 並且隱藏細節 Dependency Inversion Principle
3.     分離無關的抽象相度 Single Responsibility Principle,  Interface Segregation Principle
4.     抽象層之可擴充性與之不變性, Extendable, Applicability, and Invariant, Open Closed Principle
5.     抽象層的行為責任必須明確定義 Well-defined contract model and IOPE
6.     抽象層的複用性越高越好 Reusability
7.     相同層次具有一致性的抽象概念 Conceptual consistency
8.     相同層次具有責任的正交與最簡性 Sufficiency and Fine-grained
9.     相同層次具有責任的完備性 Completeness
10.   不同層次間的差異性必須適當 Semantic gap
11.   不同抽象層之間的耦合性必須降低

實作抽象層的原則:
1.     完全符合抽象層定義的行為與語意 Liskov Subsititution Principle
2.   使用抽象層時完全不需要/不能對實作與細節有認知與假設
3.    實作多個抽象層時, 各抽象層相互無關


抽象層的改變越多, 語意就越難保持一致性, 最後導致開發人員必須花掉大部分的時間去追蹤程式碼來了解其語意, 至此, 抽象的存在就蕩然無存了.

[OOAD] 一個複雜系統中的五種屬性 Part4

Common Patterns
"太陽底下沒有新鮮事" 差異性在大的系統中都有相同的部分跟型態, 舉個例子, 整個生物圈來說雖然生物有著極大的差異, 但細胞層面的構照與差異相差就相當的小就是這個現象. 存在共通性有許多好處, 我們可以利用共通性思考與解決相似的問題, 進而達到抽象推演與複用的兩大好處.

Stable Intermediate Forms
系統發展建立在一個重要的條件之上, 這些系統都必須建立在一個穩固的子系統之上, 並且, 該系統的演化也是於自於上一個穩定的系統. 只要建立在不穩定的系統上, 自然會導入不確定或是不穩定的因子, 如此只會汙染或是惡化一個系統的穩定性.

9/02/2009

Corel Digital Studio 2010 終於發射了~~







Corel Digital Studio 2010 Demo
Introducing Corel Digital Studio 2010

Review of CDS 2010
Review of CNET1 Review of CNET2
Review of PC Pro
Review of Software.com
Review of TopTenREVIEWS
Review of Amazon
Review of ComputerActive
Review of Examiner.com

9/01/2009

Alien Makes Contact!! (The S.E.T.I. Song featuring Billy Reid)



大家要參加 S.E.T.I 或是 FightAIDS@Home 喔~~