2010年3月29日

Google & GoDaddy 離開中國 告訴我們的事

google-cn-new.png隨著中國政府跟 Google 的協商破局後,www.google.cn 轉址到 www.google.com.hk,Google 正式離開中國搜尋市場。無獨有偶,GoDaddy 這家全世界最大的網址註冊服務商在上週(3/25)也決定不再提供 .cn 域名註冊。

Google 事件鬧得沸沸揚揚,大家都知道 Gmail 原始碼外洩只是個導火線,離開的主要原因是中國跟 Google 對於要不要過濾搜尋結果的意見不同造成,這跟 Google 一向強調 Don't be evil 背道而馳。

godaddy-logo.jpgGoDaddy 則是中國政府從去年底開始,要求 .cn 網域註冊者都得提供個人資料,包括大頭照、公司文件、個人證明,送交中国互联网络信息中心 (CNNIC)審核登記。GoDaddy 照做了,但只有約 20% 的用戶提供,GoDaddy 覺得這種作法等於協助中國政府收集這些域名註冊者的個人資料,因此不再提供 .cn 的註冊。

兩家在網路上赫赫有名的服務商都決定離開中國市場,那塊每個企業都積極都想進入的中國市場,為的是什麼?只為了一個企業的中心思想。

Google 的 Don't be evil 和 GoDaddy 的不想跟中國政府狼狽為奸收集個資。

不管背後是否有其他外交、政治上的含意,眼前的事實是 Google 失去了每年營收 50-60 億美元的中國廣告市場,GoDaddy 放棄了一年超過 5000 個 .cn 域名註冊。只為了企業內的中心思想而放棄令人垂涎的市場,有 Guts!

我想說的是,一家企業除了在追求股東的最大利益外(講白話一點就是賺多一點錢),是否還有一個超脫金錢的中心思想,這個思想跟就好像一個國家的憲法,是所有法律的根本、公司做決策的依歸,不管在任何情況下都不允許破壞。即使利益擺在眼前,也不容許踐踏憲法的尊嚴。

這種想法衍生自個人,在工作時偶而會想起,寫出來的程式是真的有替用戶帶來一絲絲的方便性,還是只是個工具,在替老闆騙用戶錢的工具。小時候爸媽一定會教導我們長大要作個有用的人,不要做壞事等等仁義道德。但工作久了這些早就拋到腦後,只要老闆要什麼,當員工的只要照做就是了,不管做出來的東西是不是真的能幫助到人,只求每個月薪水準時入袋。但做著做著偶而會有種罪惡感浮上心頭,到底工作的目的是賺錢優先,還是真的能夠為這社會貢獻一點點微薄之力。

Google 跟 GoDaddy 的中國政策似乎給了一個答案。

2010年3月19日

加快 Android rebuild 速度 讓你硬碟不再哀號

2010-03-19_222841.pngEclipse 開發過 Android 的人一定都有相同經驗,隨著 Project 越來越大,當修改某個 Resource 後 Eclipse 一定會卡住一陣子,這時右下角出現 building workspace、百分比開始跑,整個 Coding 被迫中斷,思緒也跟著打斷,直到 build 結束才能繼續。

2010-03-20_000700.png

會這樣是因為 ADT Plugin for Android 的關係,當 res 目錄下的檔案有異動時,ADT 會 rescan 所有的 resource,rebuild 成對應的 class 檔(例如 R.class),以便讓異動後的內容可以在 Coding 時引用。隨著 resource 越來越多,rebuild 的時間也會越來越長,rebuild 有多久,硬碟哀號的時間就有多久。

要避免硬碟哀號,只要讓 ADT rebuild 時不要寫入到硬碟就好,這時可以透過 RAMDisk 來解決,讓 rebuild 後的 class 寫入記憶體中,不會碰到硬碟,硬碟就不會鬼叫。

我們可以簡單的利用兩個工具 + 三個步驟來搞定他。

步驟一:建立 RAMDisk

下載位置:Dataram RAMDisk 3.5.130RC10

這裡推薦一套 RAMDisk 工具 ─ Dataram RAMDisk,建出來的 RamDisk 速度比其他工具建出來的 RAMDisk 快、相容 Windows 7、使用又方便。

下載安裝後,執行 RAMDisk Configuration Utility,設定想要的 Disk Size(如果只要放 class 不用設定太大,100 MB 就非常夠了),其他都不用動,按下 Start RAMDisk,不一會兒 RAMDisk 就建好了。
2010-03-19_230839.png

瞧瞧檔案總管中,是不是多了一個 RAMDisk 的槽2010-03-19_231628.png

步驟二:下載 Junction

