用Go語言計算PageRank

PageRank是搜索引擎結果排序的重要算法,其依賴的方式是鏈接結構分析,大致解釋就是一個網頁A有一個指向另一個網頁B的鏈接,就相當於A給B投票,獲得投票越多的網頁的PageRank值越高。並不是每個網頁的投票權重都是一樣的,自己PageRank越大的網頁投票權重越大,所以PageRank的計算公式是遞歸的,需要迭代計算,直到結果收斂。

我使用Go語言對真實網頁的數據WT2g進行了PageRank的計算,計算出的結果分佈如下圖:

PageRank Distribution

觀察發現,PageRank的分佈服從齊普夫分佈(Zipf Distribution),其中32%的網頁的PageRank爲最小值9.459×10^-7,超過一半的網頁的PageRank的值小於6.600×10^-6,而PageRank的最大值爲1.885×10^-3。

值得一提的是Go語言,推薦一個對Go語言特性的介紹:Go在Google:以軟件工程爲目的的語言設計。使用Go語言最大的感受是它的函數可以有多返回值,而且在各種API中這個特性被大量使用,而且約定多返回值的最後一個參數是error類型,表示是否有錯誤發生。這種錯誤處理的方法和C++、Java、Python、JavaScript使用的異常不同,倒是與C語言的錯誤處理相似。C語言習慣於把函數的返回值作爲「是否有錯誤發生」的標記,如果有錯誤再通過其他的手段(如全局變量error)來獲取,Go語言直接把錯誤作爲了一個返回值。Go語言還支持一等函數(First Class Function)和閉包,因此方便用來實現yield功能,下面代碼中的lineReader函數就是返回了一個生成器,用來按行讀取文件,每調用一次讀取一行,讀完以後釋放內存。Go語言還是一個顯式有指針的語言,同時也提供了垃圾回收,省去了手動維護內存的麻煩。

以下是用Go語言計算PageRank的代碼:

package main

import (
    "bufio"
    "errors"
    "fmt"
    "io"
    "math"
    "os"
    "strings"
)

type vertex struct {
    inDegree  int
    outDegree int
    pagerank  float64
}

type edge struct {
    start int
    end   int
}

var vertexs []vertex
var edges []edge
var vertexID map[string]int = make(map[string]int)
var numVertex int = 0

func lineReader(filename string) (func() (string, error), error) {
    f, err := os.Open(filename)
    if err != nil {
        return nil, err
    }
    buf := bufio.NewReaderSize(f, 64)
    return func() (string, error) {
        line, isPrefix, err := buf.ReadLine()
        if err != nil {
            if err == io.EOF {
                if err := f.Close(); err != nil {
                    return "", err
                }
            }
            return "", err
        }
        if isPrefix {
            return "", errors.New("buffer size to small")
        }
        return string(line), nil
    }, nil
}

func addVertex(vertexName string) int {
    var ID int
    var ok bool
    if ID, ok = vertexID[vertexName]; !ok {
        ID = numVertex
        vertexID[vertexName] = ID
        vertexs = append(vertexs, vertex{})
        numVertex++
    }
    return ID
}

func read() {
    readline, err := lineReader("wt2g_inlinks.source")
    if err != nil {
        panic(err)
    }
    for {
        line, err := readline()
        if err != nil {
            if err == io.EOF {
                break
            }
            panic(err)
        }
        // Line format is like "ID1\tID2"
        sections := strings.Split(line, "\t")
        if len(sections) != 2 {
            panic(errors.New("Illegal line format"))
        }
        start := addVertex(sections[0])
        end := addVertex(sections[1])
        edges = append(edges, edge{start, end})
    }
}

