在 CentOS 上面安裝 Ruby 環境
Posted on October 13, 2011
| 1 minutes
| 176 words
| appleboy
目前開發網站都傾向於用
Compass 這套 CSS Framework 來 develop,開發之前必須把環境先弄好,就是要有 Ruby 套件才可以安裝 Compass,網路上的教學幾乎都在是 Ubuntu 底下用 apt-get 方式來安裝,其實相當方便,但是 Fedora 或 CentOS 就是要用 yum 方式來安裝,這次碰到 CentOS 竟然 yum search git 出來的結果是空的,所以決定全部都透過 tar 的方式來安裝全部套件了。由於 Fedora 幾乎都可以找到套件,但是碰到 rubygems 需要用到 ruby 1.8.7 以上版本,所以還是乖乖的用 tar 方式吧。 大家可以試試看透過底下 yum 方式安裝:
yum install -y ruby ruby-devel rubygems
雖然 Fedora 透過上面可以安裝成功,可是 ruby 跟 rubygems 的版本根本是...太舊了吧 ...
[Read More]AWS 機器上 duplicated RPM 問題
Posted on October 7, 2011
| 1 minutes
| 140 words
| appleboy
昨天幫忙升級全部
AWS RPM 套件,升級過程本來很順利,不過不知道哪一個 RPM 造成 SSH 全面斷線,接著我直接到 AWS Management Console 把機器 restart,登入系統之後下 yum update,直接給我噴出底下錯誤訊息
---> Package zlib.i686 0:1.2.3-24.7.amzn1 will be updated
---> Package zlib.i686 0:1.2.3-25.8.amzn1 will be an update
--> Finished Dependency Resolution
You could try using --skip-broken to work around the problem
** Found 155 pre-existing rpmdb problem(s), 'yum check' output follows:
audit-libs-2.1-5.15.amzn1.x86_64 is a duplicate with audit-libs-2.0.4-1.14.amzn1.x86_64
authconfig-6.1.12-5.14.amzn1.x86_64 is a duplicate with authconfig-6.1.4-6.13.amzn1.x86_64
basesystem-10.0-4.9.amzn1.noarch is a duplicate with basesystem-10.0-4.8.amzn1.noarch
bash-4.1.2-8.14.amzn1.x86_64 is a duplicate with bash-4.1.2-3.13.amzn1.x86_64
binutils-2.20.51.0.2-5.20.17.amzn1.x86_64 is a duplicate with binutils-2.20.51.0.2-5.12.15.amzn1.x86_64
cloud-init-0.5.15-16.amzn1.noarch is a duplicate with cloud-init-0.5.15-8.amzn1.noarch
coreutils-8.4-13.13.amzn1.x86_64 is a duplicate with coreutils-8.4-9.12.amzn1.x86_64
coreutils-libs-8.4-13.13.amzn1.x86_64 is a duplicate with coreutils-libs-8.4-9.12.amzn1.x86_64
cpp-4.4.5-6.35.amzn1.x86_64 is a duplicate with cpp-4.4.4-13.33.amzn1.x86_64
[Read More]在 Windows 底下安裝 Compass CSS Authoring Framework
Posted on October 5, 2011
| 1 minutes
| 119 words
| appleboy
Compass 是一套 base on Sass Language 的一套 CSS Framework,它提供了豐富的 CSS3 原件,讓您可以加速開發 CSS,也繼承 Sass Language 的開發方式,支援 variables, mixins, selector inheritance…等,今天就來介紹如何在 Windows 底下快速安裝開發環境。如果想更瞭解 Sass 可以參考之前的文章: 加速開發 CSS 工具: Sass。
安裝步驟 (Install Compass) 在安裝 Compass 之前,您必須要先安裝
Ruby 開發環境,在 Ubuntu 或 Debian 底下可以透過 apt 的方式安裝:
$ sudo apt-get install ruby1.9.1-full
如果你想裝 ruby 1.8 可以透過底下:
$ sudo apt-get install ruby-full
[Read More]Bitbucket 開始支援 Git Repository
Posted on October 4, 2011
| 1 minutes
| 46 words
| appleboy
很高興剛剛收到
Bitbucket 寄來一封會員信,標題非常吸引大家的注意,那就是 Bitbucket now rocks Git.,是的,你沒看錯,Bitbucket 現在開始支援 Git repository,不再只有 Mercurial 可以使用,這還不算什麼,Bitbucket 更是推出**無限制免費 private repos for free **,這樣的推出,不知道會有多少 Github 用戶轉移到 Bitbucket 上面,還有另一項主因就是 Unlimited disk space 無限制硬碟容量,不過也許不用高興的太早,Bitbucket 在使用者人數上面有些限制,可以參考 Plans & Pricing,免費方案每個 Repository 只能有5個 User,反觀 Github 並沒有這限制,不過我想這也不是問題,大家可以 Fork 到自己的專案,在 Pull Request 即可。 補充官方網站提供了轉換各大 Source Hosting 工具,目前支援 Github、SourceForge、Google Code、Subversion、Mercurial…等。
版本控制 svn move 移動或更名
Posted on September 27, 2011
| 1 minutes
| 103 words
| appleboy
公司採用 svn 當作版本控制,而我最近在整理 svn 上面全部的 source code。基本上我都會將 git 跟 svn 也一起搭配著用,因為個人比較熟悉 git 的操作方式,然而跟同事討論了專案目錄的架構,進而要把一些目錄轉換大小寫,本來的 App 就改成 app,這個在 git 底下(OS: Linux)操作非常容易,直接 git mv App app,之後看 git status 可以發現底下輸出:
# On branch develop
# Changes to be committed:
# (use "git reset HEAD ..." to unstage)
#
# renamed: nav/hacks.txt -> Nav/hacks.txt
# renamed: nav/moo.fx.js -> Nav/moo.fx.js
# renamed: nav/moo.fx.pack.js -> Nav/moo.fx.pack.js
# renamed: nav/nav.js -> Nav/nav.js
# renamed: nav/prototype.lite.js -> Nav/prototype.lite.js
# renamed: nav/user_guide_menu.
[Read More]Git Submodule 介紹與使用
Posted on September 22, 2011
| 3 minutes
| 505 words
| appleboy
自己用 Git 已經很長一段時間了,沒用過 git submodule 的話真的是對不起自己,今天來筆記 Git Submodule 一些操作步驟及說明。
git Submodule 使用時機
大家在開發新專案的時候,不知道有沒有用到其他專案的程式碼,像是 Web 專案,也許會用到 Blueprintcss CSS Framwork 或者是 Sass,這些專案目前都放在 Github 上面進行維護,以前的作法就是先 git clone 下來,把要的檔案分別複製到自己專案,可是問題來了,如果官方更新了程式碼,那自己的專案如何更新呢?難道是重複步驟把檔案複製到原來地方嗎?這樣會不會太麻煩,這時候就是需要 git submodule 來幫助大家進行程式碼的更新,這樣隨時隨地都可以取得最新的程式碼。補充說明一點,git 目前無法針對單一專案底下的單一檔案或目錄進行 clone,而必須 clone 整個目錄,這點跟 svn 有很大的不同,所以 git 可以建立各個不同的 submodule 來整合成一個大型 Project。換句話說就是: 在您的專案底下,你可以任意將其他人的專案掛載在自己任何目錄底下。
[Read More]安裝 XCache 加速 PHP 執行速度
Posted on September 20, 2011
| 2 minutes
| 349 words
| appleboy

