2012年12月2日 星期日

快打旋風


最近又重新迷上了快打旋風

我國中時開始真正迷上這個電動,那個時候是快打旋風二代,記得國三時的暑期輔導,每天都會先到教室集合點個名,點完名後就把自己的桌椅拿去藏好,再從學校垃圾場裡的一個投垃圾的小洞爬出學校,前往電動間開戰

有一次爬到一半學校警衛狂衝過來,我正要開始爬,當下真的很緊張,想說我如果開始爬會不會被他衝上來抓到,後來我假裝自己是路人,就說我下課閒晃到這附近看見幾個人在爬牆,結果還被抓到訓導處審問了老半天,組長先是威脅一陣,後來又叫我邊半蹲邊想那些人是誰

不過我打死不認,一直說那幾個爬牆的我就是不認識,再蹲也想不出來,結果後來組長也沒辦法只好放了我,現在想想這事蠻好笑的

那時真的很迷電動,還有一次玩完回家,到晚上寫功課時才發現拿錯書包,很慌張地坐車回去找書包,小時候課本不見之類的小事都覺得很緊張,長大後覺得根本沒有什麼,小時候老師們都會很嚇唬小孩,都說被記過以後會找不到工作之類的

那個時候很窮,一道五元覺得超貴的,所以只跟電腦打,然後死了也絕不接關,都要把接關讀秒按掉再從第一關開始玩,這樣一個五元可以玩比較久

一直到高一還是常常在打快打旋風,不過好像到高二還是高三的時候就不流行了,到高三的時候我去電動間都是玩侍魂,後來阿扁就開始抓電玩了,我還有次打電動遇到警察臨檢,人生第一次坐上警車,被帶去警察局讓我爸領回,後來電動間就全部都關光光了,想想阿扁做這事真是有夠智障

我上班的地方有個區域放了很多電動,其中一台最熱門的就是這台快打旋風四代



我在公司有三個台灣好友,四個人有點像South Park裡那四個死小孩,每天在公司混在一起,互相幹譙跟聊八卦

三人裡面除了一位沒有童年的數學銀牌同事,其他兩位加上我都有深厚的快打基礎,一開始是跟這幾個台灣同事隨便打個幾場,後來漸漸開始跟他們以外的其他同事打,發現公司裡竟然有許多強者,我本來自以為自己快打旋風很強,沒想到自己竟是井底蛙,隨便就被其他同事幹爆了

後來發現了公司裡竟有一個聯盟,有個人寫了個網頁排賽程、計算戰績,就像網球一樣還有積分排名,真是太認真了!,而且這幫人下班後還會一群人帶著人手一支的搖桿,到會議室裡面研究招式

我跟另外幾個台客後來就加入這聯盟一起比賽,每天都要跟另一名選手打三局,然後每週有季後賽,贏的人就是該週冠軍,小弟我非常弱,但是上週有好好練習,有打進季後賽,但是遇到強者還是馬上被打爆了

快打裡面我最喜歡的角色是怪獸跟印度人,從國中起我就用這兩個人玩,以前大家都是用龍、肯或是阿力固,我就是偏偏喜歡用大家不用的冷門醜怪人,現在四代多了很多新人,也有很多新的玩法,我的招式都是從二代出來的,所以一開始都輸很慘,後來有漸漸學會四代的一些招,不過像focus還是cancel什麼的,腦子裡雖然知道有這些,但真正打的時候就想不到要用,只會用一些老派的二代打法

快打旋風真的是一個很棒的遊戲,從國中到現在,算算已經二十年了,春麗的生日是設定在1968年,都已經從當年的少女變成44歲的歐巴桑了,真是令人感慨,不過快打還是像當年我國中時玩的一樣,還是好好玩


2012年11月25日 星期日

上班以來做過的事


畢業開始工作,一轉眼就三年半了,上班以後、生了小孩之後,很多事情都改變了,我也很少在這邊寫文章,寫上一篇已經是一年半前的事了

