Friday, July 27, 2012

How to use "git reset"

I found I can use "git reset" when I want to store my changes to the remote git repository temporarily.

Here is a few steps to do that: (assume we are in the "develop" branch now)

a. store
  a.1. git branch temp
  a.2. git checkout temp
  a.3. git commit -m "temporarily changes"
  a.4. git push origin/temp

b. resotre
  b.1 git pull origin/temp
  b.2 git checkout origin/temp
  b.3 git reset origin/develop
  b.4 git push origin :temp # remove the remote temp branch

then, we done! All changes is back to the stages.

Sunday, June 03, 2012

Facebook PHP Optimization

Thursday, May 31, 2012

PHP Benchmarking Tools

1. ab:
2. flood:
3. Web Capacity Analysis Tool:


Sunday, May 13, 2012

Use Event Dispatcher in Symfony2

Just use the code below to get the "event_dispatcher" service, easy!
$eventDispatcher = $this->container->get('event_dispatcher');

Sunday, May 06, 2012

Compile PHP binary with Lua extension on Windolws 7

  1. download and install Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 
  2. download PHP source code (php-5.3.11.tar.bz2) from:
  3. download PHP SDK ( from:
  4. download PHP Dependable libs (deps-5.3-vc9-x86.7z) from:
  5. download PHP PECL Lua extension source code (lua-0.9.4.tgz) from:
  6. download and install Lua 5.1 from
    install Lua at C:\Lua
  7. create a directory at C:\php-sdk, unzip the into this directory
  8. open Microsoft Windows SDK v7.0 CMD Shell
  9. enter those commands below:
    setenv /x86 /win7 /Release
    cd C:\php-sdk
    bin\phpsdk_buildtree.bat php-5.3.11
  10. unzip php-5.3.11.tar.bz2 into C:\php-sdk\php-5.3.11\vc9\x86\php-5.3.11
  11. create a directory at C:\php-sdk\php-5.3.11\vc9\x86\deps, unzip deps-5.3-vc9-x86.7z into this directory
  12. create a directory at C:\php-sdk\php-5.3.11\vc9\x86\pecl, unzip lua-0.9.4.tgz into C:\php-sdk\php-5.3.11\vc9\x86\pecl\lua
  13. back to Microsoft Windows SDK v7.0 CMD Shell, and enter those commands below:
    cd C:\php-sdk\php-5.3.11\vc9\x86\php-5.3.11
    configure --disable-zts --enable-snapshot-build --with-lua=C:\Lua\5.1
    nmake snap
  14. go to the directory C:\php-sdk\php-5.3.11\vc9\x86\php-5.3.11\Release, you can get the PHP Winodows Binaries: and
  15. enjoy to use the binaries!

  1. "ext\calendar\jewish.c(324) : error C2001: newline in constant": open two files: jewish.c and calendar.c, re-save them with UTF-8 encoding.
  2.         cd Release\php-5.4.7
            ..\..\..\..\bin\zip.exe -9 -q -r ..\ .
    The system cannot find the path specified.
            cd ..\..
            cd Release\pecl-5.4.7
            ..\..\..\..\bin\zip.exe -9 -q -r ..\ .
    The system cannot find the path specified.
            cd ..\..
            cd Release\php-test-pack-5.4.7
            ..\..\..\..\bin\zip.exe -9 -q -r ..\ .
    The system cannot find the path specified.
            cd ..\..
            cd Release
            ..\..\..\..\bin\zip.exe -9 -q *.pdb
    The system cannot find the path specified.
            ..\..\..\..\bin\zip.exe -9 -q -r php-5.4.7-devel-VC9-x86
    The system cannot find the path specified.
            cd ..\..

    open Makefile, added a line as below after "PHP_SRC_DIR =C:\php-sdk\php-5.3.11\vc9\x86\php-5.3.11":
  1. There is no php_lua.dll.
    The lua extension is static only.

reference1: Build your own PHP on Windows
reference2: Windows 中编译 PHP5.4 + xdebug
reference3: /dev/php/php-on-windows
pre-build DLLs:

Friday, February 17, 2012

Facebook 檢查是否有點擊讚按鈕 (Likes)

$appId = '1234567890'; // Facebook App Id
$res = $this->facebook->api('/me/likes/' . $appId);
  "data": [
      "name": "應用程式名稱",
      "category": "Application",
      "id": "1234567890",
      "created_time": "2012-02-17T07:54:54+0000"
  "paging": {
    "next": ""
use FQL:
$appId = 1234567890;

$query = array(
  'likes' => "SELECT uid, page_id, type, profile_section, 
                     created_time FROM page_fan
              WHERE uid = me() AND 
                    page_id = "' . $appId . '",

 * 回傳值
 * $response = array(
 *   array(
 *     'name' => 'likes',
 *     'fql_result_set' => array(
 *       array(
 *         "created_time" => "1329468255",
 *         "page_id" => "1234567890",
 *         "profile_section" => "other",
 *         "type" => "APP",
 *         "uid" => "100000119629520"
 *       )
 *     )
 *   )
 * );
$responses = $this->facebook->api(
    'method' => 'fql.multiquery',
    'queries' => $query
Facebook Javascript Like button click event:
  function(response) {
    //alert('You liked the URL: ' + response);

Tuesday, January 24, 2012

偵測是否要取得最新版本的 Flash 檔案

Flash loader 在開始取得檔案前, 先用 xxx?v=28172364656 的方式取得一個設定檔, 該設定檔帶的 v={microtime} 其時間單位為 load 檔時的時間郵戳, 以確保該設定檔每次都是 load 到最新的, 再將要取得的檔案列表放在該設定檔內, 每個檔案都用 yyy?v=123458 的方式做版本控制, 這樣應該可以讓 Flash loader 隨時都能取得最新的檔案