2015年6月6日 星期六

SSH ProxyCommand to tunnel connections

在講解使用SSH proxycommand前, 要先談到為什麼需要tunnel機 (或是稱跳板機)

1. 在管理機房的大量機器時, 為了安全性還有Public IP有限的情況下, 我們會將一些機器擺在內網內, 而一般情況下外面的機器連不進裡面的機器, 例如資料庫, 或是一些檔案系統 (NFS)的機器。

2. 當我們的機器越來越多時, 不太可能一台一台的去設定使用者的帳號密碼, 尤其是公司能access機器的人越來越多時, 這是一件不可能的任務 為了解決以上兩點, 我們就要動用tunnel或是稱bastion機的solution, 詳細像下圖

為了要能連進內網, 我剛開始都是用SSH agent forwarding的方式, 這個也是大部份人 比較熟悉的方式, 詳情可以看ihower前輩的講解

而這篇其實是要記錄使用SSH proxyCommand 的方式連結, 先講解如何使用
修改~/.ssh/config
Host bastion
  User                   kakashi
  HostName               tunnel.test.com (or ip address)
  ProxyCommand           none
  IdentityFile           ~/.pem/your-tunnel.pem
  BatchMode              yes
  PasswordAuthentication no

Host *.test.com
  ServerAliveInterval    60
  TCPKeepAlive           yes
  ProxyCommand           ssh -q -W %h:%p bastion
  User                   ubuntu
  IdentityFile           ~/.pem/your-server.pem

在這裡可以先測試看看能不能連上Bastion server
ssh bastion

可以連上後再試試看, 使用
ssh server1.test.com

可以看到我們使用ProxyCommand的方式, 在bastion和server1.test.com中間建立一道proxy 而這邊要注意的的地方, 是需要使用-W的方式, 就可以直接forward你的SSH client, 這部分跟SSH agent forwarding的方式很像

後話: 有人會問, 為什麼要繞一大圈使用ProxyCommand的方式去連接target server呢?原本使用Agent forwarding的方式就不錯了啊。其實有下列兩個原因:

1. 因為最近在學習ansible作部署, 而ansible要透過bastion連接target server 好像只能用這種方式, 因為ssh agent forwarding只能用交談模式, 必須先連上bastion在連上target server

2. 在網路上看到這篇文章, http://heipei.github.io/2015/02/26/SSH-Agent-Forwarding-considered-harmful/ 使用Agent forwarding時, 其實是有security的問題的, 去man ssh就可以看到下列講解

-A  Enables forwarding of the authentication agent connection.  
    This can also be specified on a per-host basis in a
    configuration file.

    Agent forwarding should be enabled with caution.  
    Users with the ability to bypass file permissions on theremote host (for the agent's 
    UNIX-domain socket) can access the local agent through the forwarded connection.
    An attacker cannot obtain key material from the agent, however they can perform 
    operations on the keys that enable them to authenticate using the identities loaded 
    into the agent.


Ref:
http://backdrift.org/transparent-proxy-with-ssh
http://heipei.github.io/2015/02/26/SSH-Agent-Forwarding-considered-harmful/
http://alexbilbie.com/2014/07/using-ansible-with-a-bastion-host/

2014年11月29日 星期六

MongoDB使用一年小小心得

過去一年,重新投入軟體開發的懷抱,因為工作需要,有很多時間都需要接觸MongoDB,遙想四年前,還是各家NoSQL大戰,在那個勝負不明的時期,就有小試了一下MongoDB,只是沒想到他能夠撐那麼久,並且讓那麼多公司採用,還頗讓人驚訝的。

MongoDB是NoSQL中偏向document-level的一隻, 先講講優點好了

1. scheme-less 算是他最大的好處,以往開發程式,為了決定資料的scheme,常常要花一番工夫,而當之後要改scheme,又是另外一個麻煩的事情,更者關聯式資料庫常常會陷入要不要正規化的矛盾中,對於一些小型程式要做快速開發算是額外的overhead。

 2. 容易上手,MongoDB的query的語法設計的非常好,加上對於不同程式語言的Driver都有一定要求,簡單的command如find,update,delete都非常容易實現,而且也不容易有SQL injection的問題,不過使用PHP或Perl的人可能會詬病使用 $ 當作運算元。

 3. 容易水平擴充,由於一開始的設計就是為了能夠很好的scale,MongoDB在處理replica(複製),sharding(資料庫分割)方面算是下了不少工夫, 在sharding部分採用自己設計的Bson index, 而不像一般資料庫用incremental的id,就是為了能夠很好的自動處理sharding, 雖然早期被人詬病auto sharding很不給力,不過到了2.4後多了hash index,成功地解決了這個問題。

 4. Fail over的機制完備,在使用官方推薦的replica set狀態下,三台機器中,當Primay機器下線後,會自動選出新的Primary機器。

