從 Google 書籤看標籤與資料夾的設計觀 ─ 設計篇

如果我是某大軟體公司的主管,要應徵軟體結構性的設計人員 (偏對技術性,而非需求分析),一般的職稱是稱之為 系統設計師 (SD, System Designer),或者號稱為架構師 (Architect)、資深技術人員等。 若他們在履歷表上寫著擅長或懂 "O-O (Object Oriented)" 或 "UML"、結構設計 等,那麼,我不會考他們什麼 UML 語法還是 設計樣式 (Design Pattern) 等等。 那只是 "背書" 而已,一點意義都沒有。 要背書的話,不如直接給個電腦上網,然後要應徵人員展現如何透過 Google 查詢找到如何實做設計樣式的方法還比較實在。

我會提供的考題,必然是針對應徵人員 "自我思考推理" 的能力驗證,答案的正確性完全不重要,重要的是你為什麼是這樣表達設計的,能否自圓其說。 具有獨立思考能力的設計師,這才是人才!

所以,我會提供一個如這樣的考題:

Google 書籤 (bookmark)是利用 標籤 (Tag)來作分類的。 一個書籤可以被 "標記" 為一到多個標籤,相對來說,一個標籤可以有一到多個書籤。 另外,標籤是不會含有子標籤 (Sub-Tag) 的。

如果我要改良 Google 書籤的設計,希望能再加上 "資料夾 (folder)" 的管理觀念,也就是說書籤必然會 "放" 在某一個資料夾目錄內 (也只能是唯一),而某一個資料夾可以擁有一到多個書籤,同時資料夾也能再包含子資料夾 (Sub-folder)。

同樣類似的應用,可以延伸至部落格 (Blog)的本文 (Content)與標籤、目錄 (category)的結構設計。

請你利用 UML 類別圖,來表達出關於 書籤、標籤與資料夾的結構關係,並簡單說明你的設計想法。

上述的考題是一個 "需求陳述",應該算是蠻普遍的一般應用常識了。 不過若還是不懂上述的敘述,那麼也可以再佐以範例,來解釋什麼是 書籤、標籤與資料夾的概念。

老實說,我是以為,這類的結構設計應該算是很基礎的了,事實上,答案也比想像得意外簡單。 但是,我也問過好幾個號稱對所謂 設計樣式 很熟悉的資深技術人員,最直接給我的答案就是說: 這不就是 "複合結構 (composite structure)" 樣式的應用嗎? 不管你說什麼,反正先把設計圖畫出來再說吧。 結果呢,也真的如我所料,表達不出所以然,真的就只是在背書而已。 最大的盲點,就是把 標籤 (Tag) 與 資料夾 (folder) 給關聯在一起,而其實這兩個是一點關係都沒有的;甚至有些還執著在因為 標籤與書籤 的多對多關係,所以又拉出了一個所謂的 "關聯類別 (Association Class)",卻又說不所以然,越弄越複雜。 因為既然是表達想法,所以類別圖自然是表達 概念 (concept)與概念之間 的關係,而至於那個多對多的關聯類別,是在更細節性的規格設計實做階段再來討論即可,太早論及,反而模糊了要突顯的概念。

表達這類結構性的設計圖,要先找出核心的類別是什麼。 在本例中, "書籤 (bookmark)" 即為本文主體,是最根本的核心類別。 再來當能分別出 標籤 與 資料夾 並沒有關連,而是各自與 書籤 建立關係,那麼,這個設計的表達就可以說對了一大半以上了。 參考的 UML 類別設計如下圖:
繼續閱讀 »

從 Google 書籤看標籤與資料夾的設計觀 ─ 觀念篇

我使用 Google 書籤已有一年多餘的時間了,並非是為了好用,而是為了 "可攜性"。 因為我有多臺電腦,而且也常在外面透過筆電或 Vm 上網,也常切換 IE or Firefox Browser,書籤的管理,就變得是一個問題了。 而使用過眾多的書籤管理同步工具,仍是覺得相當麻煩,所以還是回歸到使用最簡單,Google 所提供的書籤管理機制,只要上網登入 Google 帳戶後,就可以存取網路上的書籤,相當便利。

