2012年2月27日 星期一

"Python.h: No such file or directory"

剛才在安裝lxml的時候,遇到了一個意外的問題
Building against libxml2/libxslt in the following directory: /usr/lib
src/lxml/lxml.etree.c:4:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: Setup script exited with error: command 'gcc' failed with exit status 1


只好去GOOGLE才發現原來要安裝 python-dev 就可以了

# sudo apt-get install python-dev

ps:我有安裝python2.7 python3.2 誰會知道還要安裝 python-dev 阿(翻桌)

2012年2月22日 星期三

如何處理textarea內文字編排或插入

    這次為了寫微算機project,趁機研究了一下bootstrap和textarea內的文字操作,一開始以為javascript內有函式可以引用,不過後來發現需要自己寫,而且牽涉到textarea的操作還有內建的物件的概念,所以就寫了筆記記錄下來。

因為我想要捕捉使用者游標的位置,所以我設定了一個cursor object

function cursor (e) {
 this.e = e;
 this.prefix = e.value.substring(0, e.selectionStart);
 this.suffix = e.value.substring(e.selectionEnd);
 this.start = e.selectionStart;

 this.insertTextInCursor = function(text){
  this.e.value = this.prefix + text + this.suffix; 
  codeboard.setSelectionRange(this.start+text.length,this.start+text.length);
 }
}
利用event(e)內的數值來儲存原本的文字(prefix+選取的範圍+suffix),而start則為游標的目前位置
設定+text.length則會在你插入新的文字之後,游標就會自動移動到插入文字後的位置。

裡面只有一個method用來在游標的位置插入,
把滑鼠和鍵盤對textarea做操作時候的event設定好,使得他在每次受到改變範圍的時候,都會重新建立一個位置以保持正確的位置就可以了(範例使用jQuery)


$("#codeboard").mouseup(function(){
 cur = new cursor(codeboard);
})
.keydown(function(e){
 cur = new cursor(codeboard);
});

2012年1月17日 星期二

[Ubuntu] 安裝Django

雖然照著他的程序去安裝就可以了XD,可是因為裝了太多東西,為了下次可以快速安裝,還是寫網誌紀錄一下好了。

參考自這裡

  • 下載Django之後解壓縮 
$ tar -zxvf DJANGO_RELEASE_VERSION.tar.gz
  • 切換到資料夾內,使用super user的權限執行安裝

$ cd DJANGO_RELEASE_VERSION
$ sudo python setup.py install


  • 這時候就已經安裝完成了,正常來說會有個django-admin.py在系統的bash檔案裡面,可以直接鍵入
創造你的第一個專案,然後就可以測試有沒有安裝成功
$ django-admin.py startproject mysite 會在目錄內建制你的專案名稱

  • 切換到專案的資料夾內,啟動Django

$ cd mysite
$ python manage.py runserver
之後登入http://127.0.0.1:8000(預設)
會看到一個成功的畫面,那表示你的初步設定已經完成了!

2012年1月5日 星期四

魔球:要懂得創新,你必須像是那些大時代的瘋子。


        最近看了魔球,描述著主角Billy Beane如何改寫棒球既定規則的故事,讓即使是不懂棒球的我,也有不少收穫。