接著是討論一下缺點

1. scheme-less聽起來好像很不錯,但是其實scheme-less是scheme-plus,需要在每個document中塞入data的scheme,相對上面是浪費空間,所以MongoDB官方才會推薦,要把key設越短越好,以節省硬碟還有記憶體的使用量。

2. 不同的scheme塞入同一張collection內,容易造成Disk和Memory的Fragmentation,進而使效率降低,不同版本的資料還需要在程式邏輯端去避開,強烈建議scheme在脫離prototype後,一定要有固定的格式。

 3. Mongodb完全靠Mmap處理檔案操作,並沒有對Disk IO操作或是容量有什麼過多的設計,而對於硬碟空間就是浪費過多,加上Index tree是傳統B-tree結構,在硬碟的讀寫上沒有做任何優化,導致request增加,就需要對硬體做升級。

4. 一樣是B-tree的問題,當資料量大到一定時,讀寫就會變慢,就不得不做sharding或是將硬體升級,另外range query並沒有辦法做最佳化,需要常常做range query操作的資料,要好好考慮是否使用MongoDB

5. 目前2.4支援collection lock,lock系統也是MongoDB的濫傷,從一推出的Global lock,過了四五年了,還沒進化到document level的lock,就寫入而言就是只有悲劇可言,目前的Roadmap是說2.8就會把這個解掉。

2014年4月24日 星期四

Flask Note 1

想要來寫個Flask筆記, 這個系列會把一些看到, 或是曾經使用過的技術給記錄下來

環境需求:python2.7以上, python套件pip & virtualenv安裝

0. 建立virtualenv環境, 使用virturlenv目的就是為了建立一個乾淨的開發環境, 可以去掌握你撰寫的python程式跟其他package的相依性, 利於你的程式部署到其他機器上
$ pip install virtualenv
Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Python/2.7/site-packages
Cleaning up...
$ virtualenv .env
New python executable in .env/bin/python
Installing Setuptools..............................................................................................................................................................................................................................done.
Installing Pip.....................................................................................................................................................................................................................................................................................................................................done.
$ source .env/bin/activate #進入virtualenv環境
(.env) $
1. 在virtual environment 下安裝 Flask
$ virtualenv .env
(.env) $ pip install flask
2. 產生app instance
from flask import Flask
app = Flask(__name__)
3. 建立Route
from flask import Flask
app = Flask(__name__) 

@app.route('/')
def index():
    return 'Hello World !!!'

@app.route('/user/<name>/')
def user(name):
    return 'hello %s' % name

if __name__ == '__main__':
    app.run(debug=True);
4. run script by python interpreter
$(.env) python hello.py
*Running on http://127.0.0.1:5000/
*Restarting with reloader
接下來可以打開瀏覽器輸入http://127.0.0.1:5000/看看
還有http://127.0.0.1:5000/user/test
       http://127.0.0.1:5000/user/world

2014年3月29日 星期六

平庸的惡

1960年以色列情報單位"摩薩德"在阿根廷綁架了阿道夫·艾希曼(Adolf Eichmann)。

在以色列的法庭上, 艾希曼被指控是屠殺600萬猶太人的劊子手, 因為當年他是負責
猶太人問題最終方案的指揮官, 並且將一批批的猶太人送進了集中營和處死。

但看過相當多的資料後, 尤其是"阿倫特"為了這場審判而寫的"平凡的邪惡:
艾希曼耶路撒冷大審紀實", 發現艾希曼其實總體來說並不是一個惡人,
特別是以他自己的角度出發, 他自己宣稱只是依照上級指示,
甚至說自己對猶太人並沒有任何的仇恨。

「我發現以服從和接受指令為基礎的生活, 確實是一種舒適的生活。這種生活
讓一個人對思考的需要減到最小。」艾希曼在受審時說了, 在他的認知中,
自己只是個普通公務員, 每天盡責的處理上級交代的事。

