Git rebase + stash 小技巧
Posted on August 18, 2013
| 1 minutes
| 101 words
| appleboy
每天打開電腦,第一件事情就是將專案程式碼更新的最新,以便整合同事新開發的功能,免的跟自己寫的功能衝突,所以最常用用的就是 git pull --rebase origin master
,此命令使用 rebase
來取代 merge
程式碼,也可以避免在 log 清單內出現 merge branch master into master
等字樣,但是如果在開發一半進度時,想同時將同事的程式碼先 merge 進來,會發現無法 merge,git 會請你先將 local 修改過的檔案 commit,才可以讓您更新,所以這時候我們可以用 git stash 方式來解決
如果你在 master 分支上,並且想 pull 最新的 commit,可以透過底下指令步驟
1
2
3
| git stash --include-untracked
git pull --rebase origin master
git stash pop
|
[Read More]Cross Site Request Forgery in JS Web Apps and CodeIgniter PHP Framework
Posted on August 15, 2013
| 1 minutes
| 157 words
| appleboy
Cross Site Request Forgery 簡稱 CSRF 是網路上最常見的攻擊方式,由於前端的盛行,現在開發網站偏向前後端拆開,前端使用大量的 Javascript 及 CSS3 效果,後端則是使用 PHP, Ruby, Python… 等,前端如何拿到資料庫資料呢,必需透 過 AJAX 方式來存取,常見的後端 API 會設計成 RESTful (GET/PUT/POST/DELETE),後端為了擋住 CSRF 攻擊,所以限定了特殊 Content-Type Header,前端需要帶 application/json 給後端才可以拿到資料,這只能透過 Ajax requests 才可以做到。
[Read More]Twitter Bootstrap 發佈 3 RC1 版本
Posted on July 30, 2013
| 1 minutes
| 26 words
| appleboy
今天非常開心看到 Twitter 團隊發佈 Bootstrap 3 RC1 版本,Twitter 這次是大動作的改版,連官網都換掉了,如果你還在使用 2.3.2,Twitter 也提供之前的網站版本,讓使用者可以繼續使用,當然希望各開發者可以盡快轉換到 3 RC1,此版本超過 1600 commits 修正。Twitter 也另外開了 Github Organization,如果要找範例的話,可以到 bootstrap-examples 來看看。另外大家最關心的是效能,底下影片介紹 Bootstrap 3 vs Bootstrap 2.3.2 版本差異。
Linode 升級硬碟空間
Posted on July 27, 2013
| 1 minutes
| 8 words
| appleboy
Linode 繼上次升級了硬體及網路設備,這次又來升級硬碟空間,每個方案將空間調到兩倍 Storage Space Doubled!,所以整體方案表格如下:
今年的動作還真多,果然是受到同業 DigitalOcean 的影響,網路虛擬主機還是需要一點競爭比較好。
Coding on workspace of Chrome Developer tools
Posted on July 21, 2013
| 1 minutes
| 107 words
| appleboy
相信網頁設計師並不陌生 Chrome DevTools,善用 DevTools 可以減少很多 Debug 時間,今天來介紹如何在 Chrome 瀏覽器上直接編輯程式,並且存檔,重新整理網頁後便可看到結果。聽到這裡大家一定會很好奇,不就開系統編輯器 (sublime, pspad, vim …) 工具,直接修改 => 存檔 => 重新整理嘛?但是這並不稀奇阿,重點是 Chrome 瀏覽器可以直接支援 線上編輯檔案
,而不是透過系統工具做編輯。這就是 Chrome 強大的地方,今天就來介紹 Chrome workspace。
[Read More]HAproxy 搭配 Nginx port redirect issue
Posted on July 17, 2013
| 1 minutes
| 43 words
| appleboy
HAproxy 是一套高效能分散式系統軟體,後端可搭配 Web 或 SQL 服務,這次在後端搭配 Nginx 出現 port redirect 問題,問題很簡單,在 Haproxy 設定 80 port 對應到內部三台 Nginx 機器,但是 Nginx port 設定 8080,這樣當我們在瀏覽網址如下:
http://aaa.bbb.ccc.ddd/test (請注意,最後沒有 slash 喔) 你會發現 Nginx 將網址轉成
http://aaa.bbb.ccc.ddd:8080/test/ 為了避免 Nginx 自動將 port 加入到網址列,我們可以透過設定 port_in_redirect,Nginx 預設將此設定為 On,所以將此設定為 off,並且重新啟動 Nginx 即可
port_in_redirect off;
CodeIgniter 尋找新東家
Posted on July 10, 2013
| 1 minutes
| 53 words
| appleboy
很高興看到 CodeIgniter 出了 2.1.4 版本了,距離上個版本大約 9 個月,但是這次的 Release 只針對 Security 做改善,可以參考 Change Log。然而在今天看到 Ellislab 宣佈找尋 CodeIgniter 新東家,也就是官網不再維護此 Project,希望有新的團隊或公司可以接手,繼續讓 CodeIgniter 發揚光大,在 GitHub 上的 PHP Language 排名上,CodeIgniter 幾乎榜上有名,討論活躍度也是非常高的,但是公司就是找不到任何 Business Model 來支撐整個 Project 維護成本。其實觀察幾年下來,本來寫 CodeIgniter 核心人物都漸漸不在了,像是 @Philsturgeon 自己創了 Fuel PHP Framework,現在似乎也沒在參與此 Project?CodeIgniter 最後都是由 @narfbg 來 maintain 以及開發新功能,世界各地的 Pull Request 也都是由他負責審核並且參與討論,但是一個人還是無法負擔這麼多事情阿,所以現在 CodeIgniter 3.0 還是生不出來。最後希望還是有人可以接手 CodeIgniter,很期待 3.0 出來的說,都已經做了一半以上了,不要放棄阿。
CSS 垂直置中解法
Posted on July 4, 2013
| 1 minutes
| 178 words
| appleboy
相信大家在 Google 可以找到很多解法,這幾天在 Facebook 發現更精彩的解決方式,就是用 CSS:before 跟 inline-block,底下提供範例:
html 程式碼
1
2
3
4
5
6
7
8
9
10
11
12
| <!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<div class="ot">
<div class="wrapper"></div>
</div>
</body>
</html>
|
[Read More]PHP 5.5.0 Release note: support Zend OPcache
Posted on June 25, 2013
| 4 minutes
| 849 words
| appleboy