前言
最近 FreeBSD 系統常常會當機,加上 Varnish cache + APC 一直給我出包,所以這次就換了一套加速 PHP 執行的套件 XCache,這是一套由華人所開發的加速器,可以參考篇台灣PHP聯盟論壇所發表 PHP 加速器 - xcache,裡面可以看到這篇裡面就有中文的對話,非常好玩,這次也順便把 PHP 升級到 5.3.8 版本,還有 Varnish 一次升級到 3.0.1 版本。
各家 PHP 加速器
大家都知道目前網路上知名的 PHP 加速器 apc, eaccelerator, phpa, truck-mmcache,這幾套網路上資料很多,大家都可以試著玩看看,尤其是前面兩套 APC 及 eaccelerator,phpa 目前已經不再維護了,truck-mmcache 版本好像也沒啥在更新,距離上次更新是 2009-07-17,Xcache 作者研究 truck-mmcache 跟 APC 已經很長的時間,他發現 APC 的程式碼比起 truck-mmcache 還要簡單更容易瞭解,所以大家也可以研究 APC 相關程式碼。
[Read More]Linode VPS Inbound 流量將不再收費
Posted on September 11, 2011
| 1 minutes
| 26 words
| appleboy
如果有在玩虛擬主機的朋友們,這是一項非常大的消息(
Linode Reduces Transfer Pricing),那就是從**2011年9月1日開始,只要是流入 Linode VPS 或者是 NodeBalancer 伺服器的流量都是免費**,至於流出流量呢?只要是超過限制的 transfer pool 都是以 $0.10/GB 來計費,這相當便宜阿,Linode 看的出來蠻用心的,可以租一台當作 backup server 也不賴,價格來說也不會很貴啦,最小 VPS 每個月流量給大 200G/month,其實也用不太完,但是網路的速度,可能就要評估看看,不要依賴 Ping 的 ttl 值,以直接下載檔案速度來觀看也許會比較適合喔。
CodeIgniter@TW 成立 IRC 頻道 #codeigniter.tw
Posted on September 2, 2011
| 1 minutes
| 43 words
| appleboy
為了方便大家可以線上討論
CodeIgniter 技術,我在 Freenode 開了一個 IRC 聊天室,頻道是 #codeigniter.tw,歡迎大家可以上來聊聊天,當然在台灣官方首頁也加入了 Web 版的 IRC 聊天室,可以透過這網址進入,如果您是在 Windows 環境可以下載 XChat 軟體來上聊天室,Linux 底下可以透過 screen + irc 指令掛網。 另外講一下 CodeIgniter 最近的消息,那就是很高興官方成功轉換到 Github 上面進行版本控制,目前在 PHP Language 也爬升到第10名,第一名還是 Symfony,CodeIgniter 其中一位作者 Phil Sturgeon 與其他作者推出一套 Fuel PHP Framework 也是大受歡迎,排在 CodeIgniter 後面,真是讚。 不多說了,大家快來聊天吧 /join #codeigniter.tw
git cherry-pick 處理專案 pull request
Posted on August 27, 2011
| 1 minutes
| 101 words
| appleboy
很高興最近有些網路上朋友想要加入翻譯 CodeIgniter 的計畫,本人在 2009 年開啟這計畫時,就打算用當時蠻熱門的 git 來控管翻譯的進度,然而也選用了 github 來當作 Web 平台,可是大家對於入門 git 有很大的挫折,其實學習 git 沒有想像中這麼難,想要貢獻自己的程式碼都可以在 github 找到教學步驟,2009 年那時候 github 文件還尚未像現在這麼完整,入門之前可以先閱讀 git help 教學,貢獻程式碼之前可以先 Fork 專案,接著進行 Pull request,這些都是透過 Web 介面就可以做到了,但是大家在 pull request 之前記得先將專案程式碼更新,以及 pull request 時選取需要的 commit 阿,先看一個範例,有朋友發了一個 XML-RPC Class 翻譯的 Chinese Pull request 來,但是大家有沒有看到內容,裡面還包含了先前 Html Table 翻譯,所以這時候我就必須用 git cherry-pick 來挑選需要的 commit。
git cherry-pick 使用方法
我們如何 Merge 別人的 pull request,首先新增 remote add branch:
# gname 可以自己自訂
git remote add gname https://github.com/gname/PHP-CodeIgniter-Framework-Taiwan.git
# fetch 程式碼下來
git fetch gname
# 選取您要合併的 commit
# -n 代表多個 commit
git cherry-pick -n bf0246c8 ab3f4943
# 可以修改 commit log 內容
git commit -c bf0246c8
這樣就可以不用 merge 全部的內容,也相當方便 ^^