最近我覺得我應該再回來寫些網誌

就先來回顧一下我畢業之後在Facebook做的事情,我的職稱是Software Engineer,就是一個普通的軟體打雜工人,這種工作在矽谷非常平凡,路上隨便一堆都是靠這種技能討生活的人

因為我不是Computer Science背景,之前沒有太多軟體的經驗,剛加入Facebook的初期對我而言是個辛苦的過程,不過很有趣,我一下學會了很多事情,在Facebook的新訓中心出來之後,我加入了Data Infrastructure組

這一組負責的是後端資料的儲存和計算,儲存和計算的數量相當龐大,儲存上可以到100PB (1PB = 1000TB)以上,計算上,一個計算可以到幾百個TB的輸入輸出資料,因為這樣龐大的數量,所以這不是件簡單的事情,要從幾百個硬碟裡讀資料出來,在幾百台電腦上計算後,再寫到幾百個硬碟裡,不但要夠快,還要安排不同計算工作同時進行

在這個組我除了打了很多小雜工之外,做了三件比較大一點的事

第一件事,收集每台電腦上的資源使用狀態,然後用這個資訊來改進排程器的效率,(排程器就是一台負責安排其他上千台電腦要做什麼事的老大電腦),排程器知道那些電腦有比較多資源,就可以把計算排給他們,知道那些電腦已經忙到爆炸,就不要送計算給他們,而且收集了每個計算的實際實用資源,這樣可以對資源做有效的管理,防止人為浪費,實際工作包含寫一個在每台電腦上監控資源的程式,還有改變排程器的演算法去使用這些資訊,這件事是我剛到這個組的第一件工作,我覺得很不錯,因為做這件事讓我對Linux和系統資源,(CPU, memory, IO)等等有了一些了解

第二件事,利用錯誤更正碼來改進儲存的效率,之前有說到這些資料可以到上百個PB (1PB = 1000TB = 1000,000GB),保存這些資料一年花的錢是非常驚人的,如果能減少儲存,就能省下可觀的錢,一般儲存的方式是把一個資料塊(256MB)複製三個複本,再把三個複本放在三台不同機器上

為什麼要這樣做呢?,假設你的硬碟平均用三年壞掉一個,你如果有一萬個硬碟,一天大概就會有十個壞掉,所以一定要有複本,而且要能在電腦壞掉時馬上復原複本的數量,不然一定會損失資料

我們做的改進就是不使用三個複本,我們存一個複本再加上一些錯誤更正碼,因為我以前是學通訊的,所以我對錯誤更正碼有一定的了解,其他同事對這方面可以說是完全不懂,我開發了在這上面用的Reed-Solomon Code(某種錯誤更正碼),還有一些監控和修復的邏輯,這個改進不但讓空間變小,容錯的能力也變更強,這讓公司省下了很多錢,這邊有一篇文章介紹這個技術,作者是我很尊敬的強者同事
https://www.facebook.com/note.php?note_id=468211193919

第三件事,開發新的工作管理和排程架構,本來整個工作管理和資源分配是在同一台電腦上做的,這台電腦沒辦法管這麼多事,常常爆炸重開,這一重開的結果就是浪費好幾千台電腦好幾個小時的CPU時間,我們的改進就是把工作管理分散到好幾台電腦上,只有一台電腦只管資源分配,這邊有篇文章介紹這個
https://www.facebook.com/notes/facebook-engineering/under-the-hood-scheduling-mapreduce-jobs-more-efficiently-with-corona/10151142560538920
我和另外兩位同事開始了這個計畫,我寫了整個排程器和一些接收工作的邏輯,做這個計畫十分有趣,因為能從頭開始寫了很多新的程式,和其他兩位同事討論和設計這個分散式系統,讓我學到了很多分散系統架構上面的知識,這套系統後來申請了專利,我也是四個發明人之一