阿倫特下的結論是這種平庸的惡會產生, 都是因為停止思考, 而進而使良知停擺。
此種良知危機將會導致惡的生成, 那麼更根本的問題, 應該是追問何以人會拒絕思考?

自己的感想是, 就算是在民主社會下面, 也是看得到許多平庸的惡,
許多人如果不關心國家事務, 很容易就被有心人士操控或是洗腦,
又抑或是為了利益或是權力, 而內化成停止思考, 停止去考慮其他人的福祉。

2013年7月20日 星期六

宗教亂想

話說最近在失眠的時侯,看了好多有存在主義內涵的小說和戲劇,以前其實不太了解為什麼歐洲會有文藝復興,最近才瞭解到中古歐洲被宗教深深的影響,基督教(天主教)的勢力龐大,宗教雖然可以救贖人心,但另外一方面也變成了一些有心人士操作利用的工具。

達文西的惡魔(Davici’s Devil)這部戲,先讓我開了眼界,戲裡面的羅馬教廷(教皇國)一整個淫亂邪惡,運用著上帝的名義,貪污,籠絡其他諸侯,還可以決定誰違反了上帝的旨意,背不出聖經裡面內容就可以處死(異教徒),教皇自己其實也違反教義,養了一堆妓女雛童,並且還公開收賄。達文西有幸在文藝復興時期的佛羅倫斯成長,在那個地方宗教的力量並沒有那麼強大,也是因為教會的腐敗,知識分子對其的反感,思想的發展變成對神權的革命,還有抨擊以往的制度,進而從人本出發對已有的事物(科學、文學、藝術、音樂、建築)做不一樣的學習與發展。

不過單純如我,原本以為戲裡面那些教皇是亂演的,沒想到卻是在歷史上真真正正的發生,讓我很吃驚的是,這個國家(教皇國)居然還存在著,也就是羅馬的梵蒂岡,不過我相信因為沒有權力了,所以現在應該已經恢復宗教的本質,這不經讓我不斷的思考,到底宗教的力量是不是抵不過權力和慾望,抑或是宗教根本沒有那麼大的力量,在日常生活中,也確實看到一些虔誠的教徒,作些落井下石,或是毫無同理心的事情,整個讓我大困惑,會不會他們每個人接受到上帝的旨意都不同呢?又會不會這根本就是從人的心中出發的,才會造成那麼大的差別。


註:沒有要貶低宗教的意味,之後要打一下機槍教父的心得,一個受到基督教改變的男人,還去拯救非洲國家的小朋友。

2012年9月16日 星期日

Ariane 5 的失敗

1996年的6月4日, 歐洲太空總署試射了一架無人駕駛Ariane 5火箭,這個計畫共花了十年和7千萬美金,但是這架火箭居然在發射後的36.7幾秒就爆炸了,意外事件的報告在兩個禮拜後出爐,指出了爆炸原因是因為程式設計的錯誤。

在飛行使用的慣性導航系統(IRS),正在處理一小段的資料時,因為無法轉換64bit的浮點數到16bit的整數,而造成了overflow的發生,隨即這個系統就關機了,而這段資料也被傳輸到另外一個備用的運算單元,這個重複的運算單元,就是怕原本的系統有問題而增設的,但是在幾毫秒後,這個備用的單元也關機了,原因就是這個系統跟原本的是一模一樣的,所以一樣無法處理那段資料,所以意外就發生了。

照一般程式處理的方式,當這個例外處理產生的時候,因為在realtime的系統上,我們會想辦法回復系統的狀態,而其實Ariane 5的IRS系統也做了很多這樣的處理,而因為這個系統是從Ariane 4就有的,而Ariane 5的速度比Ariane 4還要快上很多,一個無法被處理的值就這樣產生了,而原本Ariane 4的程式卻是假設不可能出現這樣的值(我想應該是為了效能的關係),而這個BUG對應的處理居然是直接關閉系統,也間接干擾了其他的系統。 

這個意外導致了很多的損失,追根究底卻是因為一個小小的程式BUG引起的,我想在這個系統越來越複雜的世界,真的有賴工程師的細心,尤其是寫realtime system的設計師,更是需要考慮各種不同的情況去做好例外處理,才能避免類似的情況發生阿。

