Author Archives: Pesty

飄著

昨天在翻朋友以前的文章,翻到一篇讀過不下十遍的文章;文章其實也是希望別人看到的自言自語,只是,不知道為什麼,和我現在的心情,是那麼的相像…

我想到很久以前寫的一段話…

活下去真的需要很大的勇氣,也許是像我這種不需要為家境擔心的人才會有厭世的想法. 只是,常在睡夢中驚醒,發現自己很有可能就這樣過了一生,心中就有一種難以言喻的鬱悶; 茫茫然飄游在世界上,想辦法麻醉自己….

活下去會帶給大家更多的傷害,不是嗎?而當我只是回憶中的一個名詞,那就只剩下美好的,不是嗎?

當我逃避著傷害別人,也只能用力地撕割著自己的心;痛到一個程度,就不會痛了…..

而我暫時還是要飄游在這個世界….就是飄游而已….

轉眼間五年半過去了,我飄著飄著也過了五年光陰;十八歲的我盤算著二十歲要怎麼結束生命,二十歲的我打算在二十二歲做個了結,而,二十二歲的我,卻開始瞭解,什麼叫為別人活著。

是啊,為著別人,繼續飄著…

差距

一直以為自己過的日子也許和別人沒有差很多,所謂的別人,大概就是身邊的人這樣;台北人、新竹人、唸高中大學的人,電機資訊產業的人。

不過上次去主管家玩順便聚餐時,才發現有很多小細節還是很不一樣,才發現也許自己在過的,真的是屬於前 20% 的日子。
其實也不是什麼大不了的事;只是對我來說,請朋友去外面吃飯,差不多應該都是去什麼餐廳之類的,但我們去的是像辦桌一樣的,半露天的棚子下吃山產;並不是說這樣不好或什麼的,只是,和我的想像不一樣。

就好比有個朋友說要請我吃飯,說去閱來小吃店好了,結果這個小吃店是個路邊攤,朋友盛情的切了幾百元的小菜,還開了兩三瓶啤酒。這一切都沒有什麼對錯,只是我好像從沒有朋友找我去吃這樣的… (如果你原本有這個打算的話,那快打電話給我吧 )

還有些小事情就不提了;總之,我這才發現,那些不知不覺的差距、那些連續劇或小說裡面不食人間煙火,是怎麼一回事。

努力把我想說的講清楚,希望不會衍生出什麼額外引申才好。

線上洗錢中心

如果你曾經用過 paypal 的話,也許會對它的操作方便感到驚奇;然而,現在這種線上付款已經不再僅限於線上交易了,新成立的 eBribery 不管是收受工程回扣、僱用殺手或是單純的洗錢,都只要一封 E-mail 就能為您完成。

傳統洗錢不外乎找許多人頭戶來增加金檢單位的查證困難,但這種方法有幾個主要缺點: 1) 若以親朋好友當作人頭戶,目標明顯; 2) 若以收買的人頭戶,風險高,手續費也高; 3) 匯款的運作曠日費時,以一千萬美金的款項而言,比較有信譽的洗錢中心通常需要一年左右運作,如果臨時有急用,往往緩不濟急。

為了解決長久以來政商黑道廣大用戶心頭的痛,匯路金控公司特別與設於瑞士的 Bribery 銀行合作,推出 eBribery 網站的服務。用戶只要在網站上註冊,立刻就可以收取別人轉給您的款項。

但究竟 eBribery 和傳統銀行有什麼不同呢?瑞士 Bribery 銀行亞太區總裁史帝芬‧鄭指出,根據 IDC 調查,高達 85% 的黑金,收款人在十年內都沒有用來花用,而其中有 50% 是再流到其他賄款帳戶。針對此一現象,匯路金控特別委託民間機構調查,向各國五千名高官以及老大發出問卷,結果指出沒有動用的原因首位是風頭太緊,再來就是現金流向容易被查到,以及錢太多不知道該買什麼等等。

eBribery 主要就是為了這三個黑金主最大的痛而產生,史帝芬‧鄭表示,許多人收到黑金之後大都會立刻需要花錢擺平一些小事情,這時候曠日費時的傳統人頭戶就派不上用場了,如果大家都在 eBribery 開有帳戶,黑金主收到錢之後可以立刻轉到兄弟、警察、法官以及情婦的帳戶,不僅簡單易用,更不會因為款項流出 Bribery 銀行而引起注意。同時,eBribery 也和著名的遊艇、別墅和珠寶公司合作,只要在 eBribery 開立帳戶且戶頭金額超過一百萬美金,每個月都會寄型錄給您選購;透過 eBribery 付款,不僅安全、隱密,還享有紅利積點等多重優惠,