PHP 5.5.0 在上週 20 號正式 Release,也看到 PHP 官網終於改版了,新的版面看起來比較清爽,想嘗試新版面的朋友們,可以點選官網最上面鎖提示的 Bar,如果覺得新版面不是很好看,也可以切回去舊版。本篇來介紹 PHP 5.5.0 有哪些新 Feature。
新增 generators and coroutines 功能
Generators 提供了最簡單的寫法來實做 iterators,而不需要實做 Class 去實做 Iterator 介面,generators function 就跟一般的 PHP function 一樣,只是多了 yield 這 keyword,簡單舉個例子
1
2
3
4
5
6
7
8
9
10
11
12
13
| <?php
function gen_one_to_three() {
for ($i = 1; $i <= 3; $i++) {
// Note that $i is preserved between yields.
yield $i;
}
}
$generator = gen_one_to_three();
foreach ($generator as $value) {
echo "$value\n";
}
?>
|
[Read More]How to install Gearman on Ubuntu or Debian with MySQL 安裝測試篇
Posted on June 13, 2013
| 3 minutes
| 454 words
| appleboy
Gearman 可以在背景幫忙處理繁瑣的工作,例如壓縮影片、處理縮圖、發送認證信…等,這次不會提到太多 Gearman 介紹,如果想瞭解 Gearman 可以參考小鐵兄寫的 Gearman 心得,此篇會筆記如何在 Ubuntu or Debian 安裝 Gearman 搭配 MySQL 服務,當然如果你不是使用 MySQL,也可以另外搭配 Memcached 或 SQLite 都可以
[Read More]