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: , , ,

Tags: , , ,
(Visited 278 times)
Feb 02

這幾天,我的噗浪河道上,除了 Apple iPad 之外,也出現了一些關於 CNNIC 根憑證的噗。
基於中國大陸政府的黑暗與邪惡,以及中國網路界的「和諧」作風,我決定把 CNNIC 的根憑證移除掉,順便把移除方法貼出來。

  • IE(Internet Explorer):
    Remove CNNIC root certificate from IE
  • Firefox(聽說 3.6 有。因為我在用的附加元件尚未完全相容,所以我還在用 3.5.7):
    Remove CNNIC root certificate from Firefox

2010/02/02 23:37 UPDATE
另有 MacOS 與 Linux 的移除教學文,有需要的請參考以下連結:

Technorati Tags: , , , ,

Tags: , , , ,
(Visited 2832 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: , , ,

Tags: , , ,
(Visited 2035 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() 處理一遍。 XD

Technorati Tags: ,

Tags: ,
(Visited 8984 times)
Jul 12

忘記從什麼時候開始(好像是我的 Firefox 升級成 3.0 ? :roll: ),Google Reader 常常變成這種畫面:
Google Reader Error
感覺像是被踢出來了一樣... =_=b

而且,登入時要看運氣,有時得登入個 2~3 次...

相同的瀏覽器(Firefox)視窗,不同標籤頁的 Gmail 都沒事,就 Google Reader 有問題。
真詭異啊~ :-?

Technorati Tags: , ,

Tags: , ,
(Visited 8004 times)
Apr 09

上週一,有幸出席露天拍賣營運長,葉奇鑫先生的演講。
演講內容非常豐富與生動。

而我在演講後,私下跟他提及網拍隱私的問題,這點是許多人疏忽掉的部份。
講白話一點,就是目前的網拍的使用者評價頁,可以看到這個人買過什麼、賣過什麼。
如果商品標題中包含了一些詳細的說明,大家可以從相關資訊頁面得知那個人的特殊癖好,罩杯^H^H體型大小。

他在演講中提到,露天拍賣每週都有個新功能上線。
所以,他當場回覆說,露天會在這週解決這方面的問題。
剛才搜索了一下, 4/7 晚上九點已有網友在網路上提到這個功能了
系統功能頁面在此

看看 Y 拍啥時跟進吧! :cool:

Technorati Tags: ,

Tags: ,
(Visited 7000 times)
Dec 05

剛剛在看 MMDays 時,赫然發現他們的文章標題下面有個簡煩轉換的 javascript link。

研究了一下他們的網頁原始碼之後,動手移植到我這邊玩玩看。 :oops:
在我這裡,連結被我放在右邊 sidebar 的上頭。

在這邊分享一下移植方式(假設使用的這個 javascript 的網址是 http://blog.tw),順便作個紀錄。
移植的步驟大致如下:

  1. 抓取 javascript,在 MMDays 那邊的連結是 http://mmdays.com/wp-content/themes/mistylook/scripts/tw_cn.js ,我這邊的連結是 http://www.joehorn.idv.tw/tw_cn.js(可以用 fetch、wget 抓)。
  2. 將抓到的 javascript 放在你想放的網頁目錄(接下來的說明是假設放在網頁根目錄下)。
  3. 在網頁的 與 之間放入這串 HTML code:
    <script language="javascript" src="http://blog.tw/tw_cn.js" type="text/javascript"></script>
  4. 在你想放置轉換連結的地方加入這串 HTML code(當然啦,呈現方式可以自己改,「<a id=...>」這個部份別動到就好):
    将网页转换为<a id="translateLink"><font color="blue">简体</font></a>
  5. 在網頁末端的 </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: , , ,

Tags: , , ,
(Visited 2919 times)
Nov 10

這幾天接了一個 PHP 的系統要作,為了防止 Spambot,必須加入視覺驗證碼。

在眾多視覺驗證碼的 solution 中,我第一個想到的就是 reCAPTCHA

不過,根據以前用過的經驗,reCAPTCHA 還沒有多國語言支援的能力。

我看了一下他們給的 PHP library 跟 使用說明頁
很遺憾... 目前還是沒有支援多國語言。
reCAPTCHA 的 Forum 則是找到 這個討論串

雖然會擔心收到抱怨,不過依照目前的情況看來,只能先硬著頭皮上,然後靜待佳音了。
回覆 那個討論串 的文章催促一下,進度會不會比較快呀? XD

Technorati Tags: , ,

Tags: , ,
(Visited 1553 times)
Nov 05

剛剛把這邊升級成 WordPress 2.3.1 。

因為 WordPress 2.3 開始支援 tag ,所以之前使用的 Ultimate Tag Warrior 被我拔掉了。
(其實是... 要先拔掉才能升級... 不然會有 function redeclare 的 error 。 XD

在拔掉 Ultimate Tag Warrior 之前,我在網路上嘗試尋找把原本的 tag 轉移到 WordPress 2.3 內建的 tag 功能的作法。

我找到了 這篇,不過升級後我就發現管理平台的 Manage -> Import 中就有搬移的功能! :cool:

接著要修改 theme ,增加 tag 與 tag cloud 顯示的語法。
很快地,我發現在我用的 theme 裡面增加的 the_tags() 只能在多篇文章顯示時運作正常,瀏覽單篇文章時都看不到。
如果有人也有遇到相同問題的話,請修改 wp-includes/category-template.php ,把 function get_the_tags( $id = 0 ) 中的這段:

        $id = (int) $id;

        if ( ! $id && ! in_the_loop() )
                return false; // in-the-loop function

        if ( !$id )
                $id = (int) $post->ID;

改成

        $id = (int) $id;
/*
        if ( ! $id && ! in_the_loop() )
                return false; // in-the-loop function
*/
        if ( !$id )
                $id = (int) $post->ID;

應該就能解決了。

升級完 WordPress 2.3.1 的話可以檢查目錄下的檔案,以下這些是不需要的,可以砍掉。

  • wp-admin/admin-db.php
  • wp-admin/cat.js
  • wp-admin/categories.js
  • wp-admin/custom-fields.js
  • wp-admin/dbx-admin-key.js
  • wp-admin/edit-comments.js
  • wp-admin/install-rtl.css
  • wp-admin/install.css
  • wp-admin/upgrade-schema.php
  • wp-admin/upload-functions.php
  • wp-admin/upload-rtl.css
  • wp-admin/upload.css
  • wp-admin/upload.js
  • wp-admin/users.js
  • wp-admin/widgets-rtl.css
  • wp-admin/widgets.css
  • wp-admin/xfn.js
  • wp-includes/js/tinymce/license.html

另外,新版的 WordPress 後台會顯示 plugin 有沒有新的版本啦! :eek:

Technorati Tags: ,

Tags: ,
(Visited 1295 times)
Feb 07

因為 FreeBSD 的 zh-phpbb-tw 這支 ports ( /usr/ports/chinese/phpbb-tw ) 的版本還在 2.0.21 ,而且根據 FreshPorts - VuXML 呈現的結果, 2.0.21 被標上「存有漏洞」。

維護人 chinsan 在 1 月初通知我,希望我能幫忙聯絡 竹貓 ,請他們釋出 2.0.22 中文版,以方便他進行維護工作。

我在 1/8 用 MSN 向小竹子提過,至今 竹貓 仍然無動於衷,而討論區僅有 這個討論串 有提到。

phpBB 2.0.22 新增了一行語言設定:

$lang["Session_invalid"] = "Invalid Session. Please resubmit the form.";

現在也還不確定 竹貓 的翻譯結果為何。

竹貓 的網站好像準備改版了,不過身為亞洲地區中文支援站,總該付點責任吧!?

另外,我覺得 phpBB 在多語支援的作法上還有改進的空間。
比較好的作法應該是在釋出新版前,通知各語言檔的翻譯團隊,請他們翻譯好之後送回官方,將各語言包在一起再釋出。

Technorati Tags: ,

Tags: ,
(Visited 2540 times)