網頁瀏覽加速法

上看到的好東西:網頁瀏覽加速法

裡面大多數都是提到 ,我找了一下 IE7 與 IE6 的設定,裡面都沒看到 HTTP Pipeline 的設定,所以是不支援,還是有支援但是關不掉?XD

(以下開始岔題)

如果網站的連線數量夠大的話,千萬不要想不開跑去用 (1.3.x 或是 2.x 的 Prefork MPM),安裝是很方便,但生活可以更好。

因為傳統的 Prefork MPM 一個連線進來就要一隻 httpd 服務,當有上千個連線的時候,就代表有上千個 httpd... 如果 httpd 又包含著 mod_php4 或 mod_php5 的時候,你可以想像會發生什麼事情... :p

可以改進的地方是改用 2.x 的 Worker MPM,一個連線一個 Thread,而不是一個連線一個 Process,再加上 mod_fastcgi + php-fastcgi,這樣可以兼顧使用者要用 .htaccess 以及 PHP 不是 Thread-safe 的問題,同時也可以提升效率。(有人說 本身已經是 Thread-safe,但 extensions 的部份不保證是,所以還是用 隔開吧)

目前看到最好的方法還是直接用 + php-fastcgi,這樣就得放棄 .htaccess,不過這對 沒有影響,因為 自己可以處理 mod_rewrite 要做的工作,所以... :)

Firefox 2.0 與 IE 7.0 的防釣魚功能

2.0 的防釣魚有兩種選擇,一種是讓 每隔一段時間自動下載名單,這是預設值,另外一種則是利用 的資料庫查詢。(我覺得要在安裝的時候就讓使用者選會比較好 :/)

而 IE 7.0 我沒有找到設定的地方,不知道是不是用 提供的資料庫查詢...

Anyway,我前陣子特地到 Spam 資料夾翻 Phishing 的信件,發現 (上圖) 更新得相當快,而 (下圖) 的就...

Zooomr 繁體中文

剛剛發現這次停機後 有繁體中文介面了:

不過有幾個缺點:

  • 一般的字 (不是標題的地方) 字太小,這種大小對英文字型還可以,但對中文字形看起來很吃力。
  • 版面太亂,不過這個問題從以前到現在就不是網站會不會成功的重點。

對於 l10n 反而都沒有動作... 所以該寫從 完整轉移至 的工具了嗎?:p

Update:在官方的 Blog 上有說明:嗨, 來自台、港、澳的朋友 / Hello Taiwanese, H.K. & Macau Friends

GCC 裡的 Inline Assembly

Update:感謝某長輩提醒,標題從「Unix 環境下的 Inline Assembly」改成「GCC 裡的 Inline Assembly」。

從大二修 Assembly 後就很久沒寫組語了,當時修的時候還是用 Intel 語法寫,就一直沒學到 AT&T 語法,後來從網路上看也只知道 src 與 dst 的位置通常是相反的,以及 register 前面要用 % 修飾,其他的像是記憶體的定址要怎麼寫都不知道,所以在 Unix 下一直不會寫 Assembly...

前幾天有個學弟剛好在寫作業,要用 MMX 計算一個整數 Vector (看做是 1*n 的 Matrix) 乘上整數 Matrix (n*n) 的結果 (其中 n 會是 4 的倍數,另外每個整數都是 16 bits),趁著這個機會摸索 GCC 裡要怎麼寫 Inline Assembly,以及 AT&T 語法與 Intel 語法不同的地方...

這是剛摸索出來怎麼寫,基本上請不要太要求... :p 編譯環境是 6.1 系統內附的 GCC (gcc version 3.4.4 [FreeBSD] 20050518)。