2012年5月7日 星期一

復仇者聯盟




這個禮拜趁著勞動節去看了avengers, 不能不說的確是值得一看的大作,

不過談到劇情上面,而且想當然耳,這部片的劇情,大致上又是壞蛋入侵

然後被超級英雄打跑,最後大家過著幸福快樂的日子,但是要達到這個目的下,

必須要好好的把中間的過程好好的串聯起來,也就是如何讓大家感覺敵人非常

強大,而這些超級英雄一定要合作,我是覺得中間的鋪陳,雖然有些地方有點不合理,

不過大部份是可以接受.

而這部片最讓我覺得過癮的是,在那麼多主角的情況下,這部片的分鏡真的很不賴,

不會讓你有角色切換上面或是場景切換上面太唐突的狀況,而且每個人的能力值

做得很均當,不過有誰搶了誰的丰采,而且在刻畫不同主角個性的不同時,也帶入了

很多的笑點,能夠讓大家哈哈大笑,礙於這篇文不想爆太多雷,所以好笑的劇情我

也只能記在腦海中了,

在復仇者聯盟中,我最喜歡的超級英雄大概就是鋼鐵人了,我想大概是我的資工背景吧,

每次stark在詢問J.A.R.V.I.S的時候都讓我很興奮,要到那一天我們的人工智慧才能做到

那麼厲害呢,不過後來有去查wiki,原來漫畫裡面的J.A.R.V.I.S是個真人阿,不過還是電影

的設定酷多了,總而言之,這部片還蠻適合大家去看的

difference between present perfect and present perfect continuous

From now on, I decide to write some article in English, because I want to sharp my writing skill in English. Therefore, I need to find out some topic worth to be record. I realize that English grammar is
always difficult to me. I usually use wrong tense and can not express my meaning exactly. To this end, I would like to noted down some of knowledge.

There is a pretty awesome website called stackexchange. Today I read a question that also harasses me.
That is : "what's the difference between present perfect and present perfect continuous"  In someone's briefly explanation, I know that present perfect continuous form is used to talk about event happened in recent past, but this event have not been finished. Moreover, this form often is found with "for" and "since".

There are some examples.

I’ve done my homework' (it’s finished) / 'I’ve been doing my homework' (it’s not finished)
‘I’ve drunk my coffee' (it’s all gone) / ‘I’ve been drinking my coffee’ (there’s some left)
‘It’s rained every day since the weekend’ (repeated rain) / ‘It’s been raining all day’ (continuous rain)

2012年4月14日 星期六

補心安神

話說我從小到大就不是個很健康的人,在加上以前大學的時候出了車禍,到底有很多奇奇怪怪的病,其實從前就有認識中醫社的學長,在加上去上了幾堂社課,讓我了解到身體的病痛有時候是互相有關聯的,並不是頭痛醫頭,腳痛醫腳就會好的.

在上班一陣子後,原本就氣血不足的我,加上久坐缺乏運動的狀況,又讓我的身子很不爽快,所以就去看了新竹光復路上的劉中醫,因為我的小問題很多,所以這次開的藥單先針對最重要的部份,也就是我的元神(心)的功能去加強,以下是藥單的內容:
         
           天王補心丹:4g
           柴胡龍骨牡蠣湯:4g
           雞血藤:1g
           甘麥大棗湯:4g

主要治療的是心悸,我其實沒有跟醫生說我心悸的問題,因為那不是很常發生,只有我非常非常不舒服的時候才會,而劉醫生把脈的功力真的很強,不像很多中醫師只是照本宣科,而這帖的作用就是滋陰養血,補心安神,養心安神,和中緩急,也就是要讓我睡得好,不要緊張,讓身體放鬆並且補補血氣,天王補心丹看起來是主藥,從醫砭看到方中生地滋陰清熱以安神為主,所以要先把元神安定了,其他部份才能仰賴它去運作,接下來好幾個禮拜,我要好好的休養身心了

2012年3月16日 星期五

踩地雷

「我好希望他可以多請個幾天假。」小張趁傑夫離開工程師的辦公區時,趕緊跟隔壁的強尼小聲的訴苦,兩個人臉上都露出無奈的表情。