先看看我的書籤是如何規劃的吧,參考下圖。

圖 . Google 書籤的管理規劃-01
(點擊圖片鏈接看原圖)圖 . Google 書籤的管理規劃-01

先瞭解一件事, Goodle 書籤的管理,是沿用 Google 平台傳統的機制,就是利用 TAG (標籤)來組織分類。 Gmail 是如此, Bookmark 也是如此。

所以,我若要 Bookmark 某個遊戲網站的書籤,TAG 大概就是標記如 "Game" 名稱之類的。 那麼當遊戲類的書籤一多的時候,又該如何管理呢? 舉個例,我光是當時玩「魔獸世界」時,保存相關的書籤就有近百個之多,所以你可以同時標記的 TAG 可以有 "Game", "魔獸世界" 兩個;而若是圍棋的書籤則可以標記 "Gmae", "圍棋" 兩個。 當標記的 TAG 越來越多時,你會發現到標籤的顯示會相當凌亂。 若你希望某個書籤雖然是標記成多個 "TAG",但又希望這些 TAG 的顯示有些關聯性,那麼,就可以如我上圖這樣的規劃一般,就是把 TAG 標記為 "Game", "Game_圍棋", "Game_魔獸世界" 這般,這樣的話在書籤的顯示上就能有循序性的列表了。

繼續閱讀 »

感動啊~ 原汁原味的 Ultima(創世紀) VII 復刻版

晚上一時興起,瀏覽了一下 "Ultima Reconstruction Headlines" 網站,看看 Ultima 各系列版本是否有最新的重製版消息。

可惜,這一年來看來沒有更新版本的釋出;而那個我早在一年多前就曾安裝過的 Ultima V 3D 重製版 (Lazarus),它是使用了微軟幾年前還頗受歡迎的一個 3D RPG 遊戲:Dungen Siege 遊戲引擎,以原來的故事情節,來呈現 3D 的畫面。 可惜,這樣子我就覺得喪失了原味的感覺,玩了一下沒有那種懷舊的感動。 唉,Ultima 5 是我最喜歡的創世紀系列,當初學生時代可是玩到了地下世界,已經距離結尾沒多遠 (但當時沒看攻略,卡在某一個地方就放棄沒玩了)說。

我希望能盡量原汁原味,但又不願意使用 DosBox 來模擬執行 Ultima 系列原版的遊戲,畫面實在太過太過粗糙了。 看來看去,好像 Ultima 7 的重製專案還有在維護的樣子。 嗯嗯,事實上, Ultima 7 應該是全 Ultima 系列作得最棒的吧! 利用該遊戲引擎,可是出版了許多相當受歡迎的資料片。 只不過當然反而這一系列我沒玩,因為那個遊戲引擎挺龜毛的,安裝設定等相當地麻煩;再則當時那種 2D 俯視角度的遊戲畫面,我挺不習慣的,倒是我朋友那個時候第一次接觸 RPG 遊戲,竟然玩得不亦樂乎,沒日沒夜地沒看任何攻略給全破關了。

Ultima 7 的重製專案在這裡: Exult 。 不知道是否是版權問題還是會用到原來 Image 的資料,下載了這個重製版的檔案安裝時,它會要求你要有 "Black Gate (黑暗之門)" 與 "Serpent Isle (蛇島)" 這兩個原版資料片 (放置遊戲安裝的子目錄下即可)。 另外原下載位置還有 ogg 格式的音源檔,下載回來後,配景音樂更為優美好聽;甚而還有 Cheat 模式可以打開,這邊我到是還沒研究。

