RubyConf Taiwan 2012 CFP&CFS

To English readers:

Hi, I’m the organizer of RubyConf Taiwan. Please see Call For Presentations and Call For Sponsors for more information.

Our invited speaker this year includes Yukihiro Matsumoto (Ruby creator), Koichi Sasada (Ruby 1.9 VM YARV author), Akira Matsuda (kaminari author, Rails Contributor, Ruby core team), Koan-Sin Tan (famous open source developer in Taiwan).

今年的 RubyConf Taiwan 已經開始籌辦一陣子了,才想到自己部落格還沒有貼這則消息… XD 日期是 2012/12/7-8,跟去年一樣是週五周六,場地則改在天母會議中心

詳細的公告,請詳見 Ruby Taiwan 部落格的 Call For PresentationsCall For Sponsors。這週末就截止徵稿囉,要投要快。

大家期待的邀請講者部分,名單有:

* Yukihiro Matsumoto (matz): Ruby 程式語言發明人
* Koichi Sasada: Ruby 1.9 VM (YARV)的作者
* Akira Matsuda: kaminari 的作者、日本最活躍的 Rails Contributor、Ruby core team
* Koan-Sin Tan (Freedom): 台灣開放源碼社群的資深前輩,會來跟我們談跟 Ruby 淵源很深的 Smalltalk

最快九月底,最慢下個月就會開放報名,敬請期待。

從 Scrum 到 Kanban: 為什麼 Scrum 不適合 Lean Startup

首先感謝 AgileCommunity.tw 辦了這場活動,大家討論的非常熱烈,分享了各自的團隊經驗,真是愉快的活動。

我投的題目是「從 Scrum 到 Kanban: 為什麼 Scrum 不適合 Lean Startup」,這個問題最早是我剛看 Lean Startup 時的小感想,加上被喲哪桑和自己的團隊施行 Scrum 所到碰到的問題和經驗。到底 Scrum 這麼多人推薦和著書的敏捷方法,會不會有什麼不一定適用的地方。所幸接著看到 Kanban and Scrum 這本書,作者將 Kanban 和 Scrum 做了比較,例如同一個 Limited WIP 的概念,不同工具只不過是用不同手法表現出來:Scrum 用 Sprint 固定開發週期,Kanban 用每一個流程狀態來限制。當我讀到這裡時,就體會到了工具只是工具,勿以器馭心。這又才解答了不少我對開發方法論的疑問。

所以我們團隊開始從 Scrum 改用 Kanban 了嗎? 目前算是某種混合的狀態吧,不是說用 Kanban 就要把 Scrum 的東西通通丟掉,就不斷地持續調整中:用 Kanban 增加了施工前和施工後的產品開發流程,並開始加上 WIP 限制。另一方面,則減少了 Sprint 固定開發週期的要求。

p.s. 「勿以器馭心」是宮本武藏的名言,出自簡體版的 Kanban and Scrum 翻譯

Mac 推薦軟體 (2012)