func calcPagerank(alpha float64, numIterations int) {
    // Initialize out degree of every vertex
    for i := range edges {
        edge := &edges[i]
        vertexs[edge.start].outDegree++
        vertexs[edge.end].inDegree++
    }
    var I = make([]float64, numVertex)
    var S float64
    for i := 0; i < numVertex; i++ {
        vertexs[i].pagerank = 1 / float64(numVertex)
        I[i] = alpha / float64(numVertex)
    }
    // Calculate pagerank repeatedly until converge (numIterations times)
    for k := 0; k < numIterations; k++ {
        for i := range edges {
            edge := &edges[i]
            I[edge.end] += (1 - alpha) * vertexs[edge.start].pagerank / float64(vertexs[edge.start].outDegree)
        }
        S = 0
        for i := 0; i < numVertex; i++ {
            if vertexs[i].outDegree == 0 {
                S += (1 - alpha) * vertexs[i].pagerank / float64(numVertex)
            }
        }
        for i := 0; i < numVertex; i++ {
            vertexs[i].pagerank = I[i] + S
            I[i] = alpha / float64(numVertex)
        }
    }
}

func main() {
    read()
    calcPagerank(0.15, 30)
    fmt.Println("Done")
}

BYVNotes是一個我用Go語言實現的簡單在線記事本網站,使用了Revel框架。

美國之行(四)我對美國的印象

灣區與紐約

本來想寫把標題成「西部與東部」,想想太大了,又改成「西海岸與東海岸」,還是太大了,我只去過兩個地方,怎麼可以概括呢?於是只好只說一說我對灣區和紐約的印象吧。

我對灣區的印象非常好,這裏科技發達、氣候宜人,人們對外來者普遍友善、開放,你幾乎不會感受到對外來者的歧視,因爲大家都是外來者。甚至如果你不懂英文,那也沒關係,因爲這裏有美國最大的華人社區。硅谷更是創業聖地,是追逐夢想的地方。要說不足之處,恐怕要數缺乏公共交通了,灣區人口相對分佈分散,因此沒有像紐約、北京那樣發達的地鐵公交系統,許多地方沒有汽車很難去。

我剛來到灣區的時候,過馬路都不習慣,因爲汽車遠遠地看到行人就會放慢速度停下來。但是我在天朝生活慣了,見了汽車以後還是不敢過,於是便上演了好幾次我傻站在路邊等車過,車停在路口等我過。

紐約讓我看到了美國的另一面。紐約的汽車是不怎麼讓行人的,行人闖紅燈也非常普遍,人和人之間互相不看一眼,不像在伯克利街上還有陌生人給我打招呼。紐約的道路沒有灣區乾淨,街邊還有買漢堡熱狗的小攤,和國內賣煎餅果子雞蛋灌餅的有一拼。紐約冬天的氣候很寒冷,跟北京真的有不少相似之處——都在東部靠近海岸地區,而且穿過北緯40度線。紐約的人口密度很大,平均每平方公里有一萬人,這個密度和北京差不多。

看看紐約街頭的「美國式過馬路」:

Jaywalk

治安

我去美國之前就聽說了美國許多地方治安不好,到了伯克利以後更是就被人警告晚上不要出門,否則不安全。這個建議一開始一直讓我將信將疑,白天看起來這麼漂亮安靜平和的小鎮,難道晚上就變得兇險無比?我在北京晚上從來沒有過不敢出門的經歷,除非是外面颳沙塵暴。然而沒過兩天一件事情就發生了,一天晚上我聽到外面有許多警車呼嘯而過,而且更可怕的是我住的旅館的門口竟然躺着一個黑人,我一開門,他看了我一眼,然後沒有理我。第二天聽說伯克利南部不遠的奧克蘭發生了槍擊事件,於是奧克蘭這個名字就深深地印在了我的腦中。

後來見到一個Google的朋友,他也給我講了一個故事,說是一個工程師來面試Google,被錄用以後特別高興於是當晚就去奧克蘭找一個朋友出去狂歡,然後兩個人就在停車場被槍殺了,原因是劫匪嫌他身上現金太少。再後來聽說奧克蘭房價特別便宜,因爲人都搬走了,尤其是見不到年輕人了。奧克蘭究竟是什麼地方?查過纔知道,它是灣區的三大城市之一,與舊金山、聖荷塞並列。然而奧克蘭卻被列在2008年國會調查報告的全美最危險的城市排行榜中,名列第五。奧克蘭似乎從前並不是這樣,否則它不會成爲灣區第三大城市,我看到李小龍曾經都在奧克蘭開過武館。

