QuirksMode
http://www.quirksmode.org/compatibility.html
2012年1月31日 星期二
Enhance CJKTokenizerFactory
因為 CJKTokenizerFactory 預設是以2個字去切的。
用 NGramFilterFactory 讓他最小切的單位可以切到 1 個字為單位。
2012年1月20日 星期五
2012年1月19日 星期四
2012年1月17日 星期二
Run Rails Project On Mac
先安裝Mysql
$ brew install mysql
按照Gemfile安裝需要的套件
$ bundle install
安裝DB資料
$ rake db:create
$ rake db:migrate
$ rake db:seed
跑rails server
$ rails server
修改後上線步驟
rake assets:precompile
nginx reload
$ brew install mysql
按照Gemfile安裝需要的套件
$ bundle install
安裝DB資料
$ rake db:create
$ rake db:migrate
$ rake db:seed
跑rails server
$ rails server
修改後上線步驟
rake assets:precompile
nginx reload
2012年1月13日 星期五
Apache RewriteMap Usage
從 IP 判斷User的合約
ip_contract_map.txt 如下:第一欄為User IP,第二欄為合約ID
10.1.1.254 1
60.199.248.193 2
60.251.144.84 3
114.32.4.229 3
Apache設定:
...
#打開RewriteEngine
RewriteEngine on
#將 mapping 讀出來當成contracts這變數。
RewriteMap contracts txt:/srv/www/ip_contract_map.txt
#不覆寫原本的網址,直接用 User 的 IP 當成 key 去 mapping 裡面找。
# %{REMOTE_ADDR} 是遠端的IP
RewriteRule .* - [E=REDIRECT_CONTRACT_ID:${contracts:%{REMOTE_ADDR}}]
...
ip_contract_map.txt 如下:第一欄為User IP,第二欄為合約ID
10.1.1.254 1
60.199.248.193 2
60.251.144.84 3
114.32.4.229 3
Apache設定:
...
#打開RewriteEngine
RewriteEngine on
#將 mapping 讀出來當成contracts這變數。
RewriteMap contracts txt:/srv/www/ip_contract_map.txt
#不覆寫原本的網址,直接用 User 的 IP 當成 key 去 mapping 裡面找。
# %{REMOTE_ADDR} 是遠端的IP
RewriteRule .* - [E=REDIRECT_CONTRACT_ID:${contracts:%{REMOTE_ADDR}}]
...
2012年1月12日 星期四
Android Official UI Design Cuide
Wait for a looooooooooooooooooooooooong time
http://developer.android.com/design/index.html
http://developer.android.com/design/index.html
2012年1月11日 星期三
Install Ubuntu As Server On EC2
0. 修正Locale,看起來爽一點。加到 .bashrc 最後
export LC_ALL="en_US.UTF-8"
1. 格式化新硬碟,(在Amazon Console已經掛上來的前提)
看一下其他硬碟的格式
$ cat /etc/mtab
/dev/sda1 / ext3 rw 0 0
開始格式化成ext3
$ mkfs.ext3 /dev/sdf
/dev/sdf is entire device, not just one partition!
Proceed anyway? (y,n) y
2. 將格式化好的硬碟掛到 /mnt
看一下沒mount前。
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 7.9G 745M 6.8G 10% /
none 285M 112K 284M 1% /dev
none 318M 0 318M 0% /dev/shm
none 318M 52K 318M 1% /var/run
none 318M 0 318M 0% /var/lock
none 318M 0 318M 0% /lib/init/rw
$ mount /dev/sdf /mnt/
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 7.9G 745M 6.8G 10% /
none 285M 112K 284M 1% /dev
none 318M 0 318M 0% /dev/shm
none 318M 52K 318M 1% /var/run
none 318M 0 318M 0% /var/lock
none 318M 0 318M 0% /lib/init/rw
/dev/sdf 99G 188M 94G 1% /mnt
3. 設定開機掛載
$ vi /etc/fstabs
加在最後,剛剛格式化成ext3,mount到mnt
/dev/sdf /srv ext3 defaults 0 0
確認mount是否有掛好
$ mount /srv
4. 安裝apache
$ apt-get install apache2-mpm-prefork
5. 安裝php及常用lib
$ apt-get install libapache2-mod-php5 php5-gd php5-common php5-cli
6. 安裝mysql
$ apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
7. 安裝tomcat (optional)
$ apt-get install tomcat6
安裝Solr參考:http://charlesleifer.com/blog/how-to-set-up-solr-on-ubuntu-1004-or-whatever/
8. 安裝geoip (optional)
$ apt-get install php5-geoip
GeoIP後續步驟參考:http://www.php.net/manual/en/geoip.setup.php#93000
9. 安裝imagemagick
$ apt-get install imagemagick php5-imagick
10. 調整 php.ini 上傳檔案的大小限制(optional)
$ vi /etc/php5/apache2/php.ini
post_max_size調整為12M
upload_max_filesize調整為10M
11. 啟用module rewrite
$ cd /etc/apache2/mods-enabled/
$ ln -s ../mods-available/rewrite.load rewrite.load
11. 安裝svn
$ apt-get install subversion
12. 調整log位置
$ cp -r /var/log /srv/log
$ mv /var/log /var/log-bak
$ ln -s /srv/log /var/log
13. 安裝 cronolog (recaommand)
$ apt-get install cronolog
export LC_ALL="en_US.UTF-8"
1. 格式化新硬碟,(在Amazon Console已經掛上來的前提)
看一下其他硬碟的格式
$ cat /etc/mtab
/dev/sda1 / ext3 rw 0 0
開始格式化成ext3
$ mkfs.ext3 /dev/sdf
/dev/sdf is entire device, not just one partition!
Proceed anyway? (y,n) y
2. 將格式化好的硬碟掛到 /mnt
看一下沒mount前。
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 7.9G 745M 6.8G 10% /
none 285M 112K 284M 1% /dev
none 318M 0 318M 0% /dev/shm
none 318M 52K 318M 1% /var/run
none 318M 0 318M 0% /var/lock
none 318M 0 318M 0% /lib/init/rw
$ mount /dev/sdf /mnt/
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 7.9G 745M 6.8G 10% /
none 285M 112K 284M 1% /dev
none 318M 0 318M 0% /dev/shm
none 318M 52K 318M 1% /var/run
none 318M 0 318M 0% /var/lock
none 318M 0 318M 0% /lib/init/rw
/dev/sdf 99G 188M 94G 1% /mnt
3. 設定開機掛載
$ vi /etc/fstabs
加在最後,剛剛格式化成ext3,mount到mnt
/dev/sdf /srv ext3 defaults 0 0
確認mount是否有掛好
$ mount /srv
4. 安裝apache
$ apt-get install apache2-mpm-prefork
5. 安裝php及常用lib
$ apt-get install libapache2-mod-php5 php5-gd php5-common php5-cli
6. 安裝mysql
$ apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
7. 安裝tomcat (optional)
$ apt-get install tomcat6
安裝Solr參考:http://charlesleifer.com/blog/how-to-set-up-solr-on-ubuntu-1004-or-whatever/
8. 安裝geoip (optional)
$ apt-get install php5-geoip
GeoIP後續步驟參考:http://www.php.net/manual/en/geoip.setup.php#93000
9. 安裝imagemagick
$ apt-get install imagemagick php5-imagick
10. 調整 php.ini 上傳檔案的大小限制(optional)
$ vi /etc/php5/apache2/php.ini
post_max_size調整為12M
upload_max_filesize調整為10M
11. 啟用module rewrite
$ cd /etc/apache2/mods-enabled/
$ ln -s ../mods-available/rewrite.load rewrite.load
11. 安裝svn
$ apt-get install subversion
12. 調整log位置
$ cp -r /var/log /srv/log
$ mv /var/log /var/log-bak
$ ln -s /srv/log /var/log
13. 安裝 cronolog (recaommand)
$ apt-get install cronolog
2012年1月10日 星期二
2012年1月9日 星期一
ItemizedOverlay Occur NullPointerException When Touch / Tap A MapView
參考:http://timpner.com/computing/android-nullpointerexception-when-scrolling-through-a-mapview-w-itemizedoverlay/
簡單說就是兩點要注意:
在ItemizedOverlay的constructor
1. 用 boundCenter(drawable) 或是 boundCenterBottom(drawable) 給地圖上的Marker有Bound。
2. 馬上populate()
這樣就不會在MapView.onTouchEvent的時候出現Exception。
簡單說就是兩點要注意:
在ItemizedOverlay的constructor
1. 用 boundCenter(drawable) 或是 boundCenterBottom(drawable) 給地圖上的Marker有Bound。
2. 馬上populate()
這樣就不會在MapView.onTouchEvent的時候出現Exception。
2012年1月5日 星期四
Mysql Import Data
Import Command:
mysql -u USER_NAME -p DB_NAME < YOUR.sql
如果sql檔太大,會出現以下錯誤。
ERROR 1153 (08S01) at line 523: Got a packet bigger than 'max_allowed_packet' bytes
解決方法,進入mysql,執行以下SQL:
set global max_allowed_packet=1000000000;
set global net_buffer_length=1000000;
mysql -u USER_NAME -p DB_NAME < YOUR.sql
如果sql檔太大,會出現以下錯誤。
ERROR 1153 (08S01) at line 523: Got a packet bigger than 'max_allowed_packet' bytes
解決方法,進入mysql,執行以下SQL:
set global max_allowed_packet=1000000000;
set global net_buffer_length=1000000;
2012年1月4日 星期三
C# SHA1 As PHP
public static string sha1(string input, bool rawOutput = false)
{
System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding();
System.Security.Cryptography.SHA1Managed hash =
new System.Security.Cryptography.SHA1Managed();
byte[] output = hash.ComputeHash(encoder.GetBytes(input));
return rawOutput ?
Convert.ToBase64String(output) :
BitConverter.ToString(output).Replace("-", "").ToLowerInvariant();
}
{
System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding();
System.Security.Cryptography.SHA1Managed hash =
new System.Security.Cryptography.SHA1Managed();
byte[] output = hash.ComputeHash(encoder.GetBytes(input));
return rawOutput ?
Convert.ToBase64String(output) :
BitConverter.ToString(output).Replace("-", "").ToLowerInvariant();
}
C# UrlEncode To Uppercase
http://stackoverflow.com/questions/918019/net-urlencode-lowercase-problem
public static string UpperCaseUrlEncode(string s)
{
char[] temp = HttpUtility.UrlEncode(s).ToCharArray();
for (int i = 0; i < temp.Length - 2; i++)
{
if (temp[i] == '%')
{
temp[i + 1] = char.ToUpper(temp[i + 1]);
temp[i + 2] = char.ToUpper(temp[i + 2]);
}
}
return new string(temp);
}
public static string UpperCaseUrlEncode(string s)
{
char[] temp = HttpUtility.UrlEncode(s).ToCharArray();
for (int i = 0; i < temp.Length - 2; i++)
{
if (temp[i] == '%')
{
temp[i + 1] = char.ToUpper(temp[i + 1]);
temp[i + 2] = char.ToUpper(temp[i + 2]);
}
}
return new string(temp);
}
訂閱:
文章 (Atom)