Cool Sites with Google map

還記得Google Map剛出來的時候,台灣的地圖總是一片空白,到了現在總算出現街道圖了,還挺漂亮的呢。這下子Urmap有點危險囉,地圖沒有Google Map好看,而且Google Map上面還有附上每條路(單行道)的方向,就看看它能不能拿出更多在地化的服務吧,不然...
此外,Google在將Google map API在開放出來使用後,國外也已經出現了很多有趣的應用,不知道在台灣地圖正式上線後,台灣會不會也有些在地的服務呢?先來看看一些人家做的東西吧。


Google Moon
Google自己開發,可以看月球


Google Mars
Google自己開發,可以看火星

DaylightMap
可以觀看現在全球的日照情形喔

WeatherBonk
可以看現在當地的天氣

Wikimapia
可以在Google Map上面的區域加上tag,也就是可以圈一個區域起來,命名他。

blipstar
可以讓你為自己的商店,在地圖上定位。這樣就可以嵌入商店的網頁使用,甚至可以告訴客人怎麼從他的位置到商店。

Flood Maps
沉沒中的地球,假如海平面上升一公尺後的世界

WorldCoolers
看看全球各地的CO2排放總量

Where to Go in 2007
NY Times所選出來的2007旅遊景點

另外,有兩個blog在持續track這些使用Google Map API的網站,分別是Google Maps ManiaCool Goole Maps,有興趣的可繼續去那邊看看。

全球暖化 - 誰在說謊?

今天有一則新聞,洋流循環才是暖化主因,讓我想起一直以來,不斷有聲音再傳撥類似這樣的言論
全球暖化不是(就算真的會有影響,也只是一點點點點)人類(排放CO2)造成的,這只是因為冰河期過後(洋流循環...etc)氣溫上升的正常現象,所以我們不用擔心,可以繼續我們現在所有的一切,不要停止消費啊。



為什麼會有這麼多專家學者,替這樣的言論背書呢?可以看看Exxon Secrets這個網站,他認為這是因為Exxon Mobil(美孚石油)他們提供大量的贊助金額給這些研究機構,去提出有利於他們的言論,以避免受到社會指責,並且繼續行銷他們的商品 - 石油。(假如不想看Flash,這有篇關於這個網頁的報導)

這網站有一個很有趣的功能,就是能夠把這些專家學者,和相關的機構串聯起來,並且提供相關資訊,像是他提出了什麼言論等。
我稍微把這次新聞中的葛瑞(William Gray)先生,放進去找,很不巧的也找到了。稍微建了張簡單的圖表,可以參考一下
P.S.打開網頁,直接點Launch,然後選右下角的Skip Intro就可以看到圖表了。

Free Online Resource for Programming

看到了這個195 Free Online Programming Books,它整理了網路上的免費書籍,免的到各個網站上一個個去找。但是以下這些網站,還是很值得親自去看看,他們都有一直在更新資料,而且不只是只有Programming Books的資料而已。

Free Programming Resources
很多資源,不只包含一些線上的免費電子書、文章,連相關的Compiler, Library,甚至是討論的Forum都有!!


FreeTechBooks.com
這裡的特點在於,很多基礎科學的東西,Computer Science、Math的東西都有


Computer-Books.us
免費線上電子書的整理,它的電子書下載前,都要先輸入驗證碼,似乎是以防被別人盜用連結


OOPWeb.com
雖然是叫做OOP,不過不只包含OO的資源,甚至有Computer Science的資源,不過還是主打OO

Local Cooling



安裝這個軟體,Local Cooling,讓他幫你省荷包,幫地球省資源。

它會分析你電腦的整體耗電量,幫你做最佳化。把你省下來的電,另外換算成多少棵樹和多少加侖油,讓你更容易瞭解你的貢獻,既使小,但也不可忽視。
另外還會幫你做休眠設定,假如你沒有要他幫你關機的話,記得關掉喔。

另外,它還有一個有趣的功能,會針對你所省下來的電作排名喔,也可以以群組申請,我申請了一個帳號是Taiwan,密碼為lovetaiwan,算是可以做另類的國民外交吧 哈哈

對抗垃圾郵件 - 可拋式信箱