傑夫是某半導體廠的一個經理,剛從國外回來的他趾高氣昂,算算以他在國外的資歷能談到這個這個職位,可是相當的得意,而且頭上的老闆也分了幾個不錯的工程師給他,雖然在台灣的薪水沒有比在國外高,但是這裡所承受的壓力卻是比之前小很多,加上他深知台灣人的個性,可以讓他沒有後顧之憂的去分配工作。

「真不知道為什麼是我們要掛到他底下。」強尼對小張說。
「國外回來的人都自以為厲害,當年真的該出去闖闖,回來做個主管多好,只要動動嘴巴就好。」小張應道,
「case急的時候就跑來我們這邊喊加油,還跟上面老闆說我們會比deadline還快搞定,根本就是要搞死我們阿。」也是同部門的健泰也參與了討論。

傑佛森端了一杯咖啡到傑夫的座位,「傑夫阿,來喝杯咖啡。」傑夫順手接過,「昨天面試的新人怎麼樣阿?」傑佛森問道,「怎麼,你也想知道阿?他是從電心那邊過來的,你也知道他們搞了一顆CPU不值錢阿。」傑夫邊說著,邊想著(這個人我可不能讓給你,他可是做CPU的高手),又回答道「雖然我們給他資深工程師位階,但是我想他的火侯還沒到阿,你也知道我們缺人啦。」經理階層之間的搶人大戰,傑夫早就經歷過了,是不會那麼容易就上當。

「你知道嗎?新來的火哥遞辭呈了!」小張說。
「這麼快?我們都還沒有混熟呢。」強尼回應。
「聽說傑夫丟給他一堆事情,還說他沒有資深工程師的價值,結果他一狀告到大老闆那邊去,你也知道大老闆根本不想管這種鳥事。」小張說。
小張,強尼和健泰的這個小區塊不斷小聲討論的這件事情。

這天,部門的大會議舉行,「今天我們有重大的人事異動要宣佈,傑夫暫時改當技術經理,他手下的人都掛去傑佛森下面,新一年度,我們有一些重要的計畫...」。「哇靠,傑夫被架空了喔?」「我們解脫了嗎?」「沒人讓他使喚,傑夫還能幹麼?」傑夫下面的人竊竊私語,而這時傑夫腦袋早就一片空白了。

2012年3月12日 星期一

朝向心的方向 ( 心の指すほうへ)



今天在搜索youtube的時候跳出來的廣告,第一次看到廣告那麼長的啦,但是仔細一聽真的超好聽的,加上最近是日本311的紀念,這個PV拍的超有感覺的。

朝向心的方向,要追尋自己的夢想,這些雖然都是陳腔老調,但是卻是我們人生很重要的事情,所謂的夢想不是空想,而是要好好的過生活,一步一步找出自己的意義,好好的設定目標,就算過程不順遂,但是只要我們認真的過日子,用健康的心態面對一切事情,培養自己的能力,好好的關心這個世界,關心自己身旁的事物,我想一定可以找到完成自己夢想的軌跡的!

突然想到Jobs講的
And most important, have the courage to follow your heart and intuition


2012年2月14日 星期二

lativ 和 path 給我們的一課

過去的一周,發生了不少事情,但是最令我印象深刻卻是lativ和path的事件,這兩件事情一開始都有一個共同點,就是讓信任品牌的消費者錯愕,lativ是被踢爆mit的口號是造假,在年終發了40個月後被人發現lativ根本沒有照顧可憐的裁縫老奶奶,而path這個在去年爆紅的iphone軟體,被人發現在未告知使用者的情況下將通訊錄上傳,而這兩件事情會被我拿來一起講是因為他們都是利用網路社群而紅起來的,卻在面對網民的態度完全不同,再受到質疑時,lativ的聲明稿打著

若您非『台灣製造』不買,我們誠懇地建議,請您不要下單,因為台灣已經沒有這樣的生產環境。


這種措辭很讓人傻眼,這是當初善用網路優勢打出品牌的公司嗎? 雖然後來改成"請您確認後在下單"也於事無補阿,在自己行銷的平台上面傷害自己,這種不帶感情的non-apology apology,讓相信lativ的人多麼受傷阿。