下載位置:Junction v1.05

Junction 是一隻 Microsoft 出的小程式,用來建立兩個資料夾的連結,功能如同 Linux 下的 ln 一樣,建立 hard link。

例如 C:\link\ 已經利用 Junction 連結到 D:\linked\,手動在 C:\link\ 建立一個 test.txt,這時 D:\linked\ 也可以看到 test.txt,打開 D:\linked\test.txt 隨便修改存檔,C:\link\test.txt 也會跟著改變,這就是連結的效果。實際上檔案是建立在 D:\linked\,只是 C:\link\ 也可以看到相同的內容。(好饒舌~~~)

下載後先解開隨便放在一個資料夾,假設是 C:\Junction\

步驟三:自動建立連結

ADT rebuild 後的 class 都放在 Android Project 根目錄下的 bin 資料夾,我們只要把 bin 資料夾建立連結到 RAMDisk 上,自然就可以避免寫入檔案時硬碟狂叫,還可以加快寫入速度,真是好處多多。

怎麼做?先複製下列內容存成 link.bat,放在跟 junction.exe 同一目錄下。

mkdir F:\NewsBot
junction "E:\workspace\NewsBot\bin" "F:\NewsBot"

再修改上述內容符合自己的開發環境
F:\NewsBot 是RAMDisk 上要被 bin 資料夾連結的位置
E:\workspace\NewsBot\bin 是 Project 的 bin 資料夾位置

修改後把 link.bat 拉到開始功能選單中的啟動內,讓電腦開機後自動連結
2010-03-19_235225.png

這時放心的砍掉 Project 內的 bin 資料夾,讓下次重開機後 junction.exe 可以順利建立連結,砍了嗎?砍了就快點重開機享受快速又安靜的 rebuild 吧。

後記

這樣的方式應該也適用於其他的 IDE 工具、適用於開發非 Android 的 Project,只要把握住原則,用 RAMDisk 來加快 Project 內最常存取的資料夾,應該都可以達到同樣的目的。

2010年3月12日

Intel X25-V 40G SSD 硬碟真的快 好厲害

200606107801152505482347.jpg為了讓系統跑更快,前一陣子換了 WD1500ADFD 150G 大暴龍,原本想說 10000 轉的硬碟比起兩三年前的 Seagate 梭魚十代會快很多,但使用後感受不太到速度上有大幅增加,反而是讀取硬碟時的聲音比起梭魚大到恐怖,夜深人靜時開機,我猜隔壁鄰居都聽得到硬碟的哀號聲。

速度感受不到+運作時聲音實在太大,讓人興起換硬碟的念頭,要花錢,錢就要花在刀口上。

因為家裡同時有一台 Server 運作著,要存放大檔案往 Server 丟就是了,所以本機不需要大硬碟,只要夠安裝 Windows + 一些軟體其實就夠了。

考量完容量再來考慮速度,由於平常寫程式時讀取小檔的頻率非常高,因此新硬碟讀取小檔的速度最好快一點,這也是當初換大暴龍的原因之一,10000 轉的硬碟讀取小檔應該會比平常的 7200 轉快一些。

最後是要夠安靜,半夜起來寫程式就是為了可以專心,會鬼叫的硬碟實在讓人專心不了。

外盒

能同時符合容量不拘+讀取小檔速度快+安靜的硬碟不多,看來看去就只有 SSD 固態硬碟最適合我。

剛好最近有款很熱門的 Intel X25-V 40G SSD,Intel 在 SSD 這還不算成熟的市場中,技術上算是很成熟,出產的 SSD 產品讀取、寫入速度都比別人快一些。這款 SSD 價錢還算可以,新品約 4000 上下,但運氣還不錯,在網拍找了很新的二手貨(2010.01.03 包裝出貨)才 3600,加上這個 Logo 還蠻吸引人的,就是他了,不囉唆,入手先。
衝著這個標誌而買

容量

SSD 真是完全符合我的需求,雖然現在 SSD 的價錢還偏高,能買到的硬碟容量都不大,但只要不是小的太誇張,40G 對於我來說完全不是問題。

速度

速度更是 SSD 的優勢,除了寫入速度比不上傳統硬碟,讀取速度則是完全超越,不管是連續讀取速度或是隨機存取小檔,都比傳統硬碟快上許多。平常寫程式讀取的機會大於寫入,加上程式都是小檔,SSD 真的很適合用在程式開發環境。

噪音

聲音方面是 SSD 最大的特色,不像傳統機械式硬碟有馬達、讀取臂等會發出聲音機構,SSD 是電子式的記憶體讀取、寫入,運作時完全沒有聲音。半夜時打開電腦只聽到 CPU 風扇聲的感覺實在太棒了。