今天,提供一個比較另類的避免垃圾郵件的方法,那就是使用可丟棄式的垃圾郵件。
當你今天在網路上需要填資料,而你又根本不在乎她以後會不會寄信給你,只要回覆他的確認信就好了。
這時候,你就需要Guerrilla Mail。它提供你一個15分鐘的暫時信箱。點選即可得,下面會顯示這個信箱的壽命,中間那個圓圈,則是讓你用來確認有沒有收到信了。
網路發展到今天,垃圾信(Spam Mail)實在是一個很神奇的存在。
垃圾信跟病毒,都是讓人在使用電腦時,欲除之而後快的,這點可以從有多少家防毒軟體大廠以及多少擋垃圾性的軟體就知道。
我 覺得垃圾信又可以說比病毒更險惡,今天你擋住了病毒,它就不會對你造成影響;但是就算你今天把垃圾信完全革除在門外,它每天在網路上流串竄,也會耗費許多 網路資源。而且跟病毒不同的是,到今天還沒有人敢說她可以完全讓你免除垃圾郵件,你今天擋的了一封垃圾郵件,後面還有幾百幾千封。

以下是垃圾郵件的成長(來自Wikipedia)
  • 1978 - 一封垃圾信會送往600個信箱
  • 1994 - 第一個大量發送的垃圾信一次6000封,寄送到上百萬人
  • 2005 - (June) 每天30 billion
  • 2006 - (June) 每天55 billion
  • 2006 - (December) 每天85 billion
  • 2007 - (February) 每天90 billion
要說做的最好的隔擋垃圾郵件系統,以我自己的經驗來說,大概就是Gmail吧。

地球村(The miniature Earth)

幸福是什麼??
假如你現在還是不斷的驅趕著自己去賺那沒時間花的錢?
看看這個網頁中的影片,也許會給你一點不同的想法。
假設全球是一個100人的小社群的話
會有61個亞洲人
會有12個歐洲人
會有8個北美人
會有5個中南美人
會有13個非洲人
會有1個大洋洲人

一半是男人,一半是女人

46個居住在都會區
12個殘疾人士

33個基督徒
18個回教徒
14個印度教徒
16個無宗教信仰
6個佛教徒
13個信仰其他宗教

43人沒有基本的衛生環境
18人沒有乾淨水源
6人掌握了全世界59%的財富
13人飢餓或營養不良

14人是文盲
只有7人受過中學以上教育
只有12人有電腦,3人有網路
1個15-49歲間的成人有愛滋

這個社群花了1.12兆美元在軍事擴張上,而只花了1億美元在發展援助上
假如你有冰箱可以冷藏食物,有衣櫃可以放衣服,有床可以睡,頭上有屋頂,你已經比75%的人富有

假如你有銀行帳戶,你就是世上最富有的三十人之一
有18人每天靠不到1美元過活
有53人每天靠不到2美元過活

珍惜你所擁有的
並盡全力讓世界變的更好

看了這個Flash,讓我想起了血鑽石這部電影,因為在這網頁中,大部分掙扎的臉孔都是黑人。
心中同時也有了疑惑,世界真的有這麼糟糕嗎?不過,我想重要的也許不是這份資料內容的準確度,而是最後那兩句話
Appreciate what you have,
and do your best for a better world.

尤其是對於台灣許多不知所謂的政客來說

很動人的廣告


Reading inspires kids.

小朋友真的該多讀書啊,長大才不會變宅宅 XD

她告訴我,我們負擔不起...

Reference Article

很讓人心有戚戚焉啊,請隨意把啤酒換成任何你女友要你戒除的東西吧 XD

翻譯:
她告訴我,我們已經負擔不起任何啤酒了,所以你必須戒掉它

後來,我卻發現她花了65美金(2300台幣)買化妝品

我就問啦,為什麼我我要放棄我的嗜好,她卻不用

她說她是為了讓我覺得她更美麗啊

我告訴她那也是啤酒對我的意義

我想她是不會了解的

地球在呼吸


這裡有一個很有趣的網站,Breathing Earth
他會從你開啟這個網頁開始,計算有多少人出生了、死亡了,又有多少CO2產生了。
開啟一下,你可以先不理他,一段時間後,你就會發現我們每個人每天生活所產生的CO2有多可觀。對這個議題有興趣的話可以在參考這裡

