RubyConf Taiwan 2011 開跑

終於公告出來了,時間是 2011/8/26-27(週五週六),地點是目前開源社群中最夯的中央研究院人文館會議廳(跟去年一樣的場地),感謝OSSF的協助。

很多人問第一天是週五喔? 對,第一天週五是給初學者的 Tutorial 課程,第二天週六才是主要議程。到時候報名可以只報單獨一天。

公告內容請詳見 Ruby Taiwan 部落格的 Call For PresentationsCall For Sponsors

至於大家期待的國外邀請講者部分,目前已經確定了兩位:一位來自 Ruby Core Team,會來講即將在今年暑假釋出的 Ruby 1.9.3,另一位則是 Ruby 社群中非常知名的 Independent tech publisher。

雖然 CFP 截稿日是 7/1,但是我想應該會提早六月就開放報名,敬請期待 :)

ps. 為什麼今年的RubyConf Taiwan官網還沒有出來呢? 我們的網頁設計贊助Even給我了上面這張圖說明了他現在很忙啊 XD

我的 Git 偏好設定

1. 讓 Command Line 指令列顯示目前處在哪一個 Git Branch 分支,最早是在 RGBA 看到這一招,非常方便。另外我最近看到一個點子是顯示從上一次 commit 之後過了多久時間,這可以提醒你是不是該 commit 了 XD

請修改家目錄的 ~/.bash_profile 檔案 (我是用 Bash)。

結果如下,各位可以看到目前處在 master 分支,並且這個專案已經過了 1821 個小時沒有 commit 了…. :p

2. 安裝 Git 的 Bash autocompletion,這樣按 tab 就會有自動完成的效果,它甚至包括 git checkout 時都可以抓到你的 branch 名稱。這裡我用 Homebrew 來安裝 bash-completion,這套件其實包括很多 autocompletion script,你可以去 /usr/local/etc/bash_completion.d 這個目錄找找看。

brew install bash-completion
cp /usr/local/etc/bash_completion.d/git-completion.bash ~/.git-bash-completion.sh

編輯 ~/.bash_profile 加入

[ -f ~/.git-bash-completion.sh ] && . ~/.git-bash-completion.sh

3. 打開 Git 的 color 顏色設定,這樣 Git 指令的輸出結果才會加上顏色,像是 git status 等:

git config --global color.ui true

4. 設定你偏好的文字編輯器和 diff 工具

git config --global core.editor
git config --global merge.tool opendiff

5. 最後,我個人喜歡以下的 alias:

git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch

這樣只要輸入 git st 就是 git status 了。

FYI,以上 git 設定檔的位置在 ~/.gitconfig,你也可以直接修改這個檔案。

Watchr 不只是 Continuous Testing

Watchr 是一個可以監視檔案變動,然後自動執行特定動作的工具。 我的 Rails3 App Template (+JQuery+RSpec+Watchr) 一文中提到它最常見的用途就是用來做 Continuous Testing,只要檔案一存檔,就自動執行對應的測試。但是它也可以有其他用途,就看你怎麼發揮。

例如,我就拿來寫書。我的 Rails3 一書 是用 Jekyll 搭配 Markdown 語法寫的。因此每次檔案編輯完,都必須執行 jekyll 指令才會產生 HTML,接著還得重新整理一下瀏覽器才會看到最後的結果 :(

透過 watchrautorefresh,我就可以達成當我修改完存檔,就會自動執行 jekyll 產生 HTML,並且重新整理瀏覽器頁面。非常好用。用 watchr 執行以下的 script 就會監視目錄下的 .markdown 檔案,一有變更就執行 jekyll 和 autorefresh。


watch('.*\.markdown') do |md|
  puts "#{md} is updated!"
  
  system("jekyll")
  system('autorefresh rails3book')
end

也有人用 Watchr 來 自動上傳 templates 檔案到 Shopify

各位讀者還有什麼應用嗎? 歡迎分享。

RSpec 演講投影片和示範影片

Update: 主辦單位放出來的影片

釋出今天在 OSDC.TW 的演講投影片,其中有預錄的 Live Demo(偽) 三段不在 PDF 裡面,也上傳到 Viemo 了。

Live demo 的影片連結是:

Git and Github 演講投影片(2011)

Update(2012/7): 有 2012 年新版內容。

釋出明天在Facebook 軟體開發團隊工具心得分享要演講的投影片。如果你是 Git 初學者,建議可以從我之前的文章看起。

我的 Git 系列文章:

其他很棒的英文網頁:

我的 Rails3 App Template (+JQuery+RSpec+Watchr)

Update(2011/3): 有網友問到底有哪些方法可以用,請參考 Rails::Generators::ActionsThor::Actions

Rails 的 App Template 功能可以快速初始化一個客製化的 Rails 專案,例如,如果你想使用我的特製版本,只要一行指令就可以產生出特製的 Rails3 專案:

git clone git://github.com/ihower/rails3-app-template.git
rails new your_project_name -TJ -d mysql -m rails3-app-template/rails3.rb

其中 -TJ 的意思是省略 prototype.js 和 test-unit 檔案的產生(我會用 JQuery 和 RSpec 取代),-d 的意思是使用 MySQL 設定。

接下來讓我來介紹一下 rails3-app-template/rails3.rb 在做什麼? 這些是我目前初始一個專案的必備初始動作,也非常推薦給你使用。

閱讀全文〈我的 Rails3 App Template (+JQuery+RSpec+Watchr)〉