奧克蘭究竟爲什麼會變成這個樣子?我瞭解到的一種說法是,舊金山灣最大的裝卸貨港口就在奧克蘭,它是一個連接了海運與鐵路的交通樞紐,因此有大量的港口工人。這些港口工人大多是黑人或者拉美人,所以工資較低,教育水平也較低,而且容易受到經濟波動的影響。2008年經濟危機以來,大量工人失業,於是走上了犯罪的道路,因此治安變不斷惡化。年輕的有能力的人紛紛搬離了奧克蘭,剩下的都是年邁的或者窮人,於是便陷入惡性循環中。

事實上美國的不同階層不同人種是習慣於聚居的,譬如總體來說灣區有錢人喜歡住在舊金山或硅谷,而窮人聚集在東灣,從房價上就可以明顯看出區別。就算是在奧克蘭這種地方,社區直接還是有不少區別的,這個鏈接展示了這一點:美国加州奥克兰市的各区房价跟主要聚居人种的关系(图)

紐約的治安據說是美國大都市中最好的,除了上城黑人區外,其他地方大多是挺安全的。於是我在紐約的中城附近就敢晚上一個人出去,因爲這邊許多商店好像不關門一眼,十二點還在熱賣,在灣區許多商店晚上七八點就打烊了。紐約是貨真價實的「不夜城」,連地鐵都是24小時運轉的。

收入與物價

在國內一直有傳言說中國的物價已經超英趕美了,而收入卻還相差千里,真的是這樣嘛?我覺得這句話至少一半是對的,收入的確相去甚遠,2011年美國勞工部宣稱美國人的平均年收入37000美元左右,按照匯率換算到人民幣這可不是一個小的數目,在國內能拿到這個工資的絕對是高收入群體了。37000美元只是平均工資,在硅谷,一個工程師拿100000美元的稅前收入是稀鬆平常的一件事,在紐約的金融圈中就更高了。但問題是美國的一般人如何呢?37000美元是平均工資,由於分配的不平衡性,中位數肯定要低於這個數目。

說完收入再來看看物價,先看看超市裏面的普通生活用品,食材、日常用品這些東西不算貴,價格按照匯率換算到人民幣也就比國內高50%到200%左右吧,從平均購買力來說就是國內二到三倍。但涉及到服務的價格這部分就貴了,差不多1美元在美國當1人民幣在中國花。而感覺最便宜的是電子產品了,價格和國內一樣,甚至比國內更便宜,算上匯率就是高六七倍的購買力,怪不得美國科技發達呢。

Bestbuy

再來看看房價呢?美國儘管地廣人稀,房價卻差異巨大,便宜的有底特律的10美元的房子,昂貴的則高達幾百萬美元,簡而言之就是關鍵看房子在哪。拿灣區來說,有10萬美元左右的房子,普通勞動者是絕對買得起的,只要願意買,地點就在奧克蘭。當然也有標價近千萬美元的學區房,地點在Palo Alto,旁邊就是斯坦福大學。看看中國,北京五道口已經有了每平方米超過10萬人民幣的房子了,畢竟靠近清華嘛。普通人買得起的便宜的房子呢?恐怕到四線城市去也難以找到吧,但如果願意去鄉鎮還是有的。

當然以上這個物價的比較考察很不全面,只是個人感覺而已,況且灣區、紐約都算美國物價比較貴的地方,結果就權當參考了。總之說中國的物價趕上美國不是沒有道理。

軼事——電腦損毀