世界地球日 - CO2排放量的迷思

4月22日,世界地球日
上面這張圖片,就是地球之旗,是用1969年阿波羅17在太空所拍攝的地球,放在深藍色的背景上所組成。就是要提醒大家,繼續讓這顆在寂靜太空中的美麗行星,一直美麗。

這個活動第一次舉辦,是1970年4月22日於美國舉辦的。
諷刺的是,美國不管是從CO2的排放的總量或是每人年平均產量上,都是遙遙領先。而且對於改善這個議題的京都議定書也是愛理不理。
(年產+1,000,000千公噸CO2以上的國家,全球只有五個,美國、中國、俄羅斯、印度和日本,假如歐盟也算一個的話也就六個,這六個經濟體佔了全球約七成的產量,而美國一個就可以佔全球四分之一。)

不過不說別人,台灣這幾年也是不斷扶搖直上,每人每年所產生的量也超過10公噸了。參考下面這張圖表,可以發現,一般來說高收入國家的平均量在12.3左右;世界平均在4左右;低收入國家則不到1。可以說工業化的程度,代表了收入的多寡,也代表了CO2的產量,一般來說兩者是正相關的。但是日本和德國卻可以一直維持在10以下,這其中有大的原因是因為我們的發電來源,仍有大部分是火力發電的部份,而且是用燃煤,不僅效率差,對空氣環境的影響也是相對的大很多。另外,氣候也是另一個影響因素,天氣太熱或太冷,那麼空調的使用就會造成更多能源的耗費,也就可能會造成更多的CO2,不過綠建築的建造,可以減少這方面的影響。
所以呢,要愛護地球,最簡單的就從隨手關燈做起吧。想多做一些的話,可以看看這篇

最近台灣一些相關的活動,有國家地理頻道舉辦的全球暖化 台灣發燒,不過代言人是....棒棒堂 囧rz
還有關渡的國際自然裝置藝術節,天下雜誌辦的Cool地球之連環36計,以及不願面對的真相在各地的免費撥映

各國CO2年產量(2002)
各國每人CO2平均產量(2004) [will be updated 2007/6]
Why do some countries have higher Greenhouse gas emissions than others?
Emissions continue to increase
台灣地球日
全民二氧化碳減量資訊站
新世代潔淨能源科技發展策略~能源科技關鍵議題研究~
走進低碳社會,台灣準備好了嗎?

別被雙眼蒙蔽了!!

有一句話叫做眼見為憑,但是其實我們的雙眼還是常常被欺騙的。
現在,站起來,後退八步吧,美與醜並不是一定的 XD

Reference Article

A Day , A Life

人的一生,有時候跟你在過的每一天極微類似。
早上起來,世界就像是新生的一般鮮嫩。
接著陽光會越來越強,生命也充滿了活力,到了中午,可謂日正當中,銳不可擋!
過了高峰,就開始走下坡,慢慢接近晚霞,雖然美麗,但是短暫。
夜晚到了,世界又恢復寧靜,萬籟俱寂。

這張圖片,乍看之下,有些許感傷。
但是細看後,卻又可以找到作者預留的伏筆。
右邊的小樹,隨著小男孩成長、茁壯、死亡。
左邊的小樹,則是在兩人結合後,才萌芽,成長,生命的傳承不也就是如此。

不過天空上的鳥飛的還真是慢啊,從左邊飛到中間就過了一天了 XD

你為什麼沒有成為富蘭克林??

哈哈,你會怎麼做呢?
我想我應該會找另外一個人來試試看吧。

P.S. 別跟我說因為你比富蘭克林晚出生啊 Orz

Reference Article

知道每天開車會排放多少廢氣嗎?

每個人都知道很多很多有多少人真的因此而少開車,多用大眾運輸系統呢?
現在,親眼看看這些廢氣吧。

