Jun 18
WordPress 3.0 在十幾分鐘前 release 了,官方的文章 提供了這段影片作介紹:
2.9.2 升級可直接把下載下來的壓縮檔直接覆蓋原本的目錄,再透過瀏覽器執行升級程式( wp-admin/upgrade.php )。
因為 WordPress 3.0 的預設佈景主題換了,所以沒改過預設佈景主題的人記得開管理後台檢查一下。
WordPress 3.0 的壓縮檔裡面沒有這些檔案與目錄(注意: wp-content/themes/classic 與 wp-content/themes/default 列在其中),想讓目錄乾淨一點的可以清掉:
- wp-admin/categories.php
- wp-admin/edit-category-form.php
- wp-admin/edit-page-form.php
- wp-admin/edit-pages.php
- wp-admin/images/browse-happy.gif
- wp-admin/images/fav-top.png
- wp-admin/images/screen-options-left.gif
- wp-admin/images/wp-logo-vs.gif
- wp-admin/images/wp-logo.gif
- wp-admin/import
- wp-admin/js/wp-gears.dev.js
- wp-admin/js/wp-gears.js
- wp-admin/options-misc.php
- wp-admin/page-new.php
- wp-admin/page.php
- wp-admin/rtl.css
- wp-admin/rtl.dev.css
- wp-admin/update-links.php
- wp-admin/wp-admin.css
- wp-admin/wp-admin.dev.css
- wp-content/themes/classic
- wp-content/themes/default
- wp-includes/js/codepress
- wp-includes/js/jquery/interface.js
- wp-includes/js/scriptaculous/prototype.js
- wp-includes/js/tinymce/wp-tinymce.js
Technorati Tags: Thelonious, WordPress
(Visited 1562 times)
Apr 16
FreeBSD ports tree 的 lang/php5 升級到 5.3.2, www/eaccelerator 也升級到 0.9.6。
但是... 目前,FreeBSD ports tree 的 www/pecl-APC 依然是 3.0.19,無法在 PHP 5.3 運作;為了讓它正常運作,jnlin送過 PR(我沒有先查詢,也送了一個
)。
其實 eAccelerator 0.9.6 在 2010 年 2 月初就已經釋出了,可是,從 changelog 看來,很多不錯的功能被砍掉(反璞歸真?):
Changes in this version:
* Support for PHP 5.3.
* The encoder is removed
* The user cache functions are removed
* The session handler is removed
* The minimal PHP version supported is now 5.1
* Some internal refactoring to clean up the code
* Fixed some bugs (and probably added some)
這麼看來,2008 年的這篇文章的參考價值就低了些...
為了滿足我自己的好奇心,就把 APC 3.1.3p1 裝起來測試看看。
系統/硬體:
- CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz
- Memory: 6G(DDR2 800 MHz, Dual-Channel)
- FreeBSD 8.0-RELEASE-p2 amd64
- Apache HTTPD 2.2.14
- PHP 5.3.2
設定:
- eAccelerator 0.9.6:
eaccelerator.shm_size="128"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.debug="0"
eaccelerator.log_file="/var/log/eaccelerator.log"
eaccelerator.name_space = ""
eaccelerator.check_mtime="1"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.keys="shm_and_disk"
- APC 3.1.3p1:
apc.enabled=1
apc.shm_segments=1
apc.shm_size=128
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.cache
apc.enable_cli=1
測試結果(ab -c5 -n500):
|
Pure PHP |
eAccelerator |
APC |
| WordPress 2.9.2 |
3.00 req./sec. 332.834 ms/req. |
7.61 req./sec. 131.487 ms/req. |
8.87 req./sec. 112.750 ms/req. |
| MediaWiki 1.15.3 |
1.81 req./sec. 552.822 ms/req. |
2.75 req./sec. 363.124 ms/req. |
5.93 req./sec. 168.580 ms/req. |
| Gallery 2.3.1 |
3.51 req./sec. 284.979 ms/req. |
7.91 req./sec. 126.421 ms/req. |
7.38 req./sec. 135.506 ms/req. |
依照結果看來,APC 3.1.3p1 的確略勝 eAccelerator 0.9.6。 
可惜的是.. Xcache 目前的最新版本(1.3.0)沒辦法在 PHP 5.3 跑...
Technorati Tags: Apache, APC, benchmark, eAccelerator, PHP, ports
(Visited 3128 times)
Mar 07
這是前陣子在寫 Plurk Bot 時發現的問題。
因為 FeedBurner 已經被 Google 買下了。
所以,FeedBurner 會以「http://feedproxy.google.com/.....」這種 URL 進行 HTTP 重新導向,使瀏覽器連結到「http://原始URL/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A......」這種頁面。
若是部落客用 FeedBurner 把放在 Xuite 上面的部落格 RSS/Atom feed 燒起來,而訂閱者透過 feedproxy.google.com 連結到文章頁面時,得到 HTTP 400 Error 的頁面(只有第一次被重新導向時,是正常的)。
會得到 HTTP 400 Error 頁面的原因是...
經過第一次的瀏覽後,瀏覽器的 cookie 被塞入兩個值,而 Xuite 無法正確解析瀏覽器的 cookie。