省電

除此之外還很省電,雖然這不是挑選的因素之一,不過能為地球進一份心力也算是使用 SSD 的好處(替自己敗家找藉口中)。

SSD 目前還有一些瓶頸,例如同一記憶體區塊寫入次數不能太多,不然很快壞,不過各家廠商都有自己的演算法防止同一區塊被寫入次數太多,加上 Intel 敢保固三年,起碼可以保證三年內不會壞掉,對我來說一顆硬碟應該用不到三年,所以寫入次數這方面不成困擾。
3 年保固2010.01.03 包裝出貨,新鮮

廢話講了那麼多,噹噹,來開箱,整個硬碟厚度不到一元硬幣的一半。
開箱換個角度再一張側面照有多薄 不到一元硬幣的一半

跟傳統硬碟比一比,體積小很多,厚度也少了一半以上,重量當然也輕很多。
新舊大小比一比新舊高度比一比

前面有說過 SSD 目前的缺點在於同一區塊不能寫入太多次,因此寫入演算法很重要,這也是每家廠商努力的地方之一。Intel 在這方面做得還不錯,有自己的最佳化工具 Intel Solid State Drive Toolbox 輔助寫入演算法運算。
Intel SSD Toolbox

背後詳細的邏輯我也不太懂,但實際使用後速度真的有差,剛拿到手時讀取速度高高低低,雖然最快衝上 200MB/s,但平均在 150 MB/s 左右(左圖),最佳化後平均接近 200MB/s,真的是爆快的。尤其是存取時間(Access Time)才 0.1 ms,比起一般硬碟的 8-15 ms 實在是快太多了(3.5吋硬碟 Random Access Time 比較表)。
最佳化前的速度最佳化後的速度