安裝完後第一次執行,哇!! 真的給它感動耶。 因為 Exult 使用了可以選擇多種的 "Scaling" 技術,所以畫面可以擴展一倍卻完全不失真。 我選擇了 512x384 解析模式,在我的 22" 1600x1050 螢幕下,佔了將近一大半的畫面,跑視窗模式可是比用那個 DosBox 模擬好上太多太多啦,我已經是非常滿足了。 ^^
ultima7-Screenshot-01

還有喔,如我前述所提,下載了那個 ogg 音源檔後,背景配樂可是重現了 Roland-MT32 的優質音樂,即使以現在的水平來看該配樂,仍是非常地優美動人,切換場景時就會配上適合當時環境的音樂,真是棒透了。

繼續閱讀 »

利用 iGoogle 與 RTM 規劃自己的目標與工作事項

參考這一篇:「使用iGoogle個性化主頁進行時間管理」。 真的相當有創意!

我把這個這麼好的創意稍加改良一下,利用 iGoogle 再整合 RTM (Remember the Milk),如此就可以把 RTM 所規劃的資料夾,成為個別獨立的視窗,呈現在 iGoogle 的 Portal 首頁上。

例如,我在 RTM 規劃主要的資料夾有 "目標設定", "週計畫表", "收件匣 (預設,當成待辦事項)" 等。參考如下圖。
利用 iGoogle 與 RTM 規劃自己的待辦事項

所以我在 iGoogle 「選擇新增小工具」的選項內,選擇新增 "Remember the Milk" 小工具三次,拉至 iGoogle 首頁後,可以依照你喜愛的版面來客製化。 同時除了保留 Google 日曆外,其它拉哩拉雜的小工具全都可移除掉。 如此就可以將 iGoogle 規劃成為你自己關於目標設定與工作事項的 Portal 平台。

稍稍可惜的是, iGoogle 沒有支援 Xmind 的 Widget, 否則在 iGoogle 上還可以顯示出你的心智圖 (Mindmap) 與列表,那可就更完美了。

利用 iGoogle 與 RTM 規劃自己的待辦事項

※ 延伸參考:
 o 兼容「目標管理」與「執行效率」的時間管理術—心得篇
 o 兼容「目標管理」與「執行效率」的時間管理術—工具選用思考篇
 o 兼容「目標管理」與「執行效率」的時間管理術—工具應用篇
 o 利用 PlanPlus 規劃週計畫表的四個步驟

[系統升級] Wordpress to 2.8 and MySQL to 5.0

昨晚靜悄悄地把 Wordpress 系統給升級了 (from 2.71 to 2.8) ……

其實,只要在後台單鍵點個選項,Wordpress 就全傻瓜式的自動幫你完成升級。 期間所有的模組 (plugins) 也完全正常運作,沒有相容性的問題;而且許多模組也似乎順應 2.8 的升級,很快地同時釋放出更新版本,所以也是單鍵傻瓜升級即可。 當初選擇轉移到 Wordpress 平台是對的,平台的管理與升級,實在輕鬆簡單太多了。 :-)

另外,ISP 這邊,Why3s 前兩個月主動徵詢我的意見,看要不要轉移主機,因新主機效能更佳,MySQL 版本也是較新的 5.0。 這當然好啊,唯一稍稍擔心的是原來是使用 MySQL 4,不知道是否會有資料庫相容性的問題。 不過從 MySQL 4,透過 phpmyadmin Dump Blog 資料,再倒入 MySQL 5,一切完全正常! 不過我的資料檔 (純文字檔) 有 70餘 MB 之大,而 Why3s 這邊的 phpmyadmin 上載 dump 檔最大限制為 50 MB,所以從下載到上傳,改用 phpmyadmin 預設 .gzip 壓縮,整個過程也是相當順利。 (不過注意的是,改用 .zip 卻是不行倒入。)

目前新系統的主要應用伺服器版本為:

  • Apache 2.2.11
  • PHP 5.2.6
  • MySQL 5.0.77 -community