換過來看,path這家公司就讓我很敬佩,從一樣是工程師的角度來看,上傳使用者通訊錄,確實是一個能夠改進使用者經驗的方法,從了解使用者之間的關係去改進軟體的效能或是一些功能,像是facebook其實也掌握了很多我們的通訊訊料,但是道德上面錯了,這些私密的資料必須要讓使用者知道你這麼作,而path的CEO也很讓人尊重,第一時間就出來消火,跑去找到這個秘密的新加坡工程師Arun Thampi文章回文,後來又在path的官方網站打了 一大篇的道歉文,並且讓人瞭解他們的出發點都是為了使用者,而不是他們自己,並且強調會把上傳的使用者資料都刪除,並且馬上出新的版本,這一切的回應都讓人感覺,他們是注重網友的,而不是只是為了自己的利益,兩相比較下來,就會讓人知道在這個年代,該怎麼操作網路品牌,該怎麼跟自己的使用者對話了。

2012年1月8日 星期日

創用CC (common creative)

創用CC已經出現很久了,不過對於我來說好像一直都沒搞懂過,最近想要試著做些有趣的投影片,卻不知道到底能不能使用網路上找到的圖片,為了防止被別人誤會,所以要來了解一下創用CC。

這個youtube上面用卡通的方式介紹創用CC的影片,解釋的非常清楚


也就是說使用創用CC,我們可以了解原作者對其作品開放的程度,而有效的去共享其資源,而其中有下列條款(節錄自wiki):

姓名標示 Attribution (BY) 
您(使用者)可以複製、發行、展覽、表演、放映、廣播或透過資訊網路傳播本作品;您必須按照作者或者許可人指定的方式對作品進行姓名標示

非商業性 NonCommercial (NC)
您可以自由複製、散布、展示及演出本作品;您不得為商業目的而使用本作品。
(簡單來說就是不能拿來做營利用途)

禁止改作NoDerivs (ND)
您可以自由複製、散布、展示及演出本作品;您不得改變、轉變或更改本作品。

相同方式分享 ShareAlike (SA)
您可以自由複製、散布、展示及演出本作品;若您改變、轉變或更改本作品,僅在遵守與本作品相同的授權條款下,您才能散布由本作品產生的衍生作品

了解創用CC後,就可以自由的去找素材了
像是可以利用http://search.creativecommons.org/的搜索引擎去尋找Flickr或是google上面的共享素材,感謝有這個好東西,讓我的素材才能更豐富阿!


2011年12月17日 星期六

解決emesene 不能登入的問題

最近很常使用ubuntu,而我在ubuntu上面使用的msn軟體是emesene,但是最近都不能登入,查了一下才知道原來是微軟的MSN讓第3方登入的程式有修改,所以要去下載有打過patch的emesence才能用,來去下載emesene 2.11.11吧

sudo add-apt-repository ppa:emesene-team/emesene-stable
sudo apt-get update

2011年12月10日 星期六

nodejs, Ben, 還有 iceberg

不知道為什麼很想把這天紀錄下來,連這個標題都下的莫名其妙

先來談到nodejs吧,這天原本是去參加建立nodejs production環境這個議題的,不過其實這個議題對我來說可能太過於簡易了,談到nodejs的東西太少,而建構production的東西,在bottleneckle還沒到來之前,其實是感受不太到那些微調對於系統的影響,不過真正讓我覺得感興趣的是主講人Ben和他的團隊dreamerslab,這應該也算是個創業團隊,我比較想了解他們的背景,Ben和他的partner其實看起來不太像geek(從穿著打扮來看),不過從他的演講中,卻是了解到他也是有參與一些real world的case,而且整個團隊看起來很有活力的感覺,也從他有參加過 startup weekend 就可以知道他應該是很敢出動出擊的人物,我想這樣的團隊相會蠻容易吸引人的

而接下來的活動是他們推出的app -- iceberg的測試會,我其實沒預料到這個測試會的模式,居然跑來了一堆是夜店咖的帥哥辣妹,原本的工程師宅宅們怎麼跑了一大半,骨子裡是工程師的我也對這個聚會感到有點不適應阿,我真是該改進改進了,這種場面居然hold不住,原來這隻app是拿到夜店搭訕聊天用的,也算是LBS的一種應用吧,你可以在登入你所在位置50公里內的夜店,並且在聊天室裡面聊天,在嘈雜的夜店裏面,傳公開訊息或是私人訊息,其實對於這個app,我有幾個想法,第一個是LBS的應用拿來找人或找物還不錯,第二個是在一個狹小的區域許多人使用wifi或是3G的品質不知道好不好,要不然這類的app拿來用在球場,讓一群支持他們的觀眾一起登入這種聊天室其實也還不錯,另外就是當很多人登入時,有洗版的問題該怎麼辦,我想這類型的app可能要克服一些問題才能更stable,但是就當天測試會的感想是這隻程式品質其實還不賴(不是廣告文阿):)

