Theme NexT works best with JavaScript enabled
0%

開頭先講個題外話:為了傳這篇文章內的照片,在寫之前還花了時間寫 Imege 這個工具來放圖,只是不知道什麼時候會被打下來…… XD

從一開始就很期待這次的RubyConf Taiwan,主要跟大多數人一樣,都很希望能見到matz大神一面,只是為了配合matz,所以舉辦的時間點對我來說是有點晚的,不過看到這次除了matzさん外,還有一堆國外的朋友們會來,加上這次的talk很多與Ruby Implementaion相關的議題,不管怎樣都得排除萬難啊 :p

這次RubyConf Taiwan還多了第一天晚上的Official Party,當初想說認識的朋友應該都會參與,結果去到現場一問之下,發現會去的寥寥可數,害我原本還很擔心不善social的我是不是該臨陣脫逃,就結果論來說似乎是多慮了。(詳細的情況就請繼續讀下去吧:D)

Read more »

其實之前剛換MBA時,就想來作個如何建構目前工作環境的筆記,以便日後如果有要重新設定時可以省去一些查資料的時間。結果沒想到被OSX內建的轉移工具陰到,時間都花在試著把專題code找回來,雖說最後還是功敗垂成……

直到前幾天在COSCUP上,遇到一位朋友剛買了新款MBA,問到要怎麼使用時,才想到積了這篇文章還沒寫,擇期不如撞日,就來寫吧。XD

XCode Command-line tools

首先,當然要先來裝包含了LLVM、Make等開發工具的command-line tools了。

有兩個方法:

  1. 於Mac App Store(MAS)安裝XCode,再開啟XCode,進入Preferences→Downloads,在Components tab中按下Command Line Tools該行的Install按鈕便會自動下載安裝。(當然,會詢問root密碼)
  2. 直接到 Apple Developer 下載安裝。

iTerm 2

就直接到 這裡 下載即可。

Oh-my-zsh

自從看了 vgod大神的推薦 之後,就全面改用zsh作為shell的首選。

而在oh-my-zsh這個包了許多功能的project出現之後,更是不用花時間去找.zshrc以及怎麼自行設定、擴充zsh,只要安裝之後就有內建許多功能可用,像是git、homebrew、rvm……等。

安裝也算簡單,只要一行指令即可:

1
curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh

完成之後,就可以來編輯~/.zshrc來符合自己的使用習慣了,以下是我的一些設定:

1
2
3
4
5
#使用bira主題,更多的主題可參考 https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="bira"

#使用哪些plugins,可到~/.oh-my-zsh/custom/plugins/查看目前有安裝的plugins
plugins=(git brew rake ruby rvm gem osx github textmate)

最後別忘到iTerm 2的Preferences中,去更改Profile的預設shell為/bin/zsh。

homebrew

homebrew是OSX上的套件管理系統,不同於另外一套MacPorts,homebrew並沒有將環境分離開,而是直接裝於/usr/local/Cellar,並連結至/usr/local/bin中。

安裝homebrew與oh-my-zsh相同,一樣只要一行搞定:

1
ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go)

使用方法也不難,以下是幾個常用指令:

1
2
3
4
5
6
7
brew doctor #檢查目前系統環境可能會有問題的地方
brew update #升級homebrew本身以及套件庫
brew search #搜尋套件
brew install [name] #安裝套件
brew remove [name] #移除套件
brew outdated #列出有新版的套件
brew upgrade [name] #升級上步所列出的套件,或是指定的套件

rvm

Ruby developer必備的環境管理工具。

安裝…… 同樣地簡單,現在真的很難找到不好安裝的工具的,至少在OSX上 :p

1
curl -L https://get.rvm.io | bash -s stable

接著在~/.zshrc下加入這幾行:

1
2
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"  # This loads RVM
PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting

其餘的用法,可以參考高見龍前輩的 RVM and Gemsets 一文。

這邊列出的是我之前遇到問題時所寫的解決文章,供大家參考 :D

  1. Failed to Build Gem Native Extension Using Rvm on Lion ,這邊我比較懶,是直接link llvm-gcc到gcc,還沒有遇到過問題。如果打算用真正的gcc,請參考 [homebrew-dupes] (https://github.com/Homebrew/homebrew-dupes) 。
  2. X11 on OSX 10.8 Mountain Lion

本文『可能』會不定期更新,如果有任何疑問或內文有錯誤,還請提醒。 :p

這應該算是我遇到的第一個OSX 10.8相容性上的問題?

在跑某個用到MiniMagick gem的ruby script時,發生了下面這個錯誤:

1
Failed to manipulate with MiniMagick, maybe it is not an image?

稍微Google了一下,找到的解法是先把當初用homebrew裝的ImageMagick移除後重新安裝,不過就在安裝的時候,又發生了以下的錯誤:

1
2
3
4
5
X11 is not installed.
You don't have X11 installed as part of your OS X installation.
This is not required for all formulae, but is expected by some.
You can download the latest version of XQuartz from:
https://xquartz.macosforge.org

顧文思義,就是沒有安裝X11,但原本在10.7(與之前的版本)時都沒有出現啊?

原來是因為在10.8 Mountain Lion中,X11被Apple移除了,所以得用XQuartz來取代。

安裝方式很簡單,只要上XQuartz官網,下載目前最新的2.7.2(第一個支援10.8 MT的版本),mount後再執行安裝檔即可。

裝完後,重新登入便可以透過homebrew正常編譯ImageMagick了。

在這個禮拜三(2012/05/09),我們在中正大學資工系館的EA104教室舉辦了TechWed@CCU第一次的正式聚會,感謝各路朋友們的協助 :D

原本是打算辦在校內的湖畔咖啡,可惜當天晚上已有人預約使用投影機,不然在咖啡廳辦感覺才比較有技術聚會的感覺啊XD!

這次由於沒有人投議題,所以最後還是由我來負責活動前半段的講座。而我所選定的題目,則是不少人很感興趣的Web開發。

Web開發的相關技術其實在經過多年的發展,都已相當地成熟,但也因為如此,它們上頭所背負的一些歷史包袱經常成為拖累開發速度的元兇。所幸,隨著新一代的開發思維而來的新一代技術,能讓我們不受限於這些阻礙,加快開發的速度、減少出錯的可能以及降低維護的成本,本次的talk便是以一個簡單的web app作為範例,介紹這些技術。(好吧,我真的不太會打概要……XD)

以下是本次talk的一些資料:

錄影


Watch live video from alan77916 on Justin.tv

投影片

Read more »

這是在幫s2sync加link box時所遇到的問題。

取得URL title時是直接用get方式呼叫,因此在傳URL之前,得先escape URL。
而escape的動作就於JavaScript的部份執行,又因為得將裡頭的斜線escape掉,所以這裡棄encodeURI()用encodeURIComponent()。

在local端利用WEBrick測試時一切正常,但是deploy到使用nginx+passenger的WebFaction上時卻完全失靈,看了error log之後,發現URL並沒有被escape掉?
進一步測試,確定JavaScript的地方是沒有問題的,所以應該是因為環境設定的不同所造成的。

在問過谷歌大神之後,終於找到問題的所在,原來是nginx會自動將escape過的URL還原回去,內部的機制我不太清楚,還請知道的前輩們補充。

有鑑於上面的原因,我只得用治標不治本的方式來解決這個問題。
方法也很簡單,就是將%也escape成%25就行了。