Billy Beane是奧克蘭運動家隊的球經,在一次意外中認識了耶魯經濟系畢業的高材生彼得布蘭,從此展開了使用數學統計和資料分析的方式來Hack棒球,因為堅信著棒球的舊有信念不是牢不可破的,於是改用科學的方式來挑選球員並且帶領球隊,過程中起過很多爭執,甚至達到了五連敗,其中令我印象最深刻的是,一位經驗老道的球探負責人本來態度很好的勸馬上更改他帶球對的方式
「現在有一個有20年的老球探在這裡,你要選擇我?還是那個該死的數學統計?」
最後他直接開除了他,並且聘用另一個完全沒有經驗的人取代他,雖然電影的當下我看到的是一個失敗者的衝動與不理性,但是卻為他可以如此堅持而感到讚嘆,他當下大可選擇相信大家所遵循,既穩定又安全的路,但是他卻堅持自己的作法,相信自己可以改變所有球壇的既定規則,看到了這裡,問問我自己
「如果今天是你,你還可以這麼的堅持自己的作法是對的嗎?」
我想我的答案是否定的,即使在知道電影故意這個做來提昇張力的前提下,我想我是沒辦法相他如此地堅信不移自己的想法,而他可以,後來在奧克蘭運動家隊連續拿下20勝之後,事實證明,勝利是屬於他的,是屬於他這個不怕冒險的挑戰者的,如果你今天看到了一個趨勢,或是一件值得讓你堅信不移的事情,你有辦法堅持下去,直到證明他是對的為止嗎?

        回顧身邊,自己永遠是走在最安定的路途上,就像是電影中利用所謂的經驗和眼光來挑選球員打一場經驗球賽的球探們,但是自己也很清楚這不是自己想要的,因為我是一個喜歡做我自己喜歡、熱愛的事情,因為那些事情會讓我越做越開心,直到完全投入為止,但是我卻常常提醒自己「你確定要這樣做嗎?你已經偏離了既有的安全的軌道了,趕快回覆原來的生活吧。」而回到自己的舒適圈內過這自己不喜歡的生活,卻總是在想,自己是否可以改變現在身邊的狀態;
        其實身邊很多相信自己的人,他們總是相信自己的看法,勇於挑戰,而且積極的發現生邊的盲點,並嘗試打破他,不論這件事情是否是大眾所堅信的,就像主角一樣,或許有時候自己太不相信自己了,總是以為拿著別人的經驗比較可靠而不敢冒險,但是生命就如此的短暫,何不把握現在的機會去做自己想做的事情創造屬於自己的價值呢?

2011年12月29日 星期四

快速備份&設定你的.vimrc