2011年11月28日 星期一

來電走著瞧有感!

11月快過了,這個月最興奮的莫過於聽到 gogolook的來電走著瞧被施密特談到,進而登上媒體版面這件事情了 ,這對我是件大事阿,很開心Jeff 小捲和丰哥還有老師的默默耕耘終於被大家看見

想到去年的這個時候的我過的真的很開心,沒想到居然能被Jeff找進來,而與大家共事的時候學習到了很多很多資工人不可能有的想法,有點回到了YEF那個時候的感覺,大家做的資料分析,市場調查,還有一些網路行銷的手法,這是個不到七人的小團隊,居然有那麼大的力量阿,那個時候我感覺我每天都在進步阿,而不是茫茫然沒有目標,而是真的在開創事業的感覺,那種想要改變世界的力量一直推著你

我也好想趕快再找到那種感覺,不過現在的我得要好好墊高自己的實力了,希望出山的時候還能幫上忙,多看多聽多學吧!

2011年10月19日 星期三

不知不覺滿一年


從成功嶺上下來已經一年了,在這個世界級的公司裡面待了一年,也漸漸明瞭到什麼是業界,什麼是你必須在公司重視的事情,什麼該做什麼不該做, 很多的淺規則,不是從書上得知就真的是那樣,要用你的身體和智慧去感受(笑),從剛開始到公司的三個月,相當的悠閒,到後來趕project沒日沒夜的熬夜, 我只能說人類的學習速度很快,抗壓性也很強大,所以才能產生出那麼多所謂的"文明"吧。 

以前聽別人說再大公司裡面學的比較少,而我倒是不能完全的贊同,雖然公司明文條例的規定不能搞公司政治或是結黨,但是根據人類生活的準則,這些都是不可避免的,換作成上面的人,不知道誰才是真正挺你的人,那種不知道工作分配下去能否完成的壓力,其實是相當巨大的,難怪好幾個主管都胃潰瘍,而這些鬥爭造成公司裡面一齣又一齣的悲劇,而且這些悲劇一開始都是被包裝得很好的,有些沒在做事情,你恨得牙癢癢的人,反而得到最好地待遇,老闆還很感謝他,有時候感覺在這裡為什麼生存(或是功勞),就是要不擇手段的鬥掉別人,一開始我很不能苟同,明明都是在同一家公司,居然不是為了公司賺錢,而是為了個人利益出發, 讓我很討厭這種大公司的模式,在這裡看到一些混水摸魚的高手,說話顛三倒四,迷倒了老闆,卻不知道這就是國王的新衣,等到真的上街了,搞不好國王還不知道呢,不過就算不知道也沒關係,大公司就是有這種氣度和能力容納下面不重要的部門亂搞,因為把公司搞倒的機率比較小。 

不過就整體而言,把公司內部想成一個商場之間競爭的關係,往往也是這樣,不同的部門間沒有絕對的朋友或是敵人,跨部門合作往往是最具有挑戰性的, 一來你要把工作完成,二來你要懂得防禦別人的攻擊,萬一哪個環節爛掉了,你一定要有收拾的能力,不能傻傻的相信對方,我很感謝老天爺把我安排到這個部門, 其實我一定算是運氣比較好的,我的主管和主管的主管都相當好,同事也都很nice(不過看不慣最上面老闆的人太多,走了好多人,我好傷心...),但是同坐一艘船, 一起看著外面的風風雨雨,真的是挺刺激的,就不用說其他部門的,還有可以被船長陰,叫你自己下去游泳或是補船身的,我有點開心卻也有點哀傷,不過總而言之, 我會繼續加油的,撐下去就是我的!

2011年10月10日 星期一

Wozniak (沃茲尼克) - Tearfully Remembers His Friend Steve


