2013/02/24

Technical Party

在家辦過了火鍋趴、調酒趴,這次來點不一樣的 - Technical party
這個 party 以輕鬆為主,不限定於任何形式,重點是要一群人聚在一起開心啦!
辦 party 當然是離不開酒,想到電影 The Facebook,馬克在徵選人才時辦的比賽,一邊喝酒一邊寫程式就是過癮阿!



想了一些遊戲來助興,在快樂中也能學習呀~

Session 1

Smarterer 網站找自己拿手的主題,然後線上測試,rank 必需要在一定標準之前,否則就喝一杯酒。
Run1: 前 50%
Run2: 前 40%
第一輪失敗的人,必需要再玩一次,第二次還是失敗呢就再喝一杯。
Run3: 前 20%
這是個挑戰題,當參賽者有把握自己可以拿到前20%時,可以參加挑戰,一旦達到目標,其餘所有人都要喝一杯。

Session 2

我準備了常見的面試題目,輪流抽籤,以口述的方式或是在白板回答問題。一題10分鐘,台下每個人都是面試官,可以提問或是發表評論,時間到了由討論的方式決定台上的人是否通過考驗,若不通過就得喝酒。

Session 3

Lightning Talk 分享任何技術、工具、心得都可,自行準備 power point,或直接在白板上比劃。


哈~是不是很有趣!




放一些花絮照片



Lightning Talk 的部份,自己是發表了一些淺見啦 :P
  • RD的與眾不同
    • 獨立製作產品的能力
    • 自行決定生產工具/生產環境
    • 具有改變世界的原創力
  • 現階段可以做的事情
    • 善用 Evernote 讓生活更簡單
    • 寫 Blog - 用心過的東西就有價值
    • 寫 GitHub - Code reuse
  • 打造自己的品牌: Promote yourself
    • 維護 Facebook、Google+、Blog...
    • 參與社群: 技術的、創業的...
  • Open your mind: 學習->分享


每次辦 party 都可以讓賓客流露滿意的表情,真是開心呀:D

2013/02/22

快速架設 DNS - dnsmasq

在 debug 時偶爾會有一種需求,就是要假造 DNS resolve 的結果,讓一些設備能夠暫時導向我指定的 ip 去,而 bind 這一套的設定對我來說太過複雜了 ><
於是同事推薦了我這個:Dnsmasq
Dnsmasq is a lightweight, easy to configure DNS forwarder and DHCP server.
酷!一次滿足兩個願望


安裝
$ yum install dnsmasq

設定上層 DNS server
$ vim /etc/dnsmasq.resolv.conf
nameserver 8.8.8.8

自定 dns record
$ vim /etc/hosts
10.0.0.1  anything.com.tw

啟動 dnsmasq
$ /etc/init.d/dnsmasq start

搞定啦!

更多設定在 /etc/dnsmasq.conf

Google map API 經緯度與地址間的轉換

玩了一下 Google map 兩個有趣的 API

Google Geocoding API (地理編碼)

用於"經緯度"與"地址"間的轉換。例如輸入 25.047908,121.517315 可以得到台北車站的地址 100台灣台北市中正區北平西路3號
http://maps.googleapis.com/maps/api/geocode/json?latlng=25.047908,121.517315&sensor=false&language=zh-tw
反之亦可
http://maps.googleapis.com/maps/api/geocode/json?address=100台灣台北市中正區北平西路3號&sensor=false&language=zh-tw
Return 回來的格式可選 json 或 xml,經過 parse 後使用者可以根據自己需要的層級去截取,例如想要拿到城市的名字可以從 administrative_area_level_2 下手。


Google Directions API (導航)

用於"路線規劃",輸入起始點與終點,google 會幫你計算兩點間的距離,並列出該怎麼走。
台北車站 -> 台北101
http://maps.googleapis.com/maps/api/directions/json?origin=台北車站&destination=台北101&sensor=false&language=zh-tw


  • 如果想拿到中文的解析,可以在 URL 加上 "&language=zh-tw" 或是在 header 加上 "Accept-Language: zh-TW"
  • Google 有聲明這些 API 不是用來做即時服務的,比較適合查詢一次後 cache 起來,查詢的次數也有限制一天 2500 次

2013/02/20

Hash or Encrypt?

這天在公司思考一個問題...

假設每台機器都有編號,而且是以流水號的方式編排 0001, 0002, 0003 ...
要為每台機器預留一個 publish URL 像是 http://anything.com/0001/data,但又不想輕易讓其他人知道規則,例如 user 0001 可以用 http://anything.com/0002/data 拿到別人的 data。