去年九月時我離開Data Infrastructure加入了Database Engineer,在那邊做的也是資料,不過不是後端的資料,而是直接給Facebook使用者即時讀寫的資料,在這一組我參加了一個初期的計畫,我不確定能不能說在這個組做的事情,所以就不說了,以前在Data Infrastructure做的事情,因為Open Source,所以我才確定我能說我做了什麼

在Database Engineer組我讀了一些MySQL和HBase內部的程式碼,讓我學到很多資料庫內部的知識像B-tree、LSM-tree等等,還有對Facebook用大規模MySQL+Memcache,建成的後端有了一些了解

今年六月底,我離開Database Engineer,加入Search Ranking,這一組做的是搜尋結果的最佳化,在這一組做的事情,大部分都是不可說的,不過我最近做了一件事,這事是可以說的,我對Facebook的中日韓搜尋做了一些改進,之前你找中文人名,大部分的結果都是讀音接近的名字,但不是你搜尋的名字,我最近把這個問題修好了,各位最近有沒有發現中文搜尋變好了呢?

我覺得自己很幸運畢業後轉了行,而且能到Facebook工作,除了經濟上面有好的回報,工作本身也非常有趣,一下子你的寫的程式就能被上億人用到,是很有成就感的事情,公司對員工也非常照顧,有免費三餐、洗衣服、健身房等等小福利,讓生活變得很方便

在這邊順便幫公司廣告一下
https://www.facebook.com/careers/


2011年3月4日 星期五

宅男健身教室


我常常檢查本站的流量,發現本站最多人觀看的文章,是這個系列的兩篇:六塊腹肌怎麼練,我想一部分原因大概是因為本人為了讀者不惜犧牲色相,所得來的流量(其實也沒多少人看)

總之我想大家似乎對健身有興趣,本人雖然說不上是專家,但是力量、耐力和柔軟度應該遠在平均之上,因為我每天早上都會花一小時運動,這就是勤能補拙,我對於鍛練身體的方法算是小有研究

我每天早上都會照表操課,現在的課表是,一週長跑四天(一、三、四、六),重量訓練二天(二、五)、瑜珈一天(日),我每隔幾月就會重新計畫一次課表,我的訓練以這三種為主,有時長跑多些、有時重量多一些,因為長跑和重量基本上是兩門相剋的武功,所以我沒法跑很快(身體太重),肌肉也不夠大(長跑燒肌肉),但是我的目標是身體的平衡、健康、年輕,不是在比那些數字

我做這些運動的原則就是:簡單、方便、有效,準備工作要最少,要馬上就能開始做,要我花半小時開車來回健身房是絕不可能的,我跑步都是一開家門往外就開始跑,重量訓練和瑜珈都是在客廳邊看電視邊做的,我覺得只有維持它的簡單,才能夠持續,一件事一旦麻煩又花時間,就很難持久

今天我就要來分享一個重量訓練的具體方法給各位阿宅,這個運動是我目前每個星期二的課表,這個訓練非常非常簡單,只要一句話就說完了

每隔五分鐘,做30下伏地挺身、拉10下單槓,重複十次

就這樣,共計300下伏地挺身、100下單槓,總共花五十分鐘,很簡單吧,我通常還會順便用netflix看個影集,這兩種運動幾乎可以練到上半身所有的肌肉,而且所需的裝備非常的少,只要有一個單槓和一個計時錶就可以

我要先強調單槓非常非常重要,一定要有,必備!,用自身的體重做重量訓練,一定要用到單槓,不然沒辦法練到背的肌肉,背的肌肉非常重要,背闊肌是上半身最大的肌肉,比胸肌還大,這是一定要練的,練上半身肌肉沒練到背,就好像吃西餐沒吃主菜的牛排一樣,很多人覺得單槓好像很麻煩,但只要去買這種裝在門上的單槓就可以了,我查了在台灣的奇摩拍賣就有在賣,關於單槓的另一個問題就是,很多人可能連一下都拉不上去,你可以準備一張椅子,腳踏上去用一些力輔助來拉,慢慢地你會發現你不再需要這椅子了