翻譯如下:
當中國經濟崛起爆發之時,我們居住城市上頭的天空卻變的越來越黑。這個異常的變化的原因之一,就是汽車數量的成長和隨之而來的廢氣排放。而WWF為了要推廣他的"永續發展的20個訣竅"和讓大家到他們的小網站20t20.org,就把其中一項訣竅以一各戲劇化的方式表現。WWF因此而吸引了更多的大陸的新聞媒體,甚至國際性的媒體也前來報導。
在氣球上的:少開點車,然後看看你可以減少多少二氧化碳到我們呼吸的空氣中。

20to20代表的就是,這20個tips可以讓我們每GDP的產生,減少20%能源損耗。
這裡有20 tips的下載:英文簡中

雖然這個活動主要是在中國大陸推廣,但是地球只有一個。
活動的口號是Saving energy is child's play。
省電是誰都可以做,而且可以從身邊很多小事情開始做起。
  • 使用省電電器,像是變頻冷氣,省電冰箱,省電燈泡,滾筒洗衣機
  • 走路或騎腳踏車最讚,在不然搭大眾交通工具,再不然就就開小車
  • 良好的器材使用習慣
    • 冰箱不要開開關關
    • 螢幕不要調太亮,傷眼又耗電
    • 電腦要設定省電模式
    • 遙控裝置都很耗電,出遠門要拔掉
    • 空調高一度,省7%能源
    • 開車定速
不過他也是鼓勵大家使用一些新東西的
  • 使用微波爐,因為比其他加熱工具有效率
  • 使用電腦取代紙上作業
  • 使用太陽能熱水器 (高雄很多喔,常看到透天屋上面是太陽能板)

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間的關係。

MSDNCodeProject上都有很不錯的文件,另外在CprogrammingCplusplus也有可以相關的介紹。

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 DefenseKdice


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圖學的人應該都不會陌生才是。不過這個東西也提出來許久了,到底會不會起來嘛,還是沒有人敢說,不過以網路市場的熱絡程度來說,應該還是會有人前仆後繼的投入吧。

人派網路的科技應用


當想要跟某個人求助、求職、搭訕時,但又苦於你跟他根本不認識嗎??

不知道你有沒有看過一本書 - SIX DEGREES: The Science of a Connected Age(六個人的小世界)
簡單的說,在你和你原本不認識的人之間,只要透過你們朋友的朋友,就可以讓兩人搭上關係了。看過之後,也許你會開始覺得,原來世界沒有你想像中的大,人與人之間的距離,比你想像的還要短。當然也有可能覺得,這真是一本虎爛的書,這樣都可以當博士。

而現在,有個網站,可以讓你驗證一下,這個科學研究到底在現實生活中,他的實用性到底有多少。

今天的主角是Visible Path,它可以搜尋你的人際網路,和你人際網路中朋友的人際網路,如此一般,建構出從你到你想認識的人之間的人派關係。請看此demo

恩,看完他的demo影片後,我只覺得好熟悉的演算法,這不就是以前離散數學中所學習的TSP(Traveling Salesman Problem)嗎?也就是找出從一個地方到另外一個地方的最短路徑,套用到人際網路中,原來是一樣的啊!!

不過呢,基本上,要讓這個網頁的功能能夠正常work,還是要你的朋友們也都有使用才可以,不然樣本數不足的話,我想應該會出現很多,這個目的地(人)無法到達的訊息。哈哈
而且,目前這個網頁只有提供一些提出申請的公司使用而已,畢竟對公司拓展業務來說,應該是蠻有用的工具。而一般使用者呢,只有流口水的份啦。Orz

最為成功的10個Web 2.0網頁(目前為止)

It's been almost three years since Tim O'reilly first officially coined the term 'Web 2.0,' and we've come a long way since then. This list looks at the 10 most successful Web 2.0 startups we've seen to date and provides researched information on each of them. The top 3? Surprise! MySpace, YouTube, and Facebook.

read more | digg story

好吧,這又是個關於Web 2.0的故事。
總之呢,讓我們把什麼Web x.0丟開,來看看這些真的不錯的網站,你有使用其中幾個,順便看看國內有沒有類似功能的網站

1. MySpace
社交社群,我覺得比較特別的在於提供創作人可以獨立發行他們創意的地方,進而創造了一些MySpace名人,甚至有些樂團可以因此而發行專輯。

台灣:無名StreetVoice