方法一:Hash

第一想到的是把 id 經 MD5 hash,但 hash 就是有機會 collision,雖然這個機率比被雷打到還低很多,但機率這種東西就是有可能發生嘛!於是我就把所有的編號都拿去做 MD5,最後證明了沒有 collision 的問題。
MD5("0001") = 25bbdcd06c32d477f7fa1c3e4a91b032
http://anything.com/25bbdcd06c32d477f7fa1c3e4a91b032/data
是不是找不出其規則了

但又產生了另一個問題,短字串的 hash 結果很容易被彩虹表 (Rainbow table) 破解,意指先把所有 hash 結果計算出來,利用查表的方式反推原始字串,所以會有加 salt 的概念,也就是把原始字串先"處理"一下再去 hash,可能是額外加一些字串,或是反轉之類的,長度增加了可以降低被反推的機會,即使被反推回來也很難獲得原始字串。
SALT("0001") = 0a0b0c1d
MD5("0a0b0c1d") = b906c4ea093173e4c673ab6540696f0c
http://anything.com/b906c4ea093173e4c673ab6540696f0c/data
這樣子有比較複雜了吧!
salt 的方式有很多種,例如 MD5 兩次,或用其他 hash function,但要記得不能有兩個字串經過 salt 的結果是一樣的。


方法二:Encrypt

由於原始字串經過很大的變化,所以我也沒辦法驗證 collision 發生的可能性,後來決定還是改用加密法,加密法是 1 對 1 函數,沒有 collision 的問題。
DES(key: "god", plaintext: "0001") = d4f96d5da8bd0e6e
http://anything.com/d4f96d5da8bd0e6e/data

過程中比較棘手的是加密法的 變數實在太多,以 DES 來說,我用 openssl crypto library 時,要輸入 mode (cbc, ebc, cfb...)、input 又有分 64bit/128bit、是否加 padding,當想用 其他方式(pyDesOnline encrypt tool)來驗證時,竟然湊不出一樣的 ><


後記:

其實我需要的應該是一種只有自己知道的 encode/decode 方式,而且必須要是 id 加減1時,編碼結果就會變動很大,避免有心人士反推。用 encryption 是有點大材小用,但至少是 well known 的,所以各種語言都很容易找到 library,不需要自己 implement。


順便復習一下
  • Encode/Decode
    資料傳遞時的一種表達方式
    base64 encode, url encode ...
  • Encrypt/Decrypt
    以密文的方式傳遞資料,只有知道 key 的人可以解開得到明文,又分成對稱加密與非對稱加密
    AES, DES, Blowfish ...
  • Hash
    驗證資料完整性
    MD5, SHA1, CRC32

2013/02/14

台中輕鬆一日遊

過年期間同事來台中找我玩,身為台中人其實大學以後待在故鄉的時間就很少了,這次也花了不少時間做功課,安排的行程如下:
Day1:
大坑紙箱王
新社古堡拍照 (裡面東西好貴最好自己帶中餐)
輕井澤吃晚餐
望高寮喝酒看夜景 (記得注意安全不要待太晚)
Day2:
科博館看展覽
沿經國綠園道至勤美術館 (勤美術館下午兩點才開)
希臘秘密旅行吃中餐
東海校園 (路思義教堂)
東海夜市吃晚餐買名產
秋紅谷走走 (見識一下台中豪宅區)

感覺上是蠻愜意的行程,但不知道為何走到第二天就沒力了 ><




另外也整理了一些資料供大家參考,以下依推薦順序排列:

想逛街
  1. 逢甲商圈
  2. 一中街
  3. 新光三越大遠百
  4. 東海夜市
  5. 精明一街

知性旅遊
  1. 勤美術館 - 有一些戶外的裝置藝術,非常適合拍照,男女生來約會一定很有趣
  2. 美術館綠園道 - 除了可以看展覽外,綠園道上的餐廳更是台中一大特色
  3. 台中文化創意園區 - 舊的啤酒廠改建,還沒去過,不過應該就像台北的華山藝文特區吧
  4. 20號倉庫 - 位於後火車站出口,喜歡鐵道藝術的不可錯過
  5. 彩虹眷村 - 老眷村塗鴉
  6. 忠信市場 - 位於美術館附近,由老市場改造而成的藝術展場
  7. 刑務所演武場(道禾六藝文化館)
  8. 台中圖書館 - 就是新聞上有報,由台灣設計師耗資20億打造,外觀像艘軍艦
  9. 湖水岸藝術街 - 豐富公園旁,夜晚來這邊吹吹風,喝茶聊天是不錯選擇