至於伏地挺身,有當過兵的應該都不陌生,但是我從以前當排長就看過很多人伏地挺身亂做一通的,身體根本不直,下去的時候也不夠低,我連上帶體能常常做到一百下以上,但是大部分人根本就亂做,不但醜,而且又沒有效果,浪費時間,做伏地挺身的要訣就是,眼睛看前面、身體打直、還有心要誠實,不要騙自己說自己可以做五十下、一百下,然後亂做,先講求動作標準,再求多,一下都做不了的人,可以先用膝蓋著地做

另一個重點就是你要有一個可以每五分鐘就響一次的錶,可以去買這種計時器,我自己是用跑步用的錶,只要任何有interval功能的錶都可以,設定成每五分鐘就叫一次,每次這錶一叫,你就做30下伏地挺身、10下單槓,然後休息

至於要做幾下,你可以依自己程度調整,例如每輪10下伏地挺身、3下單槓,重點就是你每一輪做完時都要覺得自己快死了,一下也做不了了,那才夠,沒有的話就只是浪費時間,你想想時間都花了,就要操個夠本才行,不要客氣

希望各位阿宅都能擁有強健的體魄

--------------
宅男的星期二課表
器材:單槓、計時器
運動:計時每五分鐘,做30下伏地挺身、10下單槓
重複十次
--------------





2011年3月2日 星期三

Facebook Comments Plugin

Facebook有一個comments plugin
它是一個可以讓你放在自己的網頁上面的元件
功能是讓人以Facebook帳號在你網頁上留言
(見本文最底)

這個的好處是
一、方便:留言者不需登入就可留言
二、打廣告:留言者的朋友可能會來看或留言,一傳十十傳百
三、防止小白留言:Facebook有真實身份和朋友,比較不會亂搞

我在這邊以Blogger為例
教學一下怎麼放Facebook comments

步驟一:到Facebook生成html碼,點下面這個連結
貼好資料,按下Get code就行了,把這框框裡的code貼在記事本裡


步驟二:按Blogger右上角的Design
在設定的畫面中,選Design->Edit HTML

步驟三:插入Code,這一步有點小麻煩
1. 選取Expand Widget Templates
2. 找到這一行文字:div class='post-body entry-content'
3. 把剛剛存在記事本的Code貼在這一個標籤之後,如下圖
4. 把href="你的網站" 這一段文字去掉,取代成 expr:herf='data:post.url'
(如果略過4.每一篇post都會共用同一個留言版)

這樣就大功告成

天啊,寫這教學真累,比上班還累,累死我了

Update: 剛剛有留言的朋友,因為我還正在摸索中
之前設定錯誤,所以url有點問題,不能正確導回文章
經過修正後,這個問題解決了,現在都正常了
但是之前的留言卻沒法顯示了,非常抱歉

Update: 關於這個功能的Video介紹

Update:這邊有關於各種social plugin的介紹

2011年2月6日 星期日

規律作息的方法


跟生理時鐘作戰已經好長一段時間了,自從高中畢業,沒人強迫我過正常的作息,我的生理時鐘就亂得一榻糊塗

我知道規律作息有很多好處,讓我有精神,身體健康,但是心理上很難達成,這原因很簡單,晚上的時光太爽了,上網或看電視,捨不得睡,早上的時光太苦了,我早上第一件事就是出門去外面跑步,冬天的時候外面冷死了,常常低於40F(約5C),這樣一個爽、一個苦,爽的時候不想停,苦的時候想拖延,慢慢就會讓時間往後移,越來越晚睡、越來越晚起、越來越晚上班、越來越晚回家