在從舊金山到紐約的飛機上,我正坐得好好的,空乘服務員來倒水,坐在我右邊的一個人把杯子伸手放在我電腦的上空,於是就把水倒到了我的電腦上。電腦屏幕就突然黑了,我心想這下完了,沒電腦自己一個人到紐約可怎麼活啊。我身邊的這個美國人也一副驚慌失措的樣子,她表示非常抱歉。我們談了幾句,她決定賠我錢,先把身上的二百元現金都給了我,然後說等到紐約去看看維修要多少錢。

就這樣我們就聊了起來。她看起來有四五十歲,是一個教英語的老師,曾經在小學、中學和大學都教過,她的祖父是斯坦福大學的教授。她和我講美國的基礎教育十分失敗,有人上完小學了還無法閱讀文章。我告訴她中國的黨化教育和言論管制,以及嚴酷的出版審查,她感覺很驚異,不敢相信這到現在還是存在的。她對中國的發展十分好奇,而且談吐間流露出一種恐懼感。她說美國國家龐大的債務都是借自中國的,而美國有些人什麼也不幹就靠社會福利過日子,這些錢都是美國政府從中國借來的,而且美國政府就沒準備還。她還指名道姓地罵了奧巴馬不少壞話,看得出她是一個奧巴馬的反對者,而且很有可能是共和黨人。

下飛機前我們互相留了聯繫方式。第二天我到大中央車站的蘋果維修中心,一問纔知維修費竟然要1400美元,我心想這在天朝1400人民幣都用不了,於是就不修了。給一個朋友打電話,他建議我給蘋果要維修價格認定書,然後把這個文件給那個損毀我電腦的人。我就這麼做了,那個人看了以後二話沒說就給了我一張支票。

這個經歷實在令我難忘,許多人告訴我說要是這件事發生在中國,損毀我電腦的人肯定千方百計推卸責任,而且一旦下飛機以後肯定會杳無音信。而這位美國人卻非常講信用,而且實際上這件事的責任並不在她一個人,那個不專業的空乘服務員也是重要的責任人,她無論如何不應該在我電腦的上空倒水。她自己一個人承擔了所有的責任,實在不得不令我佩服。後來瞭解到她住在灣區的Mill Valley,屬於北灣,而北灣一般是富人的區域,所以這一千多美元可能對她來說真的不算什麼吧。其實美國人並不比中國人天生要講信用,關鍵看講信用和不講信用哪個成本更低,換句話說就是有沒有錢。

美國夢

我在灣區時候有幸被一個朋友帶着去Palo Alto的私人機場看了看,而且嘗試了一把乘坐私人飛機。私人機場就在Palo Alto東部靠海的地方,裏面停着至少幾百架私人擁有的飛機,機場與加油站和跑道,還有幾個飛行俱樂部。我被帶着飛上了5000英尺,由於空氣很好,可以看見很遠的地方。

Private Aircraft

千萬別以爲這是超級富豪的遊戲,我的那位朋友也只是一個公司的普通工程師而已。私人飛機的價格低廉得讓你驚訝,我一開始聽到幾乎是不敢相信的這是真的,我算了算看努力工作幾年是買得起的,而且飛行、養護的成本也不是不可接受。對我來說,這種感覺不僅僅是飛上天那一瞬間的興奮。更多的是我感受到了什麼叫美國夢,什麼叫只要努力就能實現你的夢想。就像著名的華裔建築師貝聿銘在80年前來到美國的時候,徹底被汽車吸引了,他竟然發現在中國只有顯赫的達官貴人纔能坐得起的汽車,在美國竟然如此普遍,那正是他的美國夢誕生的時刻。

引用楊哲的這篇文章

这里是Palo Alto机场,是一个public airport,里面停着的都是私人飞机。旁边有一些飞行俱乐部。可以向俱乐部租飞机飞,也可以请教练教开飞机。只要有驾照,开飞机不需要向任何部门申请,只要跑道排好队,想什么时候飞,向哪里飞,都随意。只要是公共机场,跟地面联系一下排个队就可以降落。公共机场就像停车场一样普遍和自然。从家里来机场,只要把车停在自己飞机的机位,把飞机拉出来,回来了再开车回家,简单高效。当然,基本上是个正常人都能学会开飞机,考到驾照,以及开飞机。