夜景
  1. 望高寮 - 首推這邊啦,位於大度山上可以鳥瞰台中市,也是約會聖地
  2. 清水休息站 - 也是堪稱一絕,另外傍晚往台中港方向也可看夕陽
  3. 秋紅谷 - 夜晚可以來這拍攝城市高樓
  4. 靜宜後山 - 月下老人
  5. 都會公園


餐廳 (不勝枚舉,大部份還是朋友推薦)
  1. 公益路一級戰區 - 鼎王、無老鍋、輕井澤、Kiki、北沢
  2. 美術綠園道 - 核果、小義大利、安徒生童話、南瓜屋
  3. 中港路 - 希臘秘密旅行


台中好地方!

2013/02/01

第一次調酒就上手

興致一來,做什麼都特別起勁,想到住在這麼棒的地方,在家調個酒一定很有格調!

前後大概準備了半個月,我認識調酒是從『癮型人的調酒世界』開始,想必研究過調酒的人都不陌生,還沒碰過調酒的,到 google 搜尋一下也會進到這個網站。


從 6 大基酒開始買起
  • Vodka 伏特加
  • Gin 琴酒
  • Tequila 龍舌蘭
  • Rum 蘭姆酒
  • Whisky 威士忌
  • Bandy 白蘭地
外加兩款
  • Cointreau 橙皮酒
  • Absinth  苦艾酒
癮型人網站上介紹的都是在大賣場很容易買到的酒,建議多比價,因為價差真的很多!!!

調酒器具
  • 量酒器、斟酒器、shake杯、吧叉、隔冰器
  • 攪拌棒、製冰盒、冰桶、夾子、搗棒、吸管
  • 水果刀、砧板、布

杯具
  • 可林杯、曲線果汁杯、馬丁尼杯、高球杯、威士忌杯、
  • 香檳杯、紅酒杯、shot杯、公杯

癮型人在露天跟Y拍有賣場 (米絲阿樂局),一部分的東西我在那邊買的,一部分就從家裡挖出來呀~
杯子推薦去IKEA、宜得利家居買,而且不貴
益泰玻璃 Ocean Glass 這邊可以看看杯子有哪些種類

附屬品
  • 檸檬、柳橙、葡萄柚、薄荷葉、蕃茄
  • 可樂、通寧水、蘇打水、薑汁汽水、萊姆汁、紅石榴汁
  • 砂糖、鹽巴
一樣去大賣場買就可以了,通寧水我還跑去百貨公司的超市,被貴假的 ><



準備好東西,就可以開始調酒啦!

酒譜在網路上很好找,這邊就不附了,可以先從 1+1 調酒開始,就是一種基酒加一種附屬品。基本上不會太難啦,反正就調完倒一點試喝,再根據自己喜愛的口味去增減,記得幾個要點:
  • 使用哪種手法:直調法、攪拌法、Shake、果汁機混合
  • 基酒與附屬品的量與順序
  • 冰塊是調完後被濾掉,還是最後在杯子裡


家庭調酒真的很有趣,非常適合款待朋友。
話說這天慶祝我生日,喝了兩杯艾碧斯還沒倒,我自己都驚訝阿!

Party time

2013/01/29

記住現在的自己

在網路上看到下面這篇文章很有感觸
30離我也不遠了 想為自己的人生打個tag
日後再回頭看看那時的自己...

作者: aaawei (aaawei) 看板: CareerPlan
標題: 三十而立
時間: Mon Mar 12 14:34:33 2012



80年代出生的人 這幾年紛紛跨入或兵臨”30歲”這個門檻了

我們出生在安逸穩定的時代 沒有經歷戰亂 物質環境相對優渥

我們不太操心下一餐在哪裡 比較煩惱買不到想要的玩具

童年已經能透過彩色照片留影

小學回家也天天有卡通可以看

國中流行的是張學友的祝福和伍思凱的分享

因為Michael Jordan和灌籃高手 男孩們紛紛湧入籃球場

高中五月天剛出道 大家紛紛拿起吉他傳唱志明和春嬌

921大地震是我們體驗過最大規模的社會動盪

手機和電腦也差不多在此時進入我們的生活

大學聯考不斷被”推甄””學測”等名目取代

但無法改變我們在黑板上倒數著幻想中的解脫之日

然後一年一年 大學錄取率以不可思議的效率突飛猛進