至於黑金主最關心的隱密性問題,史帝芬‧鄭表示,Bribery 銀行除了設在瑞士的總行能夠保證您的款項安全之外,也和許多小島合作,透過跨國人頭公司的運作,要將各類工程款項轉入 eBribery 可說是毫無把柄;一旦款項進到 Bribery 銀行中,所有交易完全隱密,金檢單位絕對無從查起。

除了以上好處之外,現在網站也和獵人頭公司合作,只要註冊後三十天存入或收到款項大於一百萬美金以上,即可在 eKiller 網站上以一折雇用殺手幫您獵人頭。本活動只適用九月底以前註冊的用戶,請大家把握機會。

Horde 的相片模組

最近 Horde 的 CVS 上面多了一個新的模組 – ansel,雖然目前還沒有具體的程式出現,但是從說明文件看起來,應該是一個放相片的模組。

不過現在連網頁和 mailing list 都還沒有,所以只有再等一等囉。

人工智慧真空吸塵器

今天收到一封廣告信,是 iRobot 公司出的 Roomba 智慧吸塵機器的廣告。先前讀到一些這方面的產品,就趁這個機會介紹一下好了,希望對於懶得打掃家裡地板的人有幫助 :p

Roomba 和一般的智慧吸塵機器一樣,都是做成圓餅的形狀,主要還是為了在探索地型時撞到牆仍能順利轉彎。這類產品最基本的技術還是在於如何建立環境地圖,以及避開危險的地形;更進階的是要辨認什麼是需要清潔的,而什麼又是不能清理的(試想家中的博美狗被吸塵器抓住的樣子…)

Roomba 用的概念很單純;它會先利用螺旋狀的路徑擴大自己的虛擬視野,試著找出房間的邊界在哪裡,同時記住自己走過的距離。當撞到東西時,它會先向後退一點點,轉一點點彎,再向前進。找到邊界之後,它會開始利用直線前進,並清掃記憶中還沒有打掃的區域。

在 Roomba 中比較有趣的是它還提供一個"虛擬牆"(Virtual Wall)的裝置;由於 Roomba 會儘量找出牆的範圍,所以如果門開著它搞不好就會跑出去了,若是我們希望門可以不要關,又不要它跑出房間,就可以把 Virtual Wall 放在門口,這樣它就不會跑出去了。Virtual Wall 其實是一個會發出不可見光的裝置,Roomba 感應到它的光線,就會當作那是禁區而轉彎了。

Roomba 這台能夠感測到樓梯之類的危險區域,而不會摔下去;當它在進行清掃的時候,會放音樂來降低它的噪音(還真貼心啊…-_-),它的聲音大約是 80dB左右。

同樣的智慧型吸塵器是瑞典的 Electrolux 公司所做的 trilobite;這台紅色的小圓餅功能和 Roomba 類似,不過它不會避樓梯,而需要用鋪在地上磁毯來畫出禁區。不過它有個有趣的功能,就是會自己跑回去固定的"家"充電,真是很可愛的功能 :p

Trilobite Roomba

參考資料:
http://www.roombavac.com
http://trilobite.electrolux.co.uk

相關連結:
管家婆科技: Roomba News

利用基因演算法來最佳化資料庫

今天在看 PostgreSQL 的文件時,發現有個章節在講運用基因演算法(Genetic Algorithms) 來最佳化資料庫的查詢方法(Query Plan),就來介紹一下 PostgreSQL 是如何應用的。

所謂的 Query Plan(查詢方法),是指資料庫管理程式如何由現存的 Table 中,做出使用者想要的資料。Query Plan中最難以處理的是 Join 這個動作。Join 這個動作,簡而言之就是把兩個相關的 Table 合成一張大的 Table;例如我們有一個 Table 記錄 "人名-居住城市",另一個"人名-喜好",今天如果我們要找出"住台北、又喜歡寫 Blog"的人,就可以利用 Join 這個指令,以人名當作索引值,合成一張同時具有我們所需要資料的 Table。