在Palo Alto机场逛的时候,我才意识到,那个FG S11E09其实并不是在刻意输出价值观,这就是美国的生活、美国梦。这是一个神奇的国家,真的都像是假的。

(完)

美國之行系列

美國之行(三)紐約

紐約

早上10點出發,從舊金山飛了四個小時纔到紐約,但是卻已經是晚上7點了,是因爲有時差的緣故,美國東部比西部要晚3個小時。以前在國內從未有這種感覺,原因是在國內總是大致南北飛,沒有橫貫東西4000公里的經歷,何況中國就一個北京時間,哪怕是到新疆也一樣。

下飛機以後,感覺一瞬間又回到了冬天,紐約很冷,零下好幾攝氏度,和北京差不多,一點也沒有舊金山那種宜人的感覺。肯尼迪機場在皇后區,距離曼哈頓挺遠的,要坐地鐵去。從機場出發要坐地鐵首先要坐SkyTrain,SkyTrain很有意思,上車是免費的,我還以爲真的免費,但卻發現收費在出站口,進去容易,想出來就得付錢了,真是考慮周到。紐約地鐵和灣區的按站計費不一樣,到哪裏都是2美元一次,和北京頗爲類似,都是兩塊錢。進入紐約地鐵後,第一感覺就是令人震驚的髒亂差,軌道內都是垃圾,上面還漏水,而且設施破舊,站臺上人一旦少了頗有恐怖片的氛圍。跟天朝的地鐵比起來,美國的真是弱暴了。不過區別在於,像北京的地鐵大多是最近十年迅速建成的,而紐約地鐵已經快有一百年的歷史了。

New York City Subway

紐約是美國最著名的城市,去美國不能不去紐約。它還是美國人口最多的城市,有超過八百萬人(跟天朝比其實不算多)。紐約市在紐約州的東南角,包含五個區,分別是曼哈頓島、皇后區、布魯克林區、布朗克斯區和史泰登島。其中最著名的就是曼哈頓島了,紐約的幾乎所有名勝全部都在曼哈頓島上。

曼哈頓

學過計算機的一定不會沒有聽說過「曼哈頓距離」,究竟爲什麼叫曼哈頓距離呢?看看曼哈頓地圖就明白了。曼哈頓島上的道路驚人的整齊,整個到被分割爲一個個大小幾乎相等的矩形街區,就連道路的命名都極其規則。東西方向的道路差不多一律被命名爲街(Street),從南向北依次是1st Street, 2nd Street, 一直到220 Street。南北向的道路從東向西依次被編號爲1st Avenue一直到12th Avenue,但中間有幾個數字被跳過了,換成了名字。所以在曼哈頓再沒有方向感的人也會有方向感,再不知道東西南北的人也會在腦中建立起羅盤。

曼哈頓由南向北大致可以分爲下城、中城、上西城、上東城。其中下城有著名的自由女神、華爾街、911世貿中心原爆點和唐人街,中城有帝國大廈、時代廣場、百老匯劇院,上城有中央公園、大都會博物館、哥倫比亞大學。據說紐約的中城和下城比較繁華也比較安全,而上城北部哈萊姆區是紐約的黑人區,比較貧困。我在紐約的幾天住在34街與第3大道附近,算是曼哈頓中城比較好的地區。

中城

我在紐約的第一站是中城,從34街出發,一邊走一邊看着紐約街頭的風景。曼哈頓的每個街區都是一棟摩天大樓,走在其間有一種十分渺小的感覺。

New York City Midtown Building

我不是第一次見到高樓大廈,但紐約的高樓大廈和北京上海的很不一樣,想來想去我發現主要的差別在於紐約的摩天大樓特別密集,而且道路很窄。這種現代風格的建築給我一種強烈的感官刺激,讓我十分興奮。

時代廣場

