Friday, July 27, 2012
How to use "git reset"
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
http://www.slideshare.net/shire/php-tek-2008-apc-facebook
Thursday, May 31, 2012
PHP Benchmarking Tools
2. flood: http://httpd.apache.org/test/flood/
3. Web Capacity Analysis Tool: http://support.microsoft.com/kb/231282
reference: http://phplens.com/lens/php-book/optimizing-debugging-php.php
Sunday, May 13, 2012
Use Event Dispatcher in Symfony2
$eventDispatcher = $this->container->get('event_dispatcher');
Sunday, May 06, 2012
Compile PHP binary with Lua extension on Windolws 7
- download and install Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1
- download PHP source code (php-5.3.11.tar.bz2) from: http://windows.php.net/download/
- download PHP SDK (php-sdk-binary-tools-20110915.zip) from: http://windows.php.net/downloads/php-sdk/
- download PHP Dependable libs (deps-5.3-vc9-x86.7z) from: http://windows.php.net/downloads/php-sdk/
- download PHP PECL Lua extension source code (lua-0.9.4.tgz) from: http://pecl.php.net/package/lua
- download and install Lua 5.1 from http://code.google.com/p/luaforwindows/downloads/list
install Lua at C:\Lua - create a directory at C:\php-sdk, unzip the php-sdk-binary-tools-20110915.zip into this directory
- open Microsoft Windows SDK v7.0 CMD Shell
- enter those commands below:
setenv /x86 /win7 /Release
cd C:\php-sdk
bin\phpsdk_setvars.bat
bin\phpsdk_buildtree.bat php-5.3.11 - unzip php-5.3.11.tar.bz2 into C:\php-sdk\php-5.3.11\vc9\x86\php-5.3.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
- 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
- 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
buildconf
configure --disable-zts --enable-snapshot-build --with-lua=C:\Lua\5.1
nmake
nmake snap - 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: pecl-5.3.11-nts-Win32-VC9-x86.zip and php-5.3.11-nts-Win32-VC9-x86.zip
- enjoy to use the binaries!
troubleshooting:
- "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.
- cd Release\php-5.4.7
..\..\..\..\bin\zip.exe -9 -q -r ..\php-5.4.7-nts-Win32-VC9-x86.zip .
The system cannot find the path specified.
cd ..\..
cd Release\pecl-5.4.7
..\..\..\..\bin\zip.exe -9 -q -r ..\pecl-5.4.7-nts-Win32-VC9-x86.zip .
The system cannot find the path specified.
cd ..\..
cd Release\php-test-pack-5.4.7
..\..\..\..\bin\zip.exe -9 -q -r ..\php-test-pack-5.4.7.zip .
The system cannot find the path specified.
cd ..\..
cd Release
..\..\..\..\bin\zip.exe -9 -q php-debug-pack-5.4.7-nts-Win32-VC9-x86.zip *.pdb
The system cannot find the path specified.
cd
Z:\PHP-SDK\_php54\vc9\x86\php-5.4.7-src\Release
cd
Z:\PHP-SDK\_php54\vc9\x86\php-5.4.7-src\Release
..\..\..\..\bin\zip.exe -9 -q -r php-devel-pack-5.4.7-nts-Win32-VC9-x86.zip 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":
ZIP="$(PHP_SRC_DIR)\..\..\..\..\bin\zip.exe"
- 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: http://downloads.php.net/pierre/
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(
array(
'method' => 'fql.multiquery',
'queries' => $query
)
);
Facebook Javascript Like button click event:
FB.Event.subscribe('edge.create',
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 隨時都能取得最新的檔案
Thursday, January 19, 2012
Monday, January 02, 2012
Doctrine2 ORM add query result cache and delete cache
// add query result cache
$query = $this->createQueryBuilder('i')
->where('i.delete = false')
->getQuery();
$query->useResultCache(true, 3600, 'allItems');
$items = $query->getArrayResult();
// delete cache
$em->getConfiguration()
->getResultCacheImpl()->delete('allItems');
Saturday, December 17, 2011
Develop Symfony2 with Eclipse
1. Download Eclipse IDE for Java EE Developers
2. Extract the archive file to where you want to install Eclipse.
3. Open Eclipse, Go to Help->Install New Software...
4. Add Symfony-2-Eclipse-Plugin repository: http://pulse00.github.com/Symfony-2-Eclipse-Plugin/
5. Install All of them. (PDT Extensions, PHP Development Tools, Symfony, YEdit)
6. Add Eclipse Color Theme plugins repository: http://eclipse-color-theme.github.com/update
7. Install Eclipse Color Theme
8. Download Eclipse Symfony2 theme
9. Go to Window->Preferences->General->Appearance->Color Theme , and install the Symfony2 theme.
10. ALL DONE! ENJOY Symfony2!
ex1. Go to PHP->Code Style->Formatter(PDT Tooles) Change Active profile to "Symfony [built in]"
ex2. Edit theme color in Twig: Normal, String
ex3. Edit theme color in YEdit: Scalars, Documents, Default
Wednesday, December 07, 2011
Using vnstat in CentOS to Monitor and Log Network Traffic
1. install rpmforge repository
2. yum install vnstat
3. vnstat --testkernel
4. reference: Monitoring bandwidth usage with vnStat under CentOS 5 Linux
Tuesday, November 08, 2011
Javascript and PHP AES encrypt decrypt library
This is a Javascript AES encrypt decrypt library
AES Advanced Encryption Standard
And this is a PHP AES encrypt decrypt library
AES in PHP
Friday, November 04, 2011
Symfony theme for NetBeans
A nice guy make a symfony color theme for NetBeans. You can download from his googlecode page: Symfony Color Scheme for NetBeans v1.3
解決 DejaVu Sans Mono 字型在 NetBeans 下中文顯示成方塊的問題
-
找到 NetBeans 安裝路徑, ex: C:\Program Files\NetBeans 7.0.1
進入 etc 資料夾 ex: C:\Program Files\NetBeans 7.0.1\etc
打開 netbeans.conf 並搜尋 netbeans_jdkhome 參數
該參數存放的是 JRE 的路徑 ex:"C:\Program Files\Java\jre6" - 進入 JER 的路徑, 並進到 lib 資料夾 ex: C:\Program Files\Java\jre6\lib
- 複製一份 fontconfig.properties.src 並更改檔名成 fontconfig.properties
-
編輯 fontconfig.properties 檔
新增下列的內容 filename.DejaVu_Sans_Mono=DejaVuSansMono.ttf filename.DejaVu_Sans_Mono_Bold=DejaVuSansMono-Bold.ttf filename.DejaVu_Sans_Mono_Bold_Oblique=DejaVuSansMono-BoldOblique.ttf filename.DejaVu_Sans_Mono_Oblique=DejaVuSansMono-Oblique.ttf 修改下列的內容 sansserif.plain.alphabetic=DejaVu Sans sansserif.bold.alphabetic=DejaVu Sans Bold sansserif.italic.alphabetic=DejaVu Sans Oblique sansserif.bolditalic.alphabetic=DejaVu Sans Bold Oblique monospaced.plain.alphabetic=DejaVu Sans Mono monospaced.bold.alphabetic=DejaVu Sans Mono Bold monospaced.italic.alphabetic=DejaVu Sans Mono Oblique monospaced.bolditalic.alphabetic=DejaVu Sans Mono Bold Oblique sequence.sansserif.x-windows-950= alphabetic,chinese-ms950,dingbats,symbol,chinese-ms950-extb sequence.monospaced.x-windows-950= alphabetic,chinese-ms950,dingbats,symbol,chinese-ms950-extb - 做完上述的修改後, 再進入 NetBeans -> Tools -> Options -> Fonts & Colors -> Syntax -> Default -> Font, 選擇 Monospaced 字型, 這樣就可以正確地顯示 DejaVu Mono 的字型了, 收工!
Monday, October 24, 2011
Wednesday, September 28, 2011
Sage - Online Mathematical Software
Sage is an mathematical software, the coolest point is it can run with any web browser.
I tried a sample plot function below, the usability is awesome too!
x=var('x')
plot(-0.3+(x+0.6)^0.5, (0,100))
Monday, September 19, 2011
Benchmarks for mt_rand() and rand()
Benchmarks results as below:
mt_rand() 10000000 times for 4.7026278972626 seconds each one average is 0.00000047 seconds rand() 10000000 times for 4.7438910007477 seconds each one average is 0.00000047 seconds
The test machine is Amazon EC2 High-CPU Instances (20 ECU)
Another test as below:
mt_rand() 10000000 times for 2.4974269866943 seconds each one average is 0.00000025 seconds rand() 10000000 times for 2.4646849632263 seconds each one average is 0.00000025 seconds
The test machine is Amazon EC2 Micro Instances (1 ECU)
Tuesday, September 06, 2011
CentOS install node.js
Basically, follow the installation guide in the node.js GitHub wiki page. I use the "Building from source" guide. Then install npm, follow the guide too, just easy type with "curl http://npmjs.org/install.sh | sh"
When I test nmp installation (install express), I found that I should type 'npm install -g express', and the express will be installed in the directory which I want. Otherwise, nmp will install locally (such as: ./node_modules/).
Wednesday, August 31, 2011
Install PHPUnit on Windows 7
First you need install a Zend Server in C:\Zend folder
Run commands below
# pear channel-update pear.php.net # pear upgrade pear # pear channel-discover pear.phpunit.de # pear channel-discover pear.symfony-project.com # pear channel-discover components.ez.no # pear clear-cache # pear update-channels # pear install --alldeps phpunit/PHPUnit
DONE!
Friday, August 26, 2011
32bit 系統下 json_decode 遇到 BIGINT 的問題
在 32bit 系統下處理 Facebook 的 uid 時, 一定會遇到 json_decode 時, php 把 uid 轉成 float 的情形, 大部分的情形只要把 uid 轉成 string 就能做其他的事了, 以下是正確的轉型技巧
$json = '{"uid":100000123456789}';
$arr = json_decode($json, true);
// $arr = array(1) {
// ["uid"]=>
// float(1.0000012345678E+14)
// }
$s2 = sprintf ( "%.0f", $arr['uid'] );
// $s2 = string(15) "100000123456789"