Steve Wozniak是跟Steve Jobs一起創辦蘋果電腦的老戰友,我很喜歡Wozniak,因為當初的蘋果原型機就是由他一手打造的,在那個連電晶體都不存在的時代,他能做出一台可以寫程式的家用電腦,實在讓我太佩服,在Jobs過世的這段日子有無數的表示慰問的訊息,但是唯一讓我最有感覺的其實是這位大師所提及的Jobs,這是一個真正認識青少年時期的Jobs的人,雖然他們最後漸行漸遠,我想當初的記憶是永遠不會被抹滅的...


這是從網路上找到的transcript
I was so stunned because I have very dramatic memories of where I was when the Beatles were on Ed Sullivan (The Ed Sullivan Show), when I hear the J.F.K. had been shot, and this – I’ll never get this memory out of my head just where I was getting a phone call from a reporter and they just said: “Have you heard the news?” And I instantly knew what that meant. And that was just a total shock! Like, what do you say. It’s like the world lost a John Lennon. I mean, Steve was clearly the most outstanding business thinker and almost everybody whose high up in the technology business recognized that somehow he had the ability to think out new ways of doing things, not just ways to improve what we have, or do a better version or something, but do it in a totally different way, that the world would swing towards. And then I think back to just all the times we had together, very very good times that you have when you’re young, you know, playing around with the systems and ah, little misbehavior, and doing interesting things, and then, and then he was always thinking about certain technology, the early products that got developed, the building parts, what those might led to in our future, and he was always pushing me as an engineer could you possibly add this some day, could you possibly add that some day. Yes, yes, yes, thinking: “No, it’s way way off”. But eventually we all did. We went into the garage when we were two young people with no money. You have to work out of your home. We had jobs on the side. We had nobody that could loan us money. We had no business experience. We were like a million young people who were so excited about the future they might have some day in business making something just out of their idea, that’s what we were. And over and over, all the products of Apple from iPhones and iPads, iPods, umm, these were just unbelievable life changers and almost everyone who had the technology gots – looks at Steve Jobs, where did he get the ideas to do it the right way. We were just the lucky partnership. He was lucky to have me in the beginning, but I am – much – you know, incredibly lucky to him for everything in my life. He gets a reputation for being a strong leader and being brash but to me he was just always so kind, such a good friend, and ah, I’m just gonna miss him.

2011年9月29日 星期四

Boyce Avenue


最近迷上Boyce Avenue,每天都要聽好幾首他們的歌,我原本是從facebook上面看政樺發表的youtube連結認識這隻樂團的,他們翻唱而且修改了很多歌曲,有些變得更抒情,加上他們詮釋的方式有所不同,聽了真的會讓人心情變好,參照wiki上面的解釋,Boyce Avenue是起源從美國的Florida,成立於2004年,然後成員是三兄弟Alejandro, Daniel Fabian Manzano他們在youtube上面的點擊率都超級高的,有些甚至超過原唱者,像下面這首Talor Swift的Last kiss

其他還有很多大家都很熟悉的歌曲


很喜歡他們的一系列男女對唱的歌曲



而他們現在也在愛爾蘭,德國,英國,還有其他歐洲地方展開巡迴演唱,只能說只要有實力,真的不怕不被看見,我也覺得我們很幸運,有了網路和Youtube,我才有機會認識這個樂團吧。

還有一些連結給大家參考
Facebook: http://www.facebook.com/boyceavenue
MySpace: http://www.myspace.com/boyceavenue
iTunes: http://www.itunes.com/boyceavenue
Twitter: http://www.twitter.com/boyceavenue

2011年9月24日 星期六

OAuth 2.0 on facebook

Facebook 從10月1號起就要採用oauth2登入了...
In May we announced that all apps on Facebook need to support OAuth 2.0 and HTTPS to make the platform more secure. If you haven't already made these changes, visit the Developer Roadmap before October 1st for more information about how to upgrade your apps and avoid having them disabled.
  • all Website and Canvas apps must exclusively support OAuth 2.0 (draft 20)
  • all Canvas and Page Tab Apps must use the signed_request parameter
  • an SSL Certificate is required for all Canvas and Page Tab apps (not in Sandbox mode and not FBML)
  • old, previous versions of our SDKs will stop working, including the old JavaScript SDK (FeatureLoader.js), old iOS SDK (facebook-iphone-sdk)

每個Canvas 和 Page Tab都要用signed_request
剛剛看了一下Flask-Oauth好像是用1.0a的標準, 不知道跟Oauth2差距有多少...