目前使用者自行排除問題的方式是拒絕 Xuite 存取瀏覽器的 cookie。
Technorati Tags: cookie, FeedBurner, Google, Xuite
(Visited 3493 times)
Feb 02
這幾天,我的噗浪河道上,除了 Apple iPad 之外,也出現了一些關於 CNNIC 根憑證的噗。
基於中國大陸政府的黑暗與邪惡,以及中國網路界的「和諧」作風,我決定把 CNNIC 的根憑證移除掉,順便把移除方法貼出來。
- IE(Internet Explorer):

- Firefox(聽說 3.6 有。因為我在用的附加元件尚未完全相容,所以我還在用 3.5.7):

2010/02/02 23:37 UPDATE
另有 MacOS 與 Linux 的移除教學文,有需要的請參考以下連結:
Technorati Tags: CNNIC, Firefox, IE, Internet Explorer, root certificate
(Visited 7570 times)
Jan 07
Javascript 提供了 For ... In ... ,我用的還蠻高興的(雖然我很少撰寫 Javascript)。
今天遇到某種特殊需求,我才發現這個迴圈語法並非萬能。
從 array 裡隨機挑出不重複的值有兩種情況,一種很單純,For ... In ... 迴圈可以處理的很好:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x;
while(fruits.length > 0) {
var r = Math.floor( Math.random() * fruits.length );
var n = fruits[r];
document.write("Choosen[" + r + "]: " + n + "<br />");
document.write("Array: " + fruits + "<br />");
for(x in fruits) {
if (fruits[x] == n) {
fruits.splice(x, 1);
}
}
}
若是 array 裡面已經存在重複的值,而且 array 的資料的來源不方便控制(例如是 HTML 裡面的 li 物件),For ... In ... 這種方便的迴圈語法就必須放棄,改用傳統的 for 迴圈:
var fruits = ["Banana", "Banana", "Orange", "Orange", "Banana", "Apple", "Apple", "Orange", "Mango"];
var i=0;
while(fruits.length > 0) {
var r = Math.floor( Math.random() * fruits.length );
var n = fruits[r];
document.write("Choosen[" + r + "]: " + n + "<br />");
document.write("Array: " + fruits + "<br />");
for(i=0; i<fruits.length; i++) {
if (fruits[i] == n) {
fruits.splice(i, 1);
i--;
}
}
}
Technorati Tags: array, For loop, Javascript, random
(Visited 6423 times)
Jul 18
這兩天在處理 RoundCube 的郵件中文夾檔問題。
原本覺得情況很詭異,因為 Firefox 都很正常,可是 IE 有這兩種狀況:
- 直接以左鍵點選,中文檔名的附帶夾檔無法下載。
- 以滑鼠中鍵(開新的 Tab),就正常了。
坦白說,RoundCube 的程式架構實在很難摸,所以追了蠻久的..
我幫忙追問題的 RoundCube 版本是 0.1-STABLE 。
最後追到的解法是去修改 program/steps/mail/get.inc , diff -u 生出來的檔案內容是這樣:
--- program/steps/mail/get.inc.orig 2008-07-18 02:01:46.000000000 +0800
+++ program/steps/mail/get.inc 2008-07-18 15:45:37.000000000 +0800
@@ -106,9 +106,19 @@
}
else
{
- header(sprintf("Content-Disposition: %s; filename="%s";",
+ $HTTP_USER_AGENT = $_SERVER["HTTP_USER_AGENT"];
+
+ if (strstr($HTTP_USER_AGENT, "compatible; MSIE ") !== false &&
+ strstr($HTTP_USER_AGENT, "Opera") === false) {
+ header(sprintf("Content-Disposition: %s; filename="%s";",
+ $_GET["_download"] ? "attachment" : "inline",
+ $part->filename ? rawurlencode(abbreviate_string($part->filename, 55)) :
+ rawurlencode("roundcube.$ctype_secondary")));
+ } else {
+ header(sprintf("Content-Disposition: %s; filename="%s";",
$_GET["_download"] ? "attachment" : "inline",
$part->filename ? abbreviate_string($part->filename, 55) : "roundcube.$ctype_secondary"));
+ }
// turn off output buffering and print part content
$IMAP->get_message_part($MESSAGE["UID"], $part->mime_id, $part, true);
關鍵就在... 給 IE 吃的話,要先用 rawurlencode() 處理一遍。
Technorati Tags: IE, RoundCube
(Visited 9626 times)
Jul 12
忘記從什麼時候開始(好像是我的 Firefox 升級成 3.0 ?
),Google Reader 常常變成這種畫面:

感覺像是被踢出來了一樣...
而且,登入時要看運氣,有時得登入個 2~3 次...
相同的瀏覽器(Firefox)視窗,不同標籤頁的 Gmail 都沒事,就 Google Reader 有問題。
真詭異啊~
Technorati Tags: Firefox, Gmail, Google Reader
(Visited 8326 times)
Apr 09
上週一,有幸出席露天拍賣營運長,葉奇鑫先生的演講。
演講內容非常豐富與生動。
而我在演講後,私下跟他提及網拍隱私的問題,這點是許多人疏忽掉的部份。
講白話一點,就是目前的網拍的使用者評價頁,可以看到這個人買過什麼、賣過什麼。
如果商品標題中包含了一些詳細的說明,大家可以從相關資訊頁面得知那個人的特殊癖好,罩杯^H^H體型大小。
他在演講中提到,露天拍賣每週都有個新功能上線。
所以,他當場回覆說,露天會在這週解決這方面的問題。
剛才搜索了一下, 4/7 晚上九點已有網友在網路上提到這個功能了。
( 系統功能頁面在此 )
看看 Y 拍啥時跟進吧!
Technorati Tags: bid, Ruten
(Visited 7150 times)
Dec 05
剛剛在看 MMDays 時,赫然發現他們的文章標題下面有個簡煩轉換的 javascript link。
研究了一下他們的網頁原始碼之後,動手移植到我這邊玩玩看。 
在我這裡,連結被我放在右邊 sidebar 的上頭。
在這邊分享一下移植方式(假設使用的這個 javascript 的網址是 http://blog.tw),順便作個紀錄。
移植的步驟大致如下:
- 抓取 javascript,在 MMDays 那邊的連結是 http://mmdays.com/wp-content/themes/mistylook/scripts/tw_cn.js ,我這邊的連結是 http://www.joehorn.idv.tw/tw_cn.js(可以用 fetch、wget 抓)。
- 將抓到的 javascript 放在你想放的網頁目錄(接下來的說明是假設放在網頁根目錄下)。
- 在網頁的 與 之間放入這串 HTML code:
<script language="javascript" src="http://blog.tw/tw_cn.js" type="text/javascript"></script>
- 在你想放置轉換連結的地方加入這串 HTML code(當然啦,呈現方式可以自己改,「<a id=...>」這個部份別動到就好):
将网页转换为<a id="translateLink"><font color="blue">简体</font></a>
- 在網頁末端的 </body> 上面加入這些 HTML code:
<script type="text/javascript">
var defaultEncoding = 1;
var translateDelay = 0;
var cookieDomain = "http://blog.tw/";
var msgToTraditionalChinese = "繁體";
var msgToSimplifiedChinese = "简体";
var translateButtonId = "translateLink";
translateInitilization();
</script>
注意:HTML code 裡面的「http://blog.tw」記得換成自己的網址啊!
我不是很清楚這樣有沒有侵犯到 MMDays 的權益,而且我在他們的部落格上面也找不到他們的 E-Mail 位址。 
如果本文有冒犯之處,歡迎大家留言回應,或是寄信跟我說,我會儘快把這篇文章封進水泥桶,丟到高雄港... orz
當然啦,有用到的人記得感謝 MMDays (或是原作者)哦。
Technorati Tags: Simple Chinese, Traditional Chinese, translation, website
(Visited 3563 times)
Nov 10
這幾天接了一個 PHP 的系統要作,為了防止 Spambot,必須加入視覺驗證碼。
在眾多視覺驗證碼的 solution 中,我第一個想到的就是 reCAPTCHA 。
不過,根據以前用過的經驗,reCAPTCHA 還沒有多國語言支援的能力。
我看了一下他們給的 PHP library 跟 使用說明頁 。
很遺憾... 目前還是沒有支援多國語言。
在 reCAPTCHA 的 Forum 則是找到 這個討論串 。
雖然會擔心收到抱怨,不過依照目前的情況看來,只能先硬著頭皮上,然後靜待佳音了。
回覆 那個討論串 的文章催促一下,進度會不會比較快呀?
Technorati Tags: PHP, reCAPTCHA, translation
(Visited 1830 times)
Recent Comments