天文學家發現鑽石星球

天文學家發現了有史以來密度最大的太陽系外行星,他們推測行星大部分是由鑽石組成。報告發表在最新一期的《科學》雜誌上。這顆星球距離地球4000光年,它的母星是一顆快速旋轉的脈衝星PSR J1719-1438,公轉一周只需2小時10分鐘,它的軌道直徑僅僅為60萬公里,只比地月平均距離長50%。它的平均密度大於每立方釐米23克,相當於鉛的兩倍,科學家推測它是一顆白矮星的殘骸,原有的外層大氣被脈衝星引力剝離,只留下一個高密度的內核,它富含碳和氧,品質接近木星,直徑55,000公里,大部分可能是高密度鑽石。

男性器官與經濟增長有關係

赫爾辛基大學博士生Tatu Westling發表論文《男性器官與經濟增長:尺寸有關係?》(PDF),他根據世界各國的男性器官長度數據,研究它與國家國民收入的關係。他利用跨國增長回歸的統計學方法發現:1985年,勃起尺寸居中國家的國民收入水準最高(也就是倒U型),而1960至1985年間,陰莖勃起尺寸則與經濟增長呈反比關係。Westling形容他自己的研究論文是“嘲諷經濟學”,稱“從科學角度講,這篇論文很可能和當代經濟學大多數論文一樣毫無價值可言。

Google Motorola

為了搶專利,Google 死都要用 125 億美元買下摩托羅拉移動?

通常來說Google的收購保密做的都很爛(難道是故意的?),但這次Google終於做到了Apple式的保密性,他們剛剛宣佈(Larry Page作為CEO親自發的博文)以125億美元買下摩托羅拉移動(Motorola Mobility)。

摩托羅拉有80年的通訊技術歷史,也是在大概30年前首個推出世界上第一款移動電話StarTAC的公司。2007年Google宣佈Android之時摩托羅拉也是首批加入開放手機聯盟的成員之一,至此之後推出了大量的Android手機,尤其是Droid系列更是將摩托羅拉從衰落的邊緣拉了回來。

Google稱此次收購不會對Android作為一個開放平臺產生任何影響,摩托羅拉也繼續會以授權的形式使用Android(意思是Google不會開小灶兒),而Android也會保持開放(不會對別家使用Android產生影響)。Google稱會繼續讓摩托羅拉移動以一個獨立的業務運營。

此次收購顯然是針對Apple和微軟針對Android設備製造商進行專利訴訟之舉,摩托羅拉有著厚重的歷史積澱,手握大量移動領域的專利,理論上Apple和微軟無法再以此威脅Android,因為摩托羅拉手上也有Apple和微軟所沒有的專利,大家兩敗俱傷就沒有意義了。當然手握摩托羅拉專利之後,Google可以將這些專利轉移授權給HTC等專利匱乏的Android手機製造商,幫他們抵禦Apple和微軟的“流氓行徑”(至少Google認為他們是流氓的)。

 

LCD TV 和 LED TV 分別

在香港的所謂LED TV,其實是指使用了LED背光燈既LCD TV。

傳統既LCD TV,就用CCFL(光管)做背光燈。

因此我地唔會用LED與LCD比較,正確概念應該係LED VS CCFL。

香港既LED TV應該叫LED-LCD TV,「三叔牌」當年最先在港push LED-LCD TV,佢地更將之簡化做LED TV,搞亂哂百姓對影音d概念…我操佢泥馬!

之所以三叔唔應該叫LED TV,係因為真係有種產品叫LED TV,佢直接用LED輸出光源及顏色顯像。

Google是如何做代碼審查

Google是一個非常優秀的公司。他們做出了很多令人稱讚的東西—既是公司外部,人們可以看到的東西,也是公司內部。有一些在公司內部並不屬於保密的事情,在外部並沒有給予足夠廣泛的討論。這就是我今天要說的。

讓Google的程式如此優秀的一個最重要的事情看起來是非常的簡單:代碼審查。並不是只有Google做這個事情—代碼審查已經被廣泛的認可為一種非常好的做法,很多人都在這樣做。但我還沒有看到第二家這樣大的公司能把這種事情運用的如此普遍。在Google,沒有程式,任何產品、任何專案的程式碼,可以在沒有經過有效的代碼審查前提交到代碼庫裏的。