2. YouTube
影像分享。自從他經記者報導後,在台灣,各個blog業者,也都開始提供這一類的服務。

台灣:yam天空Vlog

3. Facebook
社交社群。原本僅用於哈佛學生間的一個交流平台,後來進而擴大至全美的學生社群,目前已對外開放。

4. Wikipedia
線上免費百科全書,所有的資料作者都是跟你我一樣的網民。

5. Bebo
社交社群。

6. Digg
讓你記錄你覺得很讚的網頁,同時跟其他人分享。而這個被分享出來的網頁,會被大家評比,越多人贊同就會排名越高。

台灣:HEMiDEMi

7. Flickr
網路相簿。

台灣:Wretch, Pixnet

8. Netvibes
多功能首頁。它讓你的首頁更多功能,你可以同時看郵件,新聞,就算要用不同的搜尋引擎也不用換網頁。一次滿足你所有的需求,簡單的說,這裡看到的服務,他都可以整合在一起,讓你一個頁面解決。後來的Google Personalized Homepage也是類似產品。

9. Del.icio.us
讓你記錄你覺得很讚的網頁,同時跟其他人分享。而這個被分享出來的網頁,會被大家評比,越多人贊同就會排名越高。
是的,你沒看錯,跟Digg一樣,Digg可以說是從Delicious這邊學習了它的分享機制,進一步增加了評比機制後,推出的。而Delicious之後也從他那邊學回來。

10. Meebo
線上即時通軟體,不管是ICQ, MSN, Yahoo Massenger, Google Talk,他都可以讓你直接在網頁上使用。
辦公室封鎖了及時通,沒問題,來這就OK了!!


台灣的社交社群的話,目前無名、天空都蠻大的,戀愛公寓則很有他自己的特色。

不論這些網站的功能如何,除了wikipedia是無獲利,單純靠人家捐錢的之外,他們有一個共通點,都待價而沽。有的已經賣出去了,有的則是要求更高的價錢。目前最高的成交價是YouTube的1.6billion。台灣的話應該目前是以無名的七億台幣領先吧。

StreetVoice - 讓你的創作直接從網路發聲


StreetVoice這就是他的名字
這是一個可以讓你分享你所催生的創意作品的地方,音樂、影像、設計等,都可以。
我覺得有點myspace的味道。
對國內的非主流創作者來說,可說是福音。
你不但可以將你自己的創作作品放在這裡,創造自己的舞台,吸引你的觀眾;甚至可以在這裡尋找志同道合的工作夥伴。它讓非主流的聲音,有一個互相尋找的地方。縮短了創作者和他們擁簇之間距離。

也許你會擔心版權的問題,不過基本上,這個網頁上的東西都是以Creative Commons簡稱CC授權的,他讓創作者保有所有權,在一定條件下,讓你可以散佈他的作品。所以大可放心。

現在,就可以到這裡來找找Mass Media外的Street Voice。

TechCrunch with SNAP

有在看TechCunch的人不知道有沒有注意到,在他的連結後面多了一個白色的小筐筐。

這是SNAP新增的應用。

SNAP的功能,隨著時間的過去,也越做越多了。
現在有的Search Suggestion(Google suggestion), Image Search, Search Result Rating.等
不過還是這個直接協助在連結上新增預覽圖片的功能最殺。
算是把他的特點發揮出來了。

一些特別的公司團體應該可以去提出申請。
而以下幾個Service的使用者,就直接趕快去申請吧
blogger, WordPress, TypePad, Movable Type
這裡是給blogger使用者看的安裝說明
簡單的說呢,就是把你申請完成後得到的那一串script文字,複製到blogger的範本裡面就好啦。
簡單又方便。
您說是吧。

Six Tips for Efficient Memory Use

Reference Article

Lay out data structures efficiently and resue them when possible

1. Design issue
Plan your memory allocations according to type of memory, size, and lifetime.
Combine allocations of similar lifetimes, so that you can free unused memory as soon as it is no longer needed.
Don’t mix structures of greatly different sizes in the same allocation unless you can be sure that they will be aligned appropriately.

2. Reusability
Reuse structures instead of freeing them and later reallocating memory for other uses.