原本是想分享.vimrc和一些好用的plug-in,於是開始想辦法在github上同步自己的vimrc跟plug-in,可是不想還好,一想結果就花了很多時間在研究github上...(汗

而我們通常管理VIM設定檔的方式不外乎是在自己的家目錄下面建立一個.vimrc檔案
$ vi .vimrc

而plug-in則較常放在
$ mkdir .vim/PLUG-IN

詳細的規格跟方式在VIM的相關規範裡面都有,而今天如果你會使用多台電腦,這樣如何快速的設定好你VIM的參數跟安裝好plug-in就相對很重要了,而已往我都是把自己的.vimrc放在隨身碟裡面,然後隨身攜帶,並且記錄下來自己常用的plug-in,但是如果今天你修改了你的.vimrc,那你必須:

  1. 把新的設定檔放到隨身碟
  2. 拔起來...然後插到另外的電腦上
  3. 到處去更新你的設定檔
光是準確的更新就這麼麻煩了,更不用說如果在設定的時候不滿意或者有錯誤會是怎樣讓人抓的情形

所以今天就打算花一次的時間,在github設定好自己的參數,如此一來不僅一勞永逸,還可以在忘記帶隨身碟的時候仍然有個方法可以設定,參考自vgod's github

先將你的.vimrc複製到.vim目錄內(以方面之後用捷徑的方式來安裝)
$ cp ~/.vimrc ~/.vim
接著在你的~/.vim/目錄下
$ cd ~/.vim/ $ git init $ git remote add origin git@[YOUR REPOS] $ git push
如此你的github上就會儲存你的.vim資料夾,接著撰寫你安裝時的shell script
範例:
#!/bin/sh
VIMHOME=~/.vim

die() {
    warn "$1"
    exit 1
}

[ -e "$VIMHOME/vimrc" ] && die "$VIMHOME/vimrc already exists."
[ -e "~/.vim" ] && die "~/.vim already exists."
[ -e "~/.vimrc" ] && die "~/.vimrc already exists."

git clone git://github.com/lucas0412/vimrc.git "$VIMHOME"
cd "$VIMHOME"
git submodule update --init

cd ..
ln -s .vim/vimrc .vimrc

echo "vimrc is installed."

#reference by 
#vgod's auto-install.sh

在你想要安裝的地方
wget -O https://raw.github.com/lucas0412/vimrc/master/auto-install.sh|sh 

就安裝完畢了,其中他會做的事情有:
  1. 檢查是某存在必須檔案,避免覆蓋過去(~/.vimrc ~/.vim ~/.vim/vimrc)
  2. 下載並且建立repo上的~/.vim資料夾
  3. 從設定好的modules中尋找plug-in來源,初始化並且更新
  4. 將~/.vim/vimrc建立捷徑到~/.vimrc(方便以後更新可以一起更新)
  5. 執行完畢~
當然這是最基本的,日後可以根據需要的修改把他寫到這裡面,希望對大家有幫助~

2011年12月15日 星期四

YouTube你的熱情和直覺:YouTube創辦人陳士駿的創業人生

    前幾天跟小龍在聊天,聊到了彼此的近況,也說最近自己在看了哪些書,聊著聊著,他就推薦了我這本書,當天晚上就衝到金石堂買了一本回來看,只能說自己真的很衝動XD。
    書中其實不太像是一種很偉大的自傳,比較像是一種矽谷創業家、一個工程師的自白,他很輕描淡寫他在YouTube的創業過程中的所有事情,包含當初衝動的休學、快速的賣掉了YouTube、甚至談起了自己連結婚都決定的很快。陳士駿(YouTube創辦人之一)是典型的矽谷工程師,對於新的技術的狂熱,和創業的衝動,他形容當初本也想把學業結束才跑到矽谷,但是矽谷彷彿有著某種聲音在招喚著他,使得他最後還是休學前往矽谷,而他也喜歡草創時的YouTube,那種小但是高效率的架構,甚至在被Google合併之後,還會有人問起「當初一間不到60人的小公司,如何勝過擁有高水平人才的GoogleVideo?」
    或許很多時候就是憑藉著一種熱情和衝動,才可以創造出這麼璀璨的公司和結果,書後他分享了幾點創業新手一點訣:
  • 擁有志同道合的創業夥伴非常重要,創業前先想想你的人脈存著。
  • 創業很少第一個點子就能挖到金礦,不要害怕失敗。
  • 做產品時要有愛,也要充滿對技術創新的激情。
  • 有衝勁的創業小團隊往往可以抵上大公司(我想這裡就是指Google吧XD)
  • 培養自己分析和理解趨勢的眼光,對未來的想像力決定你的成敗。
  • 新聞天天有,搞清楚事件背後的關聯,往往意味著意想不到的機會。
很推薦大家這本書,雖然他有沒有曲折離奇的故事,但是故事很寫實的道出了一個朝著夢想努力人的生命過程和想法,勇敢追求自己夢想的衝勁,最後書本後有一句話我很喜歡-

無聊是巨大的浪費


期待自己能找出生命中真正喜歡、而且很重要的事情去一直努力!

2011年10月3日 星期一

所謂成長

轉錄好文那些我希望我能在大四前就能體悟的事

--

網路上類似的文章很多,人生苦短,總是會在時間過後顯現出自己對於時間揮霍的不滿足。

可是人生就是這樣,就像五月天-一顆蘋果歌詞
「時間如果可以倒流,我想我還是會卯起來蹉跎。」

人生中不外乎如此~

可是,

在這些歲月中,自己成長了多少?


成長是什麼?
『幹!你不要以為成長就是那種對社會期望屈服的狗屁!』,先說在先,成長就是成長,跟屈服一點關係都沒。
在某個時間點,你回頭看過去的自己,你心裡會有那麼點青澀,那麼點對當時的情節不好意思,臉上泛起了一點點的笑容,然後大口吸著正當下的空氣,你對自己說:『我終於懂了』。
這就是成長。一種甜孜孜的感覺。
我二十九歲,我很慶幸我很能享受很多大大小小的成長時刻,因為每一個成長時刻,都會把我帶到不同的境界。而最重要的事情是,我們必須知道,那樣的甜蜜密的成長時刻,是要用很多的嘗試,無數的嘗試,甚至是某程度的犧牲,我們才會換得這一份小甜蜜。什麼事情都不做,什麼事情都逃避,那麼我們永遠享受不到這些美麗的時刻。 而更重要的是,這些時刻,就代表了我們,代表了我們故事與人生。
『這個社會就是這樣子阿~』,然後抽著一口菸… 這並不是成長,這是屈服。

我們在成長的過程中很痛苦,總是逼的我們不得不捨棄什麼,
從小的夢想、想做的事情、拯救世界的熱血,

雖然到最後你會說那些都是年輕不懂事,但是你千萬不要露出一臉被社會屈服的樣子,
仍然要對自己和這個世界抱持著一點樂血和衝勁,然後用自己的雙手,跟著一群人努力的大幹一票,即使失敗了、受傷了還是可以跟自己說「原來這就是成長呀。」

人呀,最怕跟事情妥協了,因為這樣你就失去了影響這個社會的力量,因為我們不一定要做出些什麼了不起的事情,但是一定要試著去影響自己身邊的人,一點點也好。