下面取自Wiki(讀取時間
讀取時間
(Access Time),是從記憶體控制器給出讀出的指令,到記憶體(內部記憶體memory)應答,輸出所需的資料,所用的時間。對於早期記憶體和現在較小型的記憶體而言,讀取時間是衡量記憶體性能最重要的指標之一。

使用心得

使用後真的覺得 SSD 實在太完美了,完全符合我的需求,速度、安靜、省電,如果以後覺得硬碟不夠大,再買一顆組成 RAID0,速度、容量都 Double,不怕擴充性發生問題。只是容量跟價錢比起傳統硬碟貴上許多,如果不在意容量的人,應該試試看,保證愛不釋手。

2010年3月6日

Google 拉攏開發商 免費賺到一隻 Nexus One

Google 真是佛心來的,為了拉攏開發商的心,不惜下重本,狂灑 Nexus One 或 Motorola Droid(台灣版本稱為 Milestone),免費大贈送。

首先是 3/3 在台灣舉行的 Android Developer Lab 上,只要參加的人員,當天可以領到一隻台灣未上市的 Nexus One。Android Developer Lab 報名資格是採取審核制,有在 Android Market 上發布過程式審核通過的機率較大,有報名應該都會上,千金難買早知道,早知道就報名參加了,據說當天發了 300 隻手機。

除了台灣外,Android Developer Lab 也會在其他國家舉行,香港是 3/5 舉行,也有香港的開發人員拿到免費手機了(參加Android Developer Lab,人人獲贈 Nexus One一部,Google實在是太邪惡了!)。

以 Google 這六個字來說,如果只是這樣,那就太小家子氣了!

一樣是 3/3 發生的事,這次是寄信通知符合資格的開發商。

針對已在 Market 上發布過程式,程式的下載量在 2/28 超過 5000 次且評價在 3.5 顆星以上的開發者,Google 一樣大手筆的贈送 Nexus One 或 Motorola Droid 一隻。在美國的開發商是兩隻隨機挑一隻贈送,其他國家的開發商則是贈送 Nexus One。

為什麼我會知道,因為我也收到信啦!收到信的那一瞬間整個人快跳了起來,Nexus One 現在去拍賣上看還要兩萬上下,Google 竟然這麼大方直接送。

信件內容如下

Subject: Device Seeding Program for Top Android Market Developers
From: android-market-seeding@google.com
Due to your contribution to the success of Android Market, we would like to present you with a brand new Android device as part of our developer device seeding program. You are receiving this message because you're one of the top developers in Android Market with one or more of your applications having a 3.5 star or higher rating and more than 5,000 unique downloads.
In order to receive this device, you must click through to this site, read the terms and conditions of the offer and fill out the registration form to give us your current mailing address so that we can ship your device.
You will receive either a Verizon Droid by Motorola or a Nexus One. Developers with mailing addresses in the US will receive either a Droid or Nexus one, based on random distribution. Developers from Canada, EU, and the EEA states (Norway, Lichtenstein), Switzerland, Hong Kong, Taiwan, and Singapore will receive a Nexus One. Developers with mailing addresses in countries not listed above will not receive a phone since these phones are not certified to be used in other countries.
We hope that you will enjoy your new device and continue to build more insanely popular apps for Android!
Thanks,
Eric Chu
Android Mobile Platform


Google, Inc.
1600 Amphitheater Parkway
Mountain View, CA 94043
NOTE: You have received this mandatory email to notify you about an important update to the status of your Android account.

身為男人一定都曉得「免費的最貴」這個道理,為了怕是詐騙信先上網搜尋一下,很多開發人員都收到一樣的信,會寫程式的應該不會笨到哪去,大家也認為這很有可能是詐騙信,直到看到有網站登出他們直接去跟 Google 確認,這是真的消息才放心,上指定網站填完相關資料後就可以囉。

2010-03-03_104133.png2010-03-03_104201.png

填完後過幾天會再收到一封確認信(我是 3/5 也就是今天收到確認信)
主旨:Android Market Device Seeding Program Confirmation

Dear Jack,

We’ve received your information for the Android Market Device Seeding Program and have successfully validated the Google Order Number from your developer account.

Your information will now be sent to our shipping partner for order processing. Just to confirm, the information we received from you was:

===個人資料省略===

If you need to make any changes to your information above, please contact us at android-market-seeding@google.com as soon as possible. Otherwise, you should receive your phone in 2-4 weeks!

On behalf of the Android team,
Thanks, and happy coding!


Google, Inc.
1600 Amphitheater Parkway
Mountain View, CA 94043

看來等個二到四周就可以收到新手機啦。

Google 可能是怕之前一些對開發商不友善的消息,諸如 SDK 更新太快、手機規格太多等越演越烈,先向開發商示好,以平息眾怒,反正一隻 Nexus One 的硬體成本才 $175,加上給 HTC 代工賺一點,整隻應該沒多少錢,利用送手機討好開發商,這還真是深得我心。

對照 Apple 最近告 HTC 的動作,兩相比較之下更讓人想站在弱勢的 Google 這方,不過說穿了這都是商業行為,哪天 Android 賣得比 iPhone 好,搞不好 Apple 連 iPad 都拿出來送了。

最後,我想說的是,其實我比較想要 Milestone,因為我有一隻 Nexus One 了,應該很多開發商也跟我一樣弄到 Nexus One,為啥台灣不也兩隻挑一隻送呢。

2010年3月3日

念經初體驗 跟媽祖對話初體驗

2010-02-23 15.27.29.jpg

第一次念經,第一次跟著作法會,第一次跟媽祖對話,一切的一切都來自於某天晚上的擲杯。

拜拜 SOP 一開始一定是把水果放到桌上,開始燒香拜拜,拜完要稍等一陣子讓神明品嚐信眾帶去的貢品,差不多時間再把金紙拿去燒掉,收收貢品結束拜拜之旅。

過年前只是很單純的跟著老爸到姑姑長期服務的宮裡拜拜,也遵照著拜拜 SOP 進行著,但在等待神明品嚐貢品中,老爸突然說要擲杯。擲什麼杯?原來是宮中有個活動,為了慶祝農曆正月初九玉皇大帝的生日,從初九開始到十五共七天,要辦祈安禮斗法會,我不確定是不是每個宮在這時間點都會有此祈求平安的活動,但此活動應該是很常見,去 Google 搜尋也搜尋得到。

2010-02-23 08.25.31.jpg那跟擲杯有什麼關係呢?當時我只知道桌上有一張紙,上面密密麻麻寫了六十位神明的名稱,還有正副之分,最大的就是玉皇大帝正斗、玉皇大帝副斗,另外比較常聽到的是五路財神正斗、聖母娘娘正斗福德正神正斗等,官方說法就是XXXX正斗、XXXX副斗。擲杯的目的是請問媽祖(宮裡供奉媽祖)是否可以讓某人當上某某斗主。只要媽祖同意,就可以把名字寫在某個斗下面,代表你今年當上某個斗主。

因為家裡是做生意的,老爸一開始就想要當五路財神斗主,祈求生意興隆,擲杯當然是要連續擲到三個聖杯才算數,可是老爸擲不到連續三個聖杯,表示媽祖不同意,那只好換其他斗來擲擲看,但奇怪的是從頭擲到尾,扣掉已經有名字的斗位,少說也還剩下十幾個,每個都擲不到連續三個聖杯。

當時已經是晚餐時間,我們只好自我安慰媽祖去吃飯了,現在宮中沒神明在才會擲無杯,我們只好也先去吃飯。

吃完飯後回來重新開始,從頭開始擲起,連續擲了十幾個斗位就是擲不到連續三個聖杯。擲了那麼久周圍也圍了一些民眾,看到這麼多人圍觀這時心中開始有點小慌,在這麼多人面前都擲不到杯,媽祖的意思是我們今年運勢不好嗎?

2010-02-28 10.26.41.jpg

這時姑姑突然冒出一句,不然就換我代替我爸來擲擲看。擲了兩輪都擲不到杯,這也算是沒辦法中的辦法,換我後從頭擲起,一樣是連續三個聖杯才算數。第一個擲的是玉皇大帝正斗,第一杯聖杯,旁人開始鼓譟,第二杯一樣是聖杯,圍觀民眾開始鼓掌,緊張的第三杯,我的手不知覺的抖了起來,我告訴自己不過是擲杯幹麼緊張呢,全場突然安靜下來,我感覺得到有十幾隻眼睛在看著我手上的杯。擲出,過了三秒,在我還沒回過神來的時候,圍觀人群已經開始跟我以及我爸說恭喜,沒錯,聖杯,我當上了今年的斗主。

這一瞬間有種不知所措的感覺,我只知道我擲到大家都想擲的斗位,但誰知道緊接而來的是一些辛苦的課程。

2010-02-23 15.27.17.jpg

所謂的課程,是在農曆正月初九到十五這七天法會期間,斗主,也就是在下我,要跟著宮中的師姐誦經,只有我一人,當作所有斗主的代表,不過為了體諒有些人可能時間上不允許,是可以請家人代打的。

2010-02-23 15.28.47.jpg這七天中,每天早上八點半開始誦經兩個小時,十一點開始第二場誦經一小時,下午兩點到三點初是第三場,快四點時到五點半是整天的結束,一天四場,這就跟上課沒兩樣。上課的過程中要跟著師姐把經書唸過一遍,有時跪著念、有時站著念,有時站著唸一唸又突然要跪下、站起,重複個十來次。

我家人中就屬我最閒,所以這七天中完全沒人可以代打,一人撐到底,裡面的師姐都說我很厲害、歷來最誠心之類的,因為幾乎沒有斗主可以一人撐到底。但對我來說這其實沒啥,比起環島這真的是小 Case,我反而比較佩服那些當了阿嬤的師姐,跪上七天也不嫌累,佩服!

整個法會的高潮就是開始跟結束時,媽祖會降駕主持法會,沒看過的可能會很好奇,但我小時候就有接觸過,所以覺得還好,只是很久沒看到神明降駕還是會有點興奮感。

有人相信有神明、有人覺得這是妖言惑眾。對我來說我選擇相信,但我不迷信,我相信連續三個聖杯 1/8 的機率應該是某種含意,但我不依賴這 1/8 的機率認為偷懶就有收穫。

就好像打 RPG 一樣,我認為當上斗主可以替我們家帶來運氣值 UP UP,但卻不表示我的 HP、Mana 值會瞬間暴衝。砍怪時仰賴的是 HP、是 Mana,這是基本元素,忠實地反應出每個人努力的成果。但運氣值高可以讓我有更多的機會暴衝,同樣一刀讓怪物失更多血,省點力過關,或是打怪後可以有較高的機會獲得更好的寶物,不無小補。但不管怎麼說,終究是運氣、終究是機率,即使有 99% 的機率也表示了有 1% 的不可能性。還是好好的提昇自己的 HP、Mana 比較重要,運氣值可以提昇就提昇,不行也無彷。

所以我相信有神明、相信媽祖降駕,尤其是法會結束後,我姑丈帶著我跟我爸去跟媽祖講話(當然媽祖是降駕在乩童身上),媽祖跟我之間面對面,不超過 30 公分。姑丈問了關於我的事業、愛情方面。媽祖都對答如流,彷彿知道我現在在幹麼,這讓我更深信不疑,這世上的確有神明的存在。

2010-02-23 15.26.24.jpg

就在小腿有點酸的情況下,結束了七天的法會。扣除上面這些比較無法用科學證實的事外,在這七天的誦經中,難得有機會安安靜靜的跟自己對話了七天,有時候有些事情需要靜下心來花時間去想,偏偏平常除了睡覺前外,幾乎都是在跟外界互動中生活著,這也算是個上天給的機會。

媽祖阿,原諒我誦經時嘴巴念著經書,但心中在想著程式要怎麼寫吧!你說我是個上進的小孩,我有上進阿!

Related Posts Plugin for WordPress, Blogger...