Join 有很多種方法可以做到,最差的狀況就是把所有的可能性都列出來,再刪掉不正確的。舉例來說,住址 Table 有一千筆,喜好資料也有一千筆,那麼就先產生一百萬筆的表格,再一一刪去;相對的,如果我們知道人名都沒有重覆、居住城市表格中,同一個人也只會有一筆資料、每個人也只有一個喜好,那麼甚至可能幾千筆就做出來了。

但並不是每一個 Query Plan 都是如此的顯而易見,當需要比對的 Table 越來越多,到底是先 Join 哪一個 Table、先 Join 哪兩個 Join 完的結果,會變成一個需要把全部的可能性都列出來,才知道哪個最好的問題,我們稱這種解法叫做"窮盡搜"(Exhaustiive Search),意思就是得把所有的組合都找出來才行。

更慘的是 Query Plan 的數量又隨著 Table 的增加而大幅增加,當需要 Join 的 Table 由兩個變三個、四個甚至到十幾個時, Query Plan 的總量就像 1*2*3*4 這樣呈指數成長,到最後要找出所有的可能解答本身所花的時間,搞不好都比資料庫查詢時間來得長了。

在德國的 University of Mining and Technology 自動控制學院設計了一個電力控制系統,用 PostgreSQL 來當作決策系統的資料庫,但是因為決策系統需要運用大量的 Join 來進行推理的運算,為了兼顧效率,他們把基因演算法引入資料庫的設計之中,用來快速產生有效率的 Query Plan。

關於基因演算法的基本概念在此略過,請參考本站相關文章

Query Plan 最佳化的作法和著名的 Traveling Salesman Problem(TSP) 問題很類似,先將可能的解法變成數字的字串,例如 4-1-3-2 就表示先讓 Table 4 和 Table 1 做 Join,再和 Table 3、2 做 Join。

演化時採用穩態演化,也就是每次只把表現最差的一個 Plan 淘汰掉;而子代的產生則是運用 "edge recombination crossover[註二]",而突變的機制在這裡並不使用。

運用基因演算法,資料庫可以在合理的時間中找出有效的 Query Plan來進行 Join 的動作,然而除了找出最好的 Query Plan 之外,電腦的的Computation Time也是一個很重要的因素,不同的參數對於系統也會有不同的影響。

從這個例子可以看到基因演算法所運用的場合,還是脫離不開"在合理的時間"、"複雜度高的狀況下"、"找到合理可接受的解法"的特色。

註一:PostgreSQL 是一個 GPL 的資料庫,最早是由 Berkeley 所發展的,如今和 MySQL 同為網路上最受歡迎的 GPL 資料庫軟體,官方網站在 http://www.postgresql.org

註二:關於 edge recombination crossover 的說明,請參考這裡

參考資料:
Genetic Query Optimization

相關閱讀:
上帝的靈藥─基因演算法(一)
上帝的靈藥─基因演算法(二)

備份專用檔案系統

相信大家都有重灌電腦的經驗,每次要重灌前免不了要先把自己的檔案備份一下。習慣好的人就算了,要是平常就沒有特定的習慣,把文件檔案擺得到處都是,那備份還真是一件麻煩的事。那,有沒有可能弄一個可以記錄什麼檔案要備份而什麼不要的檔案系統呢?

基本的想法是這樣的:就像現在Windows的檔案都有個唯讀、隱藏、保存的選項,再加一個備份好了,這樣就可以寫一個備份的程式,自動把硬碟中的這類檔案都找出來,然後通通燒成光碟或移到備份的資料夾之類的。

好處其實不只是備份文件而已;假如各個程式有一些升版也不太會改變的設定值,每次重灌都要重新設定也很麻煩,那麼這樣的設定也可以設定為需要備份,當使用者重灌完就不用再自己一個一個設定了。

總之覺得是個可以做的東西,既然也不是什麼神秘的點子,就發表在這邊與大家分享吧! :p

Part-time open-source programmer

以前一直不懂為什麼有人會用公餘的時間來搞 open-source/GPL 之類的事情,不過這種事情真的是時候到了就會瞭解的 — 完全是白天為公司作惡太多、罪孽深重,晚上(搞不好上班時?)寫寫 GPL 的東西來洗清自己的罪惡啊….。

嗚嗚,Stallman,我有罪 :~ 請讓我用我的 GPL source 來洗刷我的罪惡吧 :~

註一:Richard Stallman(理查‧始脫男 自由軟體協會創始人,GPL 教主/精神領袖,教主的網頁在此;如果需要教主加持您的電腦請按此

註二:關於 GPL 請參考 談 GNU General Public License