void matrixMMX(const unsigned int n,
    const uint16_t const *vec, const uint16_t const *mat,
    uint16_t *result)
{
    const unsigned int n2 = n / (64 / 16);

    // First empty the result array
    bzero(result, sizeof(uint16_t) * n);

    asm volatile("\\
        mov %1, %%edi;\\
        mov %3, %%ecx;\\
        mov %2, %%edx;\\
loop1:\\
        mov %0, %%esi;\\
        push %%ecx;\\
        mov %4, %%ecx;\\
loop2:\\
        movq (%%esi), %%mm0;\\
        pmaddwd (%%edi), %%mm0;\\
\\
        movd %%mm0, %%eax;\\
        mov %%eax, %%ebx;\\
        shr $16, %%eax;\\
        add %%ax, %%bx;\\
        add %%bx, (%%edx);\\
\\
        psrlq $32, %%mm0;\\
\\
        movd %%mm0, %%eax;\\
        mov %%eax, %%ebx;\\
        shr $16, %%eax;\\
        add %%ax, %%bx;\\
\\
        add %%bx, (%%edx);\\
\\
        add $8, %%edi;\\
        add $8, %%esi;\\
        loop loop2;\\
\\
        add $2, %%edx;\\
        pop %%ecx;\\
        loop loop1;\\
\\
        emms;"::
        "X"(vec), "X"(mat), "X"(result), "X"(n), "X"(n2):
        "eax", "ebx", "ecx", "edx", "esi", "edi", "mm0");
}

Spamhaus 的情況

是一個在英國提供 DNSBL 服務的單位,主要提供兩份名單:SBL (Spamhaus Block List) 與 XBL (Exploits Block List)。SBL 列出了 Spam Source 的機器 (Direct UBE sources, verified spam services and ROKSO spammers)。而 XBL 則是列出被 crack 當作跳板的機器 (Illegal 3rd party exploits, including proxies, worms and trojan exploits)。

提供的名單相當穩定 (簡單來說,也就是 False Positive 非常少,也就是誤擋的情況很少),我一直都有在 Mail Server 上使用。另外一個穩定的 DNSBL 則是 ,不過他們只著重在 Open Relay 上,所以效果就沒那麼明顯了...

夠穩定的情況下,自然就會有很多人使用,也很自然也成為 Spammer 的標靶。

最近,美國的 Spammer David Linhardt 以及他的公司 決定控告 阻擋他們的信件。剛開始的時候 將案件的層級從州提升到聯邦 (from state to federal court),但後來 認為美國法院管不到英國的團體,所以決定不參與接下來的判決。後來美國法院判 敗訴,要罰千萬美金,而 也宣佈他們不會理會美國的判決:Spamhaus to Ignore $11.7M Judgement

但負責 Domain 的大頭目 在美國,所以這位 Spammer 就決定把腦筋動到 身上:要求美國法院直接下令 的 Domain 停掉:

這使得全世界嘩然:美國法院憑什麼處理整個 Internet 的事情?換句話說,在 Internet 上不論發生什麼事情,你只要把戰場移到美國,由美國法院強制對 執行就可以達到你的目的。對此 決定踢皮球,說 本身沒有權力做這種事情,有事情請找 Registar (以這個案例來說,是 Tucows Inc.):ICANN Grants Temporary Reprieve to Spamhaus

雖然大家很不滿由美國法院來處理 Internet 上的事情,但目前看起來沒有其他的解法。在前陣子,法院裁定了「將 的 Domain 直接停掉是一種過度裁定」而暫時告一段落:Judge Rules In Favor Of Spamhaus

但整件事情還沒有結束,許多人仍然在研究要如何避免同樣的事情再度上演。

Winamp 安全漏洞

上看到的:Multiple Vulnerabilities in AOL Nullsoft Winamp Ultravox。最後面的說明有錯誤:

We recommend that users upgrade to Winamp 3.51 to help mitigate the security risks. We will continue to update current activity as more information becomes available.

依照官方網站的說明,應該是 5.31:

iDefense Labs has disclosed two security vulnerabilities to us. The vulnerabilities effect versions 2.666 - 5.3 and are fixed in 5.31. It is recommended that you upgrade immediately. It is fixed in version 5.31 and above.