步行二十分鐘就走到42街與第7大道的路口,就看到了傳說中的時代廣場。時代廣場曾經是紐約時報的所在地,但現在是聚集紐約的劇院、音樂廳、購物中心、酒店的集中地。時代廣場給人最大的感受就是它四周無孔不入的巨型廣告宣傳版,堪稱商業文化的世界中心。

Time Square

Time Square

後來看照片時纔注意到當時身後的「The Phantom Of The Opera」的廣告,當時沒有去看實在是太可惜了。

Time Square

大中央車站

從時代廣場向東走十幾分鐘,就看到了摩天大樓之間的大中央車站。大中央車站彙集了紐約的好幾條重要的地鐵和鐵路,是紐約的交通樞紐之一。大中央車站建於1913年,我去看的時候恰好是100週年紀念。

Grand Central Terminal

大中央車站除了是一個交通樞紐以外,也是一個商業中心,蘋果公司就在大中央車站租了很大一塊地方銷售iPhone、iPad和Mac。大中央車站的地下有各國的風味小喫,候車者可以在這裏休息。

帝國大廈

到紐約最不能錯過的地方除了自由女神,恐怕就是帝國大廈了。儘管帝國大廈不是紐約最高的建築,卻是紐約的地標建築,因爲它一度一直是美國最高的建築,而且建造從1930年開始到1931年建成僅僅用了一年零兩個月,堪稱一個奇蹟。

說來也巧,我去美國之前正好看了三部電影,分別是「西雅圖夜未眠(Sleepless in Seattle)」、「金剛(King Kong)」和「印度英語(English Vinglish)」,這三部電影都出現了帝國大廈,所以當我爬上帝國大廈的時候,激動的心情是難以言表的。回來以後正好又看了「北京遇上西雅圖」,重溫了熟悉的場景。

Empire State Building

Empire State Building

Empire State Building

帝國大廈不僅外表宏偉,內部也十分精緻。我花了27美元的門票登了上去,從遊覽入口進去,發現路線都是精心規劃了的,過一個檢查點的時候還被拍了一張照片,我以爲是安全檢查。上去以後先到了80樓,然後上到了86樓的觀景臺,看到了幾乎整個曼哈頓的景色,下面高樓大廈林立,真的是現代化大都市,心情十分舒暢。下去的時候,發現有一面牆全是照片,而且竟然看到我的照片也被打印出來了,效果還不錯,工作人員說這個賣20美元。在國內類似的也有,不過都是按需打印的,像這裏這樣直接幫你打印好,還真是第一次見。想想我真心佩服經營者的智慧,打印一張照片的成本並不高,批量化還能繼續降低成本,利用這種方法可以讓顧客一眼看到效果,同時還利用了中間觀景的時間,相信不少人會願意花這個錢買。

自由女神

自由女神是紐約乃至美國的象徵,曼哈頓南端自由島上的自由女神像可謂是紐約最熱門的景點了。只可惜由於去年的「桑迪」颶風,自由女神像遭到損毀,所以自由島不能登上了,只能在海上看。

Statue of Liberty

華爾街

看完自由女神後,步行不遠就是華爾街。華爾街在外表看真的可以說是其貌不揚,至少和想像中的那種紙醉金迷頗有不同。看來這些大型金融機構還是很低調的,只是名聲在外,隱瞞不了。而且傳說中的「華爾街金牛」根本不在華爾街,而在華爾街北邊聖三教堂的旁邊。

Bull

唐人街

紐約唐人街在下城,靠近熨斗區。走進紐約的唐人街有一種回到中國的感覺,不僅僅是因爲隨處可見的中文照排,還有髒亂的街道。唐人街看起來很貧窮,超市的東西也便宜,簡直和中國的超市差不多,國貨應有盡有。之後我還想去看小意大利,可是走到了地圖上的小意大利,卻發現招牌還都是中文,看了真的被唐人街侵佔了。

Chinatown

大都會藝術博物館