所有人都要經過代碼審查。並且很正規的:這種事情應該成為任何重要的軟體發展工作中一個基本制度。並不單指產品程式——所有東西。它不需要很多的工作,但它的效果是巨大的。

從代碼審查裏能得到什麼?

很顯然:在代碼提交前,用第二群眼睛檢查一遍,防止bug混入。這是對其最常見的理解,是對代碼審查的好處的最廣泛的認識。但是,依我的經驗來看,這反倒是它最不重要的一點。人們確實在代碼審查中找到了bug。可是,這些在代碼審查中能發現的絕大部分bug,很顯然,都是微不足道的bug,程式的作者花幾分鐘的時間就能發現它們。真正需要花時間去發現的bug不是在代碼審查裏能找到的。

代碼審查的最大的功用是純社會性的。如果你在編程,而且知道將會有同事檢查你的代碼,你編程態度就完全不一樣了。你寫出的代碼將更加整潔,有更好的注釋,更好的程式結構——因為你知道,那個你很在意的人將會查看你的程式。沒有代碼審查,你知道人們最終還是會看你的程式。但這種事情不是立即發生的事,它不會給你帶來同等的緊迫感,它不會給你相同的個人評判的那種感受。

還有一個非常重要的好處。代碼審查能傳播知識。在很多的開發團隊裏,經常每一個人負責一個核心模組,每個人都只關注他自己的那個模組。除非是同事的模組影響了自己的程式,他們從不相互交流。這種情況的後果是,每個模組只有一個人熟悉裏面的代碼。如果這個人休假或——但願不是——辭職了,其他人則束手無策。通過代碼審查,至少會有兩個人熟悉這些程式——作者,以及審查者。審查者並不能像程式的作者一樣對程式十分瞭解——但他會熟悉程式的設計和架構,這是極其重要的。

當然,沒有什麼事情能簡單的做下來的。依我的經驗,在你能正確的進行代碼審查前,你需要花時間鍛煉學習。我發現人們在代碼審查時經常會犯一些錯誤,導致不少麻煩——尤其在一些缺乏經驗的審查者中經常的出現,他們給了人們一個很遭的代碼審查的體驗,成為了人們接受代碼審查制度的一個障礙。

最重要的一個原則:代碼審查用意是在代碼提交前找到其中的問題——你要發現是它的正確。在代碼審查中最常犯的錯誤——幾乎每個新手都會犯的錯誤——是,審查者根據自己的編程習慣來評判別人的代碼。

對於一個問題,通常我們能找出十幾種方法去解決。對於一種解決方案,我們能有百萬種編碼方案來實現它。作為一個審查者,你的任務不是來確保被審查的代碼都採用的是你的編碼風格——因為它不可能跟你寫的一樣。作為一段代碼的審查者的任務是確保由作者自己寫出的代碼是正確的。一旦這個原則被打破,你最終將會倍感折磨,深受挫折——這可不是我們想要的結果。

問題在於,這種錯誤是如此的普遍而易犯。如果你是個程式師,當你遇到一個問題,你能想到一種解決方案——你就把你想到的方案作為標準答案。但事情不是這樣的——作為一個好的審查者,你需要明白這個道理。

代碼審查的第二個易犯的毛病是,人們覺得有壓力,感覺非要說點什麼才好。你知道作者用了大量的時間和精力來實現這些程式——不該說點什麼嗎?

不,你不需要。

只說一句“哇,不錯呀”,任何時候都不會不合適。如果你總是力圖找出一點什麼東西來批評,你這樣做的結果只會損害自己的威望。當你不厭其煩的找出一些東西來,只是為了說些什麼,被審查人就會知道,你說這些話只是為了填補寂靜。你的評論將不再被人重視。

第三是速度。你不能匆匆忙忙的進行一次代碼審查——但你也要能迅速的完成。你的同伴在等你。如果你和你的同事並不想花太多時間進行代碼復查,你們很快的完成,那被審查者會覺得很沮喪,這種代碼審查帶來的只有失望的感覺。就好象是打攪了大家,使大家放下手頭的工作來進行審查。事情不該是這樣。你並不需要推掉手頭上的任何事情來做代碼審查。但如果中途耽誤了幾個小時,你中間還要休息一會,喝杯茶,沖個澡,或談會兒閒話。當你回到審查現場,你可以繼續下去,把事情做完。如果你真是這樣,我想沒有願意在那幹等著你。