為何 Livermore 從短線客轉型為波段操作者?

美國有始以來最神秘、具知名度的股票作手 ─ Livermore (傑西.李佛摩),其一生大起大落的故事,一直為人津津樂道。 關於其人的生平事蹟介紹,可以參考我原來所寫的「股票作手回憶錄」書評,及重新整理過的 完整版書評

如果有看過回憶錄的讀者們,應該知道 Livermore 在青少年時期是從作空中交易的空桶店起家的。 簡單的說,就是與空桶店對賭看多或看跌。 一點點的波動就有可能被掃出場,而相對來說也可以在很短的時間內贏得賭注。 當然,大部分的賭客總是賭輸,因為空桶店可以以較龐大的資金,投入賭盤看好的股票,以達成短期波動控盤而把賭客的賭金掃掉。 不過即使如此, Livermore 總是贏得這種遊戲,因而生活過得相當優裕;直到所有空桶店均不歡迎他,並禁止他下注。 所以不得已 Livermore 才轉到正統經營的證券所操作,且成為波段性的操盤者,並因此而成為當代最為傑出的股票作手。

所以我曾看過有些討論區的版友們,在討論波段的操作還是短線進出的優劣,經常會以 Livermore 為例,寫說連這樣偉大的作手,最後還是轉為波段性的操盤,才真正有鉅大的獲利!

原來我也是這麼以為,但是除了也看到許多短線當沖的成功案例,例如 「賺夠了,就跑!」 一書作者 馬丁.舒華茲,他本身就是短線客;再如國內舉辦的期權競賽,並出版了「我要獲利I, II──期權贏家筆記」,所介紹的贏家大部分都是短線客。 所以,短線可以獲利應該是毋庸置疑的,重點還是要看交易人的性格與其玩法。

所以,回到 Livermore 這邊,我常在想,如果是現在波段幅度大的金融市場,難道他不會玩短線進出嗎? 請記得喔,他早期可是最有名的少年棒槌 (Boy Plunger),其短線波動的嗅覺,可說是出自於敏銳的觀察力與得天獨厚的盤感。 所以把這種天賦幾乎放棄掉,而轉為波段操作,那可又是不同的操作特質的。

所以 Livermore 為何放棄短線進出? 其實答案非常簡單,就只是無路可走而已! 因為被當時的空桶店通通封殺,使得他沒有這種短線進出的舞台,所以不得已轉到當時的證券所買賣股票。 而難道股票無法玩短線? 原因其實在回憶錄內有提及,就是報價與現價的落差,讓他無法只專注在短線的波動,因為即使看對,也還是賠錢! 還有一點很重要的原因是,當他下了大部位的金額時,同時也會影響到該支股票的漲跌;而這一點,在空桶店僅對賭波動是不會影響到該股票的漲跌的。

我在想,若是 Livermore 是在台灣的金融市場操作,那麼,他應該是會下大部位在股票上,並以較大格局的波段操盤思維來規劃其交易策略的;也應該有很大的機會操作如台指期等金融期貨,並且若資金不夠多時,我看肯定多是短線當沖進出 ─ 憑藉著他對短線波動的天賦,以及冷酷的決斷力。 當然,也必然會雙邊操作,避險、還是控盤 ... 肯定花樣多多。

事實上,金融期貨的進出,再如何多大部位,理論上是應該不致影響到股票、大盤等指數的;那為何國內大盤與台指期貨等幾乎是形影不離? 那肯定是主力操盤者同時下注在兩個市場上,達成雙邊操作、相互控盤的目的。

短線當沖,只專注小小波動的進出,這應該是偏向 「小題大作」的思維; 波段操作,要能耐得住短期的震盪,必要時要能不動如山,這應該是屬 「大題小作」的格局。 不同的時間格局,有不同的操作思維、技巧、與交易策略。 唯一相同的應該只有一個: 心態心態!!

勝固欣然不能驕;敗雖可惜不足怨」。