我用意志力和這個自然趨勢作戰已經很久,作息時好時壞,尤其每到週五晚上,很難讓自己早睡

我最近發現一個關鍵的方法,用這個方法已經連續幾週讓我在目標時間內起床,(我的生活作息都記錄在一個小白板上),這個方法就是使用下面兩個工具

工具一: 電源定時器
工具二: 暖氣機

設定電源讓暖氣在起床前一個小時打開,起床前房間變得很熱,很自然就會醒,而且身體慢慢習慣這個訊號,認為溫度改變時就要醒,就這樣,兩個加起來30塊錢的東西,就解決了這一輩子的難題

另外我還有三個作息相關的方法:

第一個就是我用暖氣起床之後,就馬上去用冷水洗臉,冷水洗臉恢復精神力之後,就有辦法克服出門跑步的意志力關卡,不然我會花很長時間拖延,沒法出門

第二個就是我十一點之後不用電視和電腦,改看書,尤其是看有點難看的技術書,這樣可以降低睡前的爽度,讓人想去睡,(但這一點常常沒做到)

第三個就是我有一個小白板登記最近兩週的作息時間,這小白板也用來記錄體能訓練,寫一些最近要辦的瑣事,還有想要做到的目標

我覺得做什麼事情都要有方法,方法對了,很多事情就沒有那麼難

2011年2月4日 星期五

投資股票的心得


一輩子都沒什麼錢的我,畢業工作後終於開始累積一點錢了,錢也終於多到了應該要花心思去考慮該把錢放在那裡了,所以我開始買股票,花了些時間瞭解了一下相關的知識,Market Cap、P/E、Beta、Income Statement、Revenue、Margin...,基本上就是在google finance上面看到詞一個個去wikipedia查,然後讀懂,我也用跑步的時間聽了幾本有聲書,像Trading for dummies,巴菲特傳記、巴菲特投資法之類的,我絕對不是什麼老師,我知道這些都是非常皮毛的東西,我在此先警告這整篇全都是初學者的野人獻曝而已

我小時候對這類的東西非常反感,覺得這種東西充滿了銅臭味,感覺就是一些不勞而獲的人,用財產重分配的機會,把其他人辛苦生產的東西搶走,我以前有段時間覺得那些靠投資賺錢的人,只是合法的小偷強盜,就像社會的寄生蟲

我後來才瞭解股市交易是幫助社會分配資源的方法,是誰決定世界上的資源要拿去給netflix,而不是blockbuster?,世上有限的資源,要拿來生產什麼,這樣一個困難的決定,就在這一個遊戲裡完成,遊戲玩得好的人有獎品,就是賺錢,玩不好的人就賠錢,儘管充滿各種不公平,有錢人佔盡了資訊的優勢,助長了貧富差距,但是這遊戲對所有的人整體而言的好處太大了,它完成了生產的最佳化:,怎樣才能用有限的資源,讓全體人類最爽

並不是我要加入這個遊戲所以正當化我自己的行為,我在此之前就有這樣的想法

我開始買股票,我主要相信的是巴菲特提倡的價值投資(基本分析),我讀的寫給初學者的書,大都是推薦類似的方法,大意就是找個真的有價值的好公司,然後找個便宜的時候買,(所謂價值就是公司本身能不能賺錢,有沒有生產力),然後除非公司變不好,失去賺錢能力,不需要賣掉,儘可能長期投資好的公司,因為價格長期會反映出價值,而且股市長期的期望值是上漲,我喜歡這種說法,因為它的出發點是幫社會解決分配資源的問題,讓物盡其用,這是一件有生產力的事情

除了這一派,還有很多其他類的方法,像是另一種完全相反的叫技術分析,技術分析的說法是公司的價值早就在股價上反映了,所以不用看價值了,這叫做市場效率理論,那技術分析看什麼?看股價變化的線來買賣,它強調的是群眾集體的行為有重複性,可以在裡面套利,我個人覺得這完全是狗屎、偽科學,而且這完全就違背了投資幫社會分配資源的功能,這出發點變成只是賺走其他人的錢,感覺很差