好像每年都整理一次的推薦清單,最近趁換了一台 MBA + Lion 就全部重灌了。跟去年的推薦軟體相比又拿掉了一些 App,有一些功能 Mac 10.8 內建了(可以跟 iPhone 同步的Notes, 訊息中心…etc)。

  • Yahoo! KeyKey: 必備的中文輸入法,最近還有看到小麥輸入法,但是我不知道差在哪裡 XD
  • Chrome: 慣用的預設瀏覽器
  • Firefox: 有許多好用的網頁設計 Plugins,例如 Firebug、YSlow、Web Developer 等。
  • Sparrow*: 取代內建的 Mail 軟體。可惜公司被 Google 併購了,可能不太會更新了 :(
  • SubEthaEdit * 協同編輯器,若同事也都用 Mac 超級推薦,可以多人同時(即時)編輯一份文件。我用來當做一般文字編輯非常順手。
  • Mou: Markdown 所見即所得編輯器,寫長篇文章用。
  • iWork* : 包含投影片 Keynote、試算表 Numbers、文件編輯 Pages 三套軟體,也可以拿來開 Microsoft Excel、Word 也大多都可以順利開出來。
  • LittlleSnapper*: 抓網頁或螢幕的 screenshot 並加以管理、加註。
  • Skitch: 螢幕抓圖工具,更棒的這可以直接網路分享,非常方便可以當做溝通工具。
  • VMware Fusion*: 可以在 Mac 上跑其他作業系統,最常見的被迫需求情境是 Windows + IE 瀏覽器。
  • LaunchBar* : 鍵盤快速啟動應用程式的好物。不想花錢的話可以試試 QuickSilver
  • VLC 放影片
  • Pixelmator*: 影像編輯軟體,功能類似 Photoshop,但不用這麼貴… XD
  • Adobe Reader
  • KKBOX*: 聽正版音樂,有出 Mac 版就甘心。
  • Moom : 透過快速鍵切割視窗畫面,可以很方便地安排左右視窗,適合大螢幕
  • Flux: 根據時間自動調整螢幕亮度
  • OmniDiskSweeper: 磁碟清理工具,可以很方便地找出到底哪個檔案跟目錄是最佔空間
  • OmniGraffle*: 畫 Wireframe 超棒,可以搭配 YUI Stencil KitWireframe PaletteUX TemplateMore
  • Snapz Pro X* screencast 錄影

網路相關

  • Nally: Mac 上超棒的 BBS 軟體
  • Panic Transmit*: Mac 上超棒的FTP軟體,好操作介面佳,還支援 Amazon S3。
  • Twitter: Twitter 的桌面軟體,我會特別需要桌面版的 Twitter 軟體是因為我有多個帳號需求。
  • Skype: 喂喂,工作用。搭配 without the whitespace 服用
  • Colloquy: 要上 IRC 的時候用
  • Dropbox
  • WiFi Explorer: 可以觀察無線網路的訊號強度跟使用頻段,你可以將你的基地台設到干擾較小的頻段唷

程式開發

  • iTerm2: 支援多 Tab 的 Terminal,我主要拿來做 SSH 登入
  • XCode: 開發 iOS 用
  • Eclipse: 開發 Android 用
  • Homebrew: 套件管理工具,詳見這篇文章,我拿來裝 git, wget, mysql, redis, postgresql, rabbitmq, imagemagick, apple-gcc42 等等
  • Sublime Text 2*: 拿來取代 Textmate 了,寫程式用的編輯器。最近也想試試 MacVIM 啦。
  • GitX: Git GUI (有個 Fork 版有 sidebar 不錯)
  • Sequel Pro: MySQL 的 GUI
  • Navicat* : 比較專業的 MySQL+PostgreSQL+SQLite GUI,覺得最方便的是支援 SSH 登入遠端操作資料庫(畢竟很少情況會開 3306 Port 可以遠端連線),另外處理編碼也很聰明,印象中很少看到出現亂碼。如果你有舊版本MySQL的編碼問題無法順利dump出來,可以試試。

Dashboard

(加 * 的是付費軟體)

個人網站(部落格)十周年紀念

Update(2012/8/3): 這一篇早就寫好,但是存成 Draft 忘記貼出來…XD

十年前的今天(2002/7/24),那時候是大一升大二的暑假,我用了 PHP4 架起了自己的留言板,那時候只是隨便記錄一些碎碎念(tweet?),還允許大家來留言板留言(塗鴉牆?),三年後(2005/9/9)才換成 WordPress 至今,很幸運地,所有文字都還保留著(有丟失過一些使用者留言)。

2003~2010 每年大約寫10萬到15萬字,除了2006有45萬字,那一年寫了一大堆讀書心得。去年2011起產量大大銳減,像今年到現在才不到3萬字。可能是因為自己老想準備的多一點再寫,結果很多東西千頭萬緒,一拖再拖結果什麼也沒寫成。另一個原因大概是 Twitter 吧,不少心得都透過 Twitter 抒發了 XD

「發表是最好的記憶」,期許自己努力多寫點囉。

Git rebase 和 merge 合併操作示範錄影

昨天的 Git 教學投影片 還蠻多人按贊分享的,謝謝大家。不過其中少了重要的 live demo 覺得有點可惜,所以來把其中最有趣的一段錄下來好了。第一次錄影加聲音發現還蠻緊張的,獻醜哩。

這是先用 rebase 整理 commit history (包括修改訊息、修改內容、刪除、拆開、新增和調換commit順序),然後再進行 merge 的示範。但誠如我投影片 p117~p118 所說,這是一種追求完美潔癖龜毛的作法,但是看到最後的 commits 線圖這麼漂亮,就覺得值得啦,而且中間的過程很有趣不是嗎? XD (除非一直發生 rebase conflict 情況啦,那就不好玩了,請量力而為 :p)

情境是我們想把 feature/forum 這個 branch 合併進主幹 master,這是合併前:

以下是直接在 master branch 做 merge feature/forum 的合併結果。你會發現 feature/forum 與 feature/chatroom 這兩個分支出現交疊的情況,當合併的分支一多,線圖就容易變得雜亂:

以下是改成用 rebase 整理之後再 merge 的方式,做出漂亮的合併線圖:

ps. 如果有人想練習的話,可以 fork sandbox 這個專案(純粹練習git,是個亂寫的rails專案)。

ps. rebase 也可以參考鴨七的這篇文章

Git 教育訓練課程投影片

Update(7/21): 我把 p117 rebase 和 merge 操作的示範 錄成影片啦 :)

這是最近準備的 Git 教育訓練課程,加上 live demo (一般操作、merge、reset、rebase等等示範) 時間大概是三個小時。其內容主要基於去年的演講,新增了Git內部原理(p36~51)、分支模式(p143)和更多 Tips(p168)內容等等,總頁數從117成長到198… XD

再次感謝 schacon 公開的 OmniGraffle Diagrams 圖檔讓我可以改來用 :>