3. I/O request handling
Drivers often require additional memory while handling I/O requests.
The ways could be
  • Allocate a memory descriptor list (MDL) or internal buffer to use for a specific I/O request
  • Allocate an IRP to send to lower drivers.
The size of these structures varies depending on the request.
If your driver has a technique to limit I/O size or to split up a large I/O request, you could make the buffer a fixed size

4. Optimize for the most frequent operations


Allocate nonpaged pool memory for long-term use at start up.
1. Allocate memory for long-term use in a DriverEntry or AddDevice routine and free the memory as part of handling the device removal request.

2. The driver should not, however, preallocate excessively large blocks of memory (several megabytes, for example)

3. Appropriate memory allocation routines
  • ExAllocatePoolWithTag
  • ExAllocatePoolWithQuotaTag
  • ExAllocatePoolWithTagPriority
  • AllocateCommonBuffer (if the driver's device uses bus-master DMA or a system DMA controller's auto-initialize mode).
4. Use the tagged versions of the pool allocation routines instead of the nontagged versions, this will be helpful at debug and tracking.


Use memory economically.
Nonpaged pool memory is a limited system resource.

1. General Rules:
Avoid calling the memory allocation support routines repeatedly to request allocations of less than PAGE_SIZE.
Bundling structures into a single allocation,if your driver normally uses these related structures together.

2. Exception: (Drivers that use DMA)
If a driver that performs DMA needs several one-page buffers, but the buffers need not be contiguous, it should call AllocateCommonBuffer once for each such buffer.

3. Round the allocation request up to the next page boundary.
ExAllocatePoolWithTag
  • <PAGE_SIZE: allocates the number of bytes requested, they are aligned on an 8-byte boundary.
  • >=PAGE_SIZE: allocates a page-aligned buffer that is an integral multiple of PAGE_SIZE bytes
AllocateCommonBuffer always allocates at least a page of memory. If the driver requests less than an integral multiple of PAGE_SIZE bytes, the remaining bytes on the last page are inaccessible to the driver.


Use lookaside lists.
1. Lookaside lists provide fixed-size, reusable buffers.
2. They are designed for structures that a driver might need to allocate dynamically and in unpredictable numbers.
3. Lookaside lists can be allocated from paged pool or nonpaged pool.
4. The driver defines the layout and contents of the entries in the list to suit its requirements, and the system maintains list status and adjusts the number of available entries according to demand.
  • ExInitialize[N]PagedLookasideList to set up a lookaside list
  • ExAllocateFrom[N]PagedLookasideList to allocate an entry in the list
  • ExFreeTo[N]PagedLookasideList to free an entry in the list. The head of the list must be allocated from nonpaged memory, even if the list entries themselves are in paged memory.

Avoid frequently mapping and unmapping the virtual memory address space
This kind of operations can decrease performance system-wide
Because it can result in frequent flushes of the translation lookaside buffer (TLB), a per-processor cache of virtual-to-physical address translations. Each entry in the TLB contains a page table entry (PTE).
Use direct I/O to avoid this problem.
Internally, the I/O manager avoids this problem for the MDL in Irp->MdlAddress . The first time a kernel-mode component calls MmGetSystemAddressForMdlSafe , the I/O manager stores the system address in the MDL along with the corresponding physical address. When the IRP returns to the I/O manager after completion,, the I/O manager unmaps the MDL. Thus, the I/O manager requires only a single mapping (and a single virtual to physical address translation) for each I/O request.

Test and verify
Use Driver Verifier (verifier.exe), GFlags (gflags.exe), and PoolMon (poolmon.exe) to track, test, and verify memory allocation issues.
Driver verifier can allocate memory from a special pool and monitor the driver’s access to the allocated memory. It can detect attempts to access memory outside the allocated range or after the memory has been freed. In addition, it checks for memory leaks—memory that has been allocated but is no longer being used and is never freed. Verifier also gathers statistics on the number of memory allocations requested from the special pool and whether they succeeded or failed.
GFlags works together with Driver Verifier. Using GFlags, you can configure the Special Memory Pool option of Driver Verifier or designate the special pool for use in individual memory allocations.
PoolMon gathers and displays a variety of data about memory allocation, sorted by the pool tags assigned during allocation.