大學生也越來越迷惘自己在這裡做些什麼 想得到什麼

多數人在尚未想清楚之前就畢業了 投入職場或輾轉於其他

有些人便設法留在校園裡頭繼續想

慢慢的 也不再想了

不久之後 電視上出現”大學生了沒”和”超級星光大道”

整個社會開始想 現在的大學生到底是怎麼想

因為大家不知道 這群國家未來的主力球員在想什麼

甚至 有沒有在想



不知不覺中 填問卷就要勾選30歲以上的框框了



30歲的我 被40歲的人羨慕還年輕 而我羨慕他們已舉重若輕

30歲的我 羨慕20歲的人還年輕 而他們羨慕我已經上了軌道

他們的未來還不知道通往哪裡



30歲 你開始發現身邊出現許多”後進”

在公司裡你不再是最小的小妹

在演唱會上你不再是尖叫最大聲的粉絲

在PTT上你發覺總有下一個狀況外的人提出同一個狀況外的問題

你知道你已經從那個”後進”的位置上退下來了

由另一批小你5~10歲的人重複你當年的牢騷 享受你當年的待遇

你甚至有點被背叛的感覺 不敢相信那些位置已不再屬於你

而前面的人已經看見你這個來者 開始要求你接下那討厭的棒子

一副”終於輪到你”的狡猾模樣



30歲 身邊的人開始跟你提到基金/保險/股票

這些以前壓根兒不曾弄懂也毫無興趣的字眼

雖然你可能只想把每個月領到的薪水存在戶頭裡

花多少就剩多少 想多存一點就少花一點 簡簡單單 一目了然

以及開始詢問你關於結婚/成家/生子等計畫

那怕他們從來沒有關心過你的熱戀與失戀

甚至不知道你愛的是男生或女生

卻能煞有其事的以不知從何而來的使命感敦促你



30歲 你開始意識到青春和健康不是那麼理所當然的東西

熬夜不再是這麼熱血又浪漫的事 體力不再是勤能補拙的強項

時光從每個夜晚的予取予求變成需要斤斤計較的奢侈品

你可能經歷過一些傷病 搬重物或跑步的時候偶爾感覺到肌肉不太聽話

忙碌誤餐的時候可能會想起胃食道逆流的廣告或網路上的養生文章

“老了”這個念頭開始成為感嘆的發語詞或結論

明明離急流勇退還十分遙遠 心情上卻已不戰而降



30歲 你可能已經從憧憬某一個行業的外人變成置身其中的人

成為後人的憧憬 或悔悟原來那個憧憬這麼脆弱

你可能開始把腳縮回線內 把尖銳收回刀鞘

你嘗過衝撞體制的滋味 也吃過對抗既定價值的苦頭

你可能心灰意冷 選擇沉默或假意迎合

你厭惡這樣的自己 但又使不上力

社會告訴你這就是成長 但你心裡知道你對不起從前的自己



30歲 開始焦慮自己還一事無成

你看到很多成功的範例 你看到很多理想的價值

他們可能大你沒多少或甚至比你還小

你真心覺得他們很了不起 開始檢討自己為什麼離他們這麼遠

是從哪裡開始出差錯的 是從哪裡開始趨於平淡的

也許你已經有了一個舒適穩定的現狀

儘管羨慕別人 卻也不敢放下手上的 去爭取一個新的



30歲 30歲以前的人際關係都慢慢沉澱

像是終於走的夠遠的水 帶不動的就會被留下來

從小學-國中-高中-大學-當兵-職場

那些萍水相逢的人們 有些能夠保持聯繫

有些永遠定影在當時畢業的樣子

有些會在生命中的某一天突然想起來

猜想他現在在做什麼 而你甚至連他是否還在人世都無從確定

你開始能力所及的回朔自己 連一張通訊錄都能引起回憶



30歲 漸漸明白走過的冤枉路不是毫無收穫

那些看似彼此無關的當下 總在後來的某個時刻神奇的連成一氣

彷彿過去受過的傷 得到的劍 躲過的險

都是為了這個不可預知的時刻準備的

你可能開始相信冥冥之中的天意

相信”絕對”不再這麼”絕對”而 “永遠”也不再那麼”永遠”



30歲 或許是人生的一個分水嶺 或許什麼也不是

畢竟很多人常常會講 “我如果30歲以前沒怎樣 我就怎樣怎樣”

“我如果過了30歲還沒怎樣怎樣 我就怎樣”

30歲可能是寄託夢想的最後一站

