AnswerTips, 讓別人遊覽你的網頁更方便

很偶然的發現,原來Answers.com提供類似SNAP的服務。只是SNAP提供的是關於這個網頁的預覽縮圖;而Answers.com提供的是你所選擇keyword的資訊,讓你不用另外開一個視窗查資料。
只要安裝他的服務在你的網頁上,任何人在你網頁上用滑鼠連點一個字兩次,就會顯示這個字的相關資料。如下圖:
這項服務稱作AnswerTips。另外它還有兩個兄弟,一個是以Firefox Addon的方式安裝,讓你將這項服務拓展到所有由Firefox開啟的網頁;另一個,則可以安裝在你的電腦上,適用於電腦中所有的程式。
它是以英文的資料為主,拿來當英英字典還不錯,而且還附發音呢,比Yahoo奇摩的好聽了。
不然的話,查詢資料也很方便,他會引用很多網路上關於這個keyword的相關資料,像是Wikipedia,有時候可以省下不少功夫。

Google即將掀起文書軟體大戰?

在Firefox出現後,掀起了遊覽器大戰,原本死寂的遊覽器市場,又變的欣欣向榮,熱絡起來。

而現在,文書編輯軟體在由Microsoft Office獨大許久後,現在看來也風雨欲來喔。

Google在推出Google Docs & Spreadsheets,也就是線上的Word & Excel後,現在從這裡得知,也確定要推出線上的PowerPoint了!!這麼一來,Office套件可以說是集齊了。

不過這項新的服務,似乎是要透過Tonic Systems的收購案來達成。
看著Google完成一件接著一件的併購案,我有看到鴻海的錯覺?難道他聽到郭總裁的話了嗎?

廢話不多說,還是來看看這個被收購的公司產品之前的模樣吧
假如要我猜下一個Google要併購的公司的話,我猜應該會是Gliffy吧。
為什麼呢?
因為他是線上的Visio阿

References:
1, 2, 3

Type-Casting in C++

在C中用久了Type-Casting也許覺得這也沒什麼
只要宣告一下型態就可以了
但在C++中,由於物件的導入,所以變的不在那麼單純,
Type-Casting也多了四種型態reinterpret_cast, const_cast, static_cast, dynamic_cast
當然原本C的還是可以用啦。
  1. const_cast可以移除物件的constness,使存取原本被宣告為const的物件變的可能。
  2. static_cast
    • 僅依靠compile time的資訊來做可行性的驗證,在run time則沒有做
    • 使用在數字型態的轉換或是相關class的轉換 (upcasting or downcasting)
  3. dynamic_cast
    1. 在compile time和run time的資訊來做可行性的驗證,但是run time的檢查同時也是種overhead
    2. 是在做object pointer or reference的轉換 (在upcasting會成功)
    3. 當在對pointer的cast失敗會return NULL;在對reference的cast失敗會丟exception
  4. reinterpret_cast則是強制轉換,不在意class間的關係。

MSDN和CodeProject上都有很不錯的文件,另外在Cprogramming跟Cplusplus也有可以相關的介紹。

C++中extern “C”含義深層探索

一直以來,對於一些標準文件中的header,老是有
#ifndef XXX
#define XXX
...
#endif
或是
extern "C" {
...
}
感到習慣和不解,既習慣於他們的出現,又覺得幹嘛加這些東西。

但是在看了這篇文章後,才發現他們真正的意義。

第一項的define macro,是為了避免header file被重複引用,這樣有時候在compile的時候,就會出現duplicate definition的問題。

第二個的extern "C"呢,則是為了能夠在C++中繼續相容C的Code跟Library。
因為C++在compile的時候,為了overloading的這個feature,所以都會對function name換成他內部mapping的; 而C則只是在function name前加上 _ ,這會使的我們在C++中Linking C的Library時,會有問題。

extern "C" 包含雙重含義,從字面上即可得到:首先,被它修飾的目標是“extern”的;其次,被它修飾的目標是“C”的。
"extern C" 一行會告訴編譯器:送到 linker 的外部資訊要採用 C 的呼叫慣例及簽名編碼法(譬如,前置一個底線)。既然 C 沒有多載名稱的能力,你就不能讓 C 程式能同時呼叫得到多載的函數群。

兩個有趣的小遊戲

Reference Article

Desktop Tower Defense跟Kdice


Destkop TD呢,他就是要你建構防禦工事,來防堵creeps通過。
一開始,會給你一些金幣,你可以先用這些錢來買砲台。
而遊戲開始之後,打掉那些creeps也可以賺錢,然後你可以用賺來的錢,繼續增強你的防禦工事。
不同的砲台,有不同的攻擊範圍、攻擊力和攻擊速度,建構以後的砲台,則可以再賣掉或是升級。
而下面有一條會跑動的BAR,他會決定你這次的敵人類型。

訣竅就在於,讓他們要繞遠路,而在迂迴的路徑中,同樣的砲塔可以不斷攻擊。
奸招就是開兩條路到出口,然後一條封起來,假如creeps快通過的時候,就把這條封起來,另一條打開,他就要繞回去了。
看看這段影片,看看人家怎麼玩吧。


kDice則是搶地盤的遊戲,骰子就是你的士兵。規則如下:
  1. 你可以用士兵去攻擊附近的領土,但僅限那個土地旁的。
  2. 假如你甩的比對方大,就贏了。
  3. 而每一回合結束的時候,你會增加你領土數量的骰子,隨意分配到你現有的領土上。
  4. 每個領土上最多八顆骰子。
看看規則,其實大部分的戰略遊戲的內部都跟這個一樣,只是把骰子藏起來,換成腳色而已。

Linux套件的演化過程

面對現在多到不行的各種不同Linux版本,你有用過其中幾種呢?
有時候會不會覺得真是一團亂,生那麼多版本幹嘛?
有個好心人,整理出了它的子子孫孫家族譜啦。

台灣有三大鐵道支線:平溪、集集、十分。
LINUX套件也有三大支線:Red Hat, Debian, Slackware

假如有人覺得族譜看不過癮,想要看看一~~眼望不完的人類演化史的話。
那就看看這個吧。

一張照片建立3D模型!!!

Reference Article

當你在看一些網拍物品的時候,總是覺得不夠真實嗎?
也許在不久的將來,以後你上傳的照片就會自動變成3D的了。
現在你可以先看看fotowoosh

看到下面的圖片了嗎?
想體驗以下身歷其境的感覺嗎?那就來看看這個連結吧
這裡則有他的DEMO影片。

目前他們可以做到的,是把整張圖片切成三各部份:天空、地面跟這兩者間的物品。
而建立出來的模型則是由VRML所描述,我想學過3D圖學的人應該都不會陌生才是。不過這個東西也提出來許久了,到底會不會起來嘛,還是沒有人敢說,不過以網路市場的熱絡程度來說,應該還是會有人前仆後繼的投入吧。