大都會藝術博物館是紐約最有名的博物館,據說館藏超過二百萬件來自全世界各地的珍貴藝術品。我在大都會博物館裏面逛了八個小時,瀏覽了十幾個展區的幾百個房間,只能說是瀏覽,因爲這個博物館真的太大了,仔細逛的話一個月都看不完。況且紐約還不止一個藝術博物館,紐約真的是一個藝術愛好者的聖地。

Metropolitan Museum

中央公園

中央公園是曼哈頓上城的一大片綠地,大都會博物館和自然歷史博物館就在中央公園旁邊。紐約的中央公園有點像舊金山的金門公園,都是城市中央的一個特大的公園,而且是一個矩形,區別在於一個是橫的一個是豎的。中央公園的環境十分優美,而且風景和週邊城市建築非常和諧,這和中國很多風景區看到的遠處醜陋的建築頗有不同。

Central Park

哥倫比亞大學

哥倫比亞大學在中央公園的西北邊的晨邊高地,靠近哈萊姆區。哥倫比亞大學和斯坦福、伯克利這些西部的名校比起來,校園規模簡直不是一個數量級,它只有五個街區那麼大,畢竟是在曼哈頓這種寸土寸金的地方。但是哥倫比亞大學絕對是美國最牛逼的幾所大學之一,它的歷屆畢業生和教職員中共有97名諾貝爾獎得獎者,於世界各大學中排名第一。在學術界以外它的影響力也很強,絕對是世界超一流水平。

Columbia University

哥倫比亞大學所處的位置十分微妙,它就在黑人區的邊緣地帶,處於1960年代「垮掉的一代」運動發源地,因此周圍有不少爵士樂酒吧、咖啡廳,但因此治安並不是很好,晚上是不建議獨自在街上走動的。

世貿中心九一一原爆點

世貿中心雙子塔曾經是紐約最高的建築,是一個巨型的商業中心。但是在2001年9月11日,它被基地組織公佈襲擊摧毀了。九一一事件成爲近十幾年來美國最嚴重的事件,也是歷史上美國本土遭受的最嚴重的襲擊,死亡人數超過二戰時期的珍珠港事件。

現在,九一一的原爆點已經重建多年,建成了九一一紀念廣場,原來雙子塔的塔基位置現在成爲了兩個巨型的水池,水池週邊上刻有所有罹難者的姓名,供世人憑弔。廣場中還有一個尚未開放的博物館,預計半年以後會開放。在世貿中心遺址旁邊還在建設一座新的摩天大樓,名爲新的世貿中心一號大樓,又名自由塔(Freedom Tower),從2006年開工,預計2013年7月完工。自由塔建成以後將會成爲新的北美第一高塔,象徵着美國在廢墟上重建家園,與恐怖主義對抗到底的精神。

World Trade Center

Google

Google當然不是一個公開的景點,但是作爲Google的員工(實習生),我不能不去紐約的Google看看。紐約的Google在中城下城之間的熨斗區,大樓整整佔了一個街區,當然這棟大樓裏面不僅僅是Google,還有許多其他的公司,據說這棟大樓裏面直接接入了大西洋海底光纜,因此許多通信公司也進駐了這個大樓。

Google NYC

Google紐約辦公室和全世界的Google一樣都十分漂亮,辦公室的環境非常輕鬆,也有許多有特色的東西。譬如辦公室內的路標,全部都是紐約地鐵風格的。還有樓層與樓層之間有梯子可以直接爬上去,省去了走樓梯的麻煩。

美國之行系列

比特幣——史上最瘋狂的虛擬貨幣

今天我在清華大學「搜索引擎技術基礎課程」的討論上做了一個報告:比特幣——史上最瘋狂的虛擬貨幣。現在公開放出來,歡迎大家討論。鏈接見此:

演示文稿

Bitcoin

另外推薦:我的所有演示文稿

注:這個演示文稿只是對比特幣十分簡要的介紹,更多細節推薦 bitcoin的技术和金融缺陷