因為假想的人生已經過了一半

要折返或是脫隊 都越來越艱難了

艱難不見得是來自自己 多半是來自旁人



對於親情

10歲的人沒有抵抗力 20歲的人抵抗到底

到了30歲 親情開始迴光返照 重新在心中調整順位

或許你已經參加了幾場親人的喪禮

或許你已經升格成為叔叔阿姨

或許你剛剛為人父母或為人女婿

而這一切恐怕在你來不及調適好就先發生了

每年返鄉過節 對那些新生的稱謂不再那麼排斥

對那些出現在兒時照片中懷抱過你的長輩心存更多感激

更驚懼歲月在他們身上留下的白髮/皺紋與病痛

而他們看你的眼神中 除了欣慰成人成家之外

可能也透露出自己走向衰老的感傷



對於政治

10歲的人一無所知 20歲的人隔岸觀火

到了30歲 發覺不能坐視不管

政治是管理眾人的事

10歲的人一無所知 是因為自己都無法管好自己

20歲的人隔岸觀火 是因為終於不再被人管所以也不管別人

30歲的人不能坐視不管 是因為認知到再不出聲叫喊 我們一點機會都沒有

到了30歲 我們終於把眼睛擦亮了一點點 腦袋多裝了一點點

也終於願意把臉轉過來一點點

我們在各自的領域裡打滾之後 發現所有不合理不正義不可忍受的困境

其改革的途徑最終都指向”政治”

就像海洋一樣 到哪裡都相通

我們恍然大悟原來這才是敵人的真面目

於是再也不能以”我們什麼都懂但什麼都不說”的態度置身事外

於是我們以各種方式 小小步的開始進行

我們開始隨身攜帶環保筷 開始順手捐發票 開始撥打1999

開始留意法條與稅制 開始閱讀國際新聞 開始參與聯署和座談會

因為改革不是一個人做了什麼大事 而是一群人一起做了一件小事



20歲的時候 覺得做事好難

30歲的時候 覺得做人好難



無論如何 能安然無恙的活到30歲

四肢健全尚能屈能伸 心智正常堪無病呻吟

就已經是一件非常幸運的事了



“永遠不要成為自己小時候討厭的那種大人”

這就是我今年所許下的生日願望



以此文獻給即將30歲的自己和30歲不到的你


不得不佩服他真的講得很傳神


面對30這個數字還是帶點忐忑
但我想到了那天 各位都還是過得很好

翻翻有關30的書
30歲前 就知道的21件事
30歲前 一定要搞懂的自己
30歲前 存百萬
30歲前 做對選擇 40歲後成就非凡
30歲前 成熟比成功更重要
30歲前 預約成功人生
...
要一次搞定這麼多東西 可能30歲前就先搞死自己吧

30表示你各方面的事情都有所涉獵了 未來是這些的延伸
這些書籍不外乎要你提早做好準備 以便比較『輕鬆』面對未來會遇到的事情
又查了一下 "35歲以前" "40歲以前" 這些書明顯偏少
是意味著過了30以後就沒救?還是30歲以後大部份的人對於人生就沒有困惑?

我想 是因為時間到了 該完成的事情自然會完成
想想過去 多少關卡覺得過不了 但現在還不是好好的
面對未來也是一樣 有些東西會自然拉著你跑

所以 也不用太擔心
每個時期我們往回看 總會為那個天真懵懂的自己感到不好意思
很好 那表示你一直在進步



『生存』對大部份的人來說不是太困難的事情
因為當基本需求受到威脅時 求生的本能自然會保護著你
但要『活得精彩』 就不一定了

30可能是寄託夢想的最後一站 假想著人生已經過了一半
小時候我們總有著偉大的夢想 但隨著時間前進 我們才意識到現實的無奈
期待越來越小 只求過得『快樂 健康』就好
最後發現 光要滿足這兩件事情就不是每個人都能達到
是這樣嗎?

是不是應該要做些什麼
不然10年後同樣一篇文章 把30換成40一樣是心中的寫照

那些卡在心頭一直沒有勇氣做的事情 並不會隨著時間自然實現
只會隨著時間 感覺自己越來越渺小 後悔著當初為何不怎樣的
為了讓自己好過些 會開始會找一些理由將它合理化 最後慢慢淡忘它

有人說出社會五年決定未來的一切 聽聽就好
想實現什麼事情 永遠不嫌早 也 永遠不嫌晚
最怕是 當你開始覺得人生不就是這樣的時候 意味著人生就只是這樣了
It depends on your choice