總之股票投資很多亂七八糟的東西,也沒人知道什麼真正有用,很多賺錢的人也不知道自己在幹嘛,可能就是個運氣

我覺得開始投資後,最大的好處就是我開始注意各種產業,因為我在乎我的錢,每天會讀一些產業的消息,開始知道那一種產業的市場大概多大,還有什麼公司用什麼方法賺錢,什麼東西成長最快、什麼產業快死掉了,什麼產業毛利只有一點點、什麼產業有獨佔性,我每天藉由讀得這一堆數字和線條,對這個世界有了更整體、全面的瞭解,不再只是看到我接觸的一點點的世界,對很多事情瞭解得更多

我常想,如果我是學生的時候就開始做這件事,或許會很不錯,我就不會是象牙塔裡不知世事的博士生

分享一下我的portfolio,我只買這三支股票Amazon、Netflix、Berkshire Hathaway,基本上就是看它們跌的時候,覺得有便宜,就買,Amazon和Netflix,是因為我是他們的忠實用戶,我知道他們有很好的產品,我對這兩家公司很有好感,投資Berkshire Hathaway是因為我覺得巴菲特實在太厲害了,讓人覺得很可靠,把錢給他管讓人安心


2011年1月31日 星期一

陳光標到台灣發錢


陳光標來台灣發錢,我覺得很棒,幫他拍拍手,有錢人懂的分享,真的是很棒的 一件事情,世界上的資源分配非常不均,有人爽到我們無法想像,也有人窮到我們無法想像,其實有能力上網看到這文章的人,在世界上都屬於有錢人了,大家應該要學陳光標多多分享自己的幸福


陳光標也引起了很多爭議,我想主要的批評在於
一、高調
二、沒效率
三、為何是台灣


第一個就是說他捐錢很高調,我們的文化裡有所謂為善不欲人知的觀念,老實說我不懂這有什麼好處,為善讓人知道不是很好嗎?,而且最好為善之後到處跟大家說,讓大家都一起幫助弱者,不是很好,如果是質疑他的動機,認為他是為了名,那又怎樣,有誰做事不是為了自己的好名聲,至少為了名,他也做了件好事

就第二點效率而言,我覺得他可以再改進,像他這樣讓人跪,然後發錢,真是太沒效率,而且有能力知道他在那裡出現,然後能跑去跪他的,根本不是真正的弱勢,那些撿破爛、睡路邊的真正的窮人,根本沒能力看新聞,更不用說知道他何時何地出現了

前陣子剛好在公司聽到首富Bill Gates的演講,Bill Gates才是捐錢王,而且他知道自己在做什麼,知道如何把錢的效用最大化,例如他說他花錢研發瘧疾的疫苗,疫苗在過去幾年來救了上千萬人的命,這疫苗一出來救的是百萬、千萬的性命,另外得完瘧疾的人不死也變白痴,對地方的經濟成負擔,也造成很多人的痛苦,所以他砸重金研發疫苗,要除去這世上最痛苦的事,他真是一個很強的人,講話非常中肯又有趣,充滿了智慧,像這樣能改變世界的人,真是了不起

至於第三點,說他為什麼來台灣捐錢,我覺得到處都有窮人,人家高興來台灣捐給台灣的窮人有什麼不好,用不著給他一頂統戰的帽子戴,什麼都要搞成政治陰謀跟地域的岐視真是無聊死了

簡單的東西有效,但很難商業化

昨天去參加活動,有人跟我說以前一直看我文章,但後來就停更了,其實沒有停更,我只是都換去 FB 分享了,因為 FB 才是流量所在,加上 FB 算法對外部連結的排序不太友善,所以我都沒在這邊寫了,想繼續 follow 我的人可以去下面兩個地方找我: fb.com/p...