2009年7月10日星期五

軟件評論

在香港,消費者委員會定期會做一些產品測試報告,但大部份都是實體的(tangible)產品。電腦軟件或者是網上服務據我記憶所及,是沒有做過的。例如香港很多機構/個人都有幫襯 web/email hosting 公司,市面也有非常多這類公司,但我從沒有見過一份獨立的測試報告。例如有公司宣稱 unlimited hosting,是否真的 unlimited 呢? 消費者有何保障?

近這一兩星期,我的研究課題是 Email Marketing (電郵推廣)。這種服務的成本很少,技術水平也不高。一般的有經驗的 System Administrator 只需要在網上找找,就會有大量的 opensouce 軟件可供使用。所以這類公司要做到比其他優勝就在 successful delivery rate 和易用的介面上落功夫。這也是我這兩個星期在網上找這些公司的功課。只要可以有試用戶口的,我盡可能都會登記和試用。

促使我寫這篇文就是我昨天試用的一間香港公司 (Sxxxxxx) (其實我有想過開名的,但我不知道有沒有法律責任??)。有幾個問題我想說的:

1. 一間香港公司,主要服務對象是香港客戶,但我查到它的服務器 ip address (包括後來寄 marketing emails 的 ip) 是在美國的。
2. 如果使用者的 ISP 國際頻寬不是太差,美國的服務器可能也不是問題,但它的網頁設計太爛了。網頁大量用了 external 連結 (例如圖片, javascripts)。這其實也是很多網頁設計者沒有留意的,用了 external 連結,有沒有想過這些連結連接有問題時,對網頁的 performance 有無影響?上述公司就有很多 broken external links,以至到 load 一頁化上了一分鐘。
3. 它的介面是簡單的,大部份的用戶只需要跟著步驟,就算是第一次使用也可以成功寄出 marketing emails。這是可讚的。
4. 但似乎這公司沒有做一些詳細的 Testing 。Software Bugs 隨處可見。根據公司的網頁介紹,已經成立了兩三年,這些 bugs 無理由沒有發現。
5. 好了,我試寄了一些電郵,我昨天下午兩點多寄出的(我已是選立即寄出),我今天早上才發現凌晨兩點幾才收到。難道因為這是免費的試用戶口,所以是 delayed sending。
6. 就算收到,但我的 yahoo 和 gmail 戶口都 classify 為「垃圾郵件」,放了入 Spam folder。其實之前我試的兩間香港公司也是這樣的。大家都無研究如何增加 successful delivery rate。
7. 我再查 sending ip address ,原來已經入了好幾個 DNSBL sites 了。有些已是 2007 年入的,似乎完全無打算 unlist 和轉 sending ip address。
8. 可能你會說這些 marketing emails 入了 DNSBL 應該是正常現象,我會請你試用一下 MailChimp,它的轉送量我想比香港任何一間類似公司更多,但我試過幾次寄信,也沒有入了 Spam folder。

這類公司的使用者都是一般的 laymen,正如在網頁上舉的所謂「成功例子」---一個保險從業員。不會是有太多 Technical knowledge,怎麼評價/比較這類網上服務,我想是需要有獨立分析報告。香港的電腦雜誌為何不做呢? 因為廣告原因?

2009年7月3日星期五

Postfix Email Server with Godaddy Turbo SSL

首先為何要買 SSL Certificates (SSL 憑證),自己簽發的不可以嗎? 當然可以,但自己簽發的根憑證 (root cert) 不是每部電腦都有,「種」在 browser 內不是每一個用戶都能理解。有一張已經在大部份 browser/email client 已經有的 root cert 就沒有「憑證錯誤」的問題。

如果你只想要 SSL connection 又不想用戶見到「憑證錯誤」。(例如以下的 smtps 情況),Godaddy 有一張叫 Turbo Standard SSL Cert便已足夠, 只要在網上找到 promo code (找不到的請電郵給我), US$12.99/year 便可以申請到。只要:

1. 確定你的 domain name 沒有設定為 private,administrative contact 上的電郵地址沒有錯誤。
2. Godaddy 的認證信會寄到這個地址的。

申請程序 Godaddy 的網頁有寫了,最主要是製造一個 CSR 檔,再 submit 上去。




Step 1
su -
mkdir /etc/postfix/ssl cd /etc/postfix/ssl
openssl genrsa -out mail.example.net.key 1024

Step 2
openssl req -new -nodes -key mail.example.net.key -out mail.example.csr
就是 submit 這張 csr 到上述的那網頁。
要留意的是 common name 必需是 mail.example.net (Full Qualified hostname of your email server)

Step 3
在 "Please select your server software from the drop-down list below" 的選項裏,請選 "Apache"。我不知其他的選項如何,但我試過選 "Others" ,出來的 SSL 不能在 postfix 內使用。

Step 4
Submit 了 CSR 檔後,確認信(基本上是即時有)會寄到 whois 的 administrative contact ,跟著信上的指示便可下載一個 zip file (內有 mail.example.net.crt 和 gd_bundle.crt 兩個檔案)

Step 5
將兩個檔案放在 /etc/postfix/ssl 目錄下,加上原有的 mail.example.net.key ,再合成一個 pem 檔。
cat mail.exampel.net.key mail.example.net.crt gd_bundle.crt >> mail.example.net.pem

Step 6
有關在 Postfix 使用 SSL/TLS 的設定,在 /etc/postfix/main.cf 內加上:

####### smtp auth
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = cyrus
local_recipient_maps =
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/mail.example.net.key
smtpd_tls_cert_file = /etc/postfix/ssl/mail.example.net.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
########

2009年6月30日星期二

SEO (搜尋器排名最佳化)

現代人決定購物或使用某一服務,除了看廣告外,大都會在網上找資料。例如我的朋友 Roy Chan 買 HTC Magic 都參考了不同網上的資訊。搜尋引擎就是找尋有關資料的工具。故此生產商或服務提供者應該經常留意閣下公司產品在搜尋引擎的排名。

我每次在這裡貼了文,我都會有個習慣是過了幾個小時後看看文章的關鍵字 (key words) 在各大搜尋引擎的排名。正如我前文所講,根據 Google Analytics 分析,因為「USB 手指」這個關鍵字仍然是進入此站的第一名,第二名是 Gmail email address 一文,第三名是 Ahsay Backup 一文。

Ahsay Backup 是一個有趣的例子,這個關鍵字在 Google HK ,我的文章是排在五名之內。Yahoo HK 更厲害,是排第一,比廠商的 official site 更前。我每星期都會看 Ezone 電腦雜誌,當看到 Ahsay Backup 的全版廣告時,心裡就覺得廠商與其化錢落廣告,何不好好的處理一下 SEO,不要給我這個插科打諢的搶了第一名。反而要走到我的文章內留言。

現時有些廠商(例如 Nokia) 在有新產品發佈時都喜歡找當地博客優先試用,就是希望這些博客美言幾句,使搜尋引擎的前列位置都是好的推介。

2009年6月29日星期一

Gmail Spam

我經常跟我的客戶說 gmail 不能在 commercial 環境使用其中一個原因就是它的 Spam filtering 處理/評分方式的不透明,完全不知道為何某一郵件入了 Spam folder,就算按了 "Not spam",下次類似郵件也會照入 Spam folder,沒有 whitlist 機制。就算是我也不會「得閒」到 Spam folder 看看有沒有 False postive 的信件,何況是一般打工仔。

今天就「得閒」去看看: (please click for larger image)


這封由 Google 自己寄出的郵件也被 classify 為 Spam。

2009年6月27日星期六

sorbs.net

足足化了一個月才可以從 sorbs.net 中 delist 出來。

我有幾個客戶是使用 PXXW 的 broadband 作為公司的對外網絡,取的是固定 (fixed) ip address,也自然的起了個 email server。從六用初開始發覺很多郵件不能寄出,彈回頭的信件說有關的寄件 ip address 已經給 sorbs.net blacklist 了。再看清楚資料和上 sorbs.net 做 database check,竟然發覺有關的 ip address 是歸納為 Dynamic ip range ,即跟家用的 broadband 一樣。

我首先是利用網上的 delisting request 上訴,回覆 (是一個 robot 回覆,還要三日後 ! @@) 說它們仍然認為這是 Dynamic Range,還直指整個 Class C 都是。沒有辦法了,只好找 ISP 吧,就是這麼,就化了接近一個月才 delist。在這事情上,我了解到:

1. 愈來愈多機構的 email server 都用上了不同形式的 antispam 方式。幾年前基本上沒有給對方擋信的問題。
2. 如果閣下的 ip address 入了 DNSBL ,以前有關機構是會寄信到 ip range/domain 的 postmaster,我發覺近這一兩年是沒有的,你要自己查看才知道。
3. PXXW 真的是一間大公司,由我第一天投訴給 Account Manager 開始,到了第十天才有 Technical Manager 跟我聯繫上,再「游」了兩天 (我也開始懷疑我的表達能力!) ,他才充分明白問題是在 ISP 身上,是要他們解決的。但他跟著說:「我想要我們的 Postmaster 才可以跟 sorbs.net 溝通」我差點想講粗口了!!!
4. 為了「成功」寄信,我最初設定客戶的 email server 改為使用 PXXW 的 smtp server 作為 Relay server ,但用上幾天,發覺有新的問題。原來 PXXW 的 smtp server 是有做 rate control 的,稍稍數量多了 (其實我的客戶每天都是 3xx 封信左右!) ,就會彈信回頭。
5. 最後我改為使用我公司的 smtp server 作為 relay 才完全解決問題。這令我想到提供 Relay Service 給這類被 blacklisted 的公司可能都是一個好的生意。要詳細規劃下.....

2009年6月15日星期一

FSCKVPS 事件簿

上文提到我 5月初時在 fsckvps 購入了一個 vps。本來打算在 6月初寫一篇 Fsckvps one month review 的,但想寫時就發生了 VPS 有史以來最嚴重的攻擊事件。

6月7日開始,VAServ期下 hosting 公司(包括 fsckvps, cheapvpsa2b2)都因為 HyperVM 的漏洞被入侵了,有近一半的 VPS 被完全 data deleted,據說有 100,000 網站受到影響。我的網站有 24 小時不能 login 。焦急的等了 24 小時,看著 VaServ 首頁的 status report 和 Webhosting Talk 上的貼文,當可以登上時,幸運地,我的 data 還完整。

化了整整一個星期,VaServ 的服務還未完全修復過來,我到今天還未可以使用到 Control Panel (可能已經放棄了 hypervm,據聞 vaserv 將會有自家的 control panel),流量等的資料是看不到的,使用時要小心,好像我前兩天「搞」了個 firewall,錯誤的連自己也不能登入,便要開 ticket 要求 reboot server。

如果大家有心機/時間看 webhosting 上這 1xx 頁的討論,雖然抱怨,憤怒的也不少,但大部份都算理解這次事件的起因是 hypervm 對漏洞報告的輕視。 我自己用了個多月,我對 fsckvps 是滿意的:

a. 期間有一次主機的問題要 reboot ,但也有 email 通知我。
b. 我開了 2-3 次的 tickets ,都能在幾小時內回覆 (請注意的是我在香港日間開 ticket 的),她們賣的是 unmanaged hosting,這個服務水平算不錯了。
c. 我買的 plan (USD 9.95/month) 是 512MB Guaranteed RAM/20GB storage ,但大部份時間都都得到 1G Burst Ram usage (我寫了一個script monitor),再者最近還免費提昇至 30GB storage。
d. 我寫了一個 scrpt 每 6 小時計算 unixbench 的 Scoring ,Total Score 全部都起碼 200 以上。(坦白說,我在香港 datacenter 上的 dedicated server 也沒有這個 Score)
e. 她可以用 paypal 付款。這是重要的,因為我真的不想將 credit card 資料給太多公司了。網上也有其他評價很高的 vps 公司 (eg slicehost, linode 等),但因為只有 credit card 這一樣的付款辦法,我都是腳步了。


後話
HyperVM 的開發公司是 LxLabs ,她的創辦人KT Ligesh在入侵事件發生後自殺死了,雖然難說 hypervm 的漏洞是他自殺的主因,但也令這次入侵事件帶來了惋惜。

2009年5月9日星期六

GoGrid Review

GoGrid 試用報告

上一篇 試用GoGrid 登出以後,前兩天收到一位網友的來信問給試用後的評價,就寫點東西吧。
老實說,在GoGrid 開了戶口之後,我用了不太多。主要原因是申請了沒多久,GoGrid 的 network 就給人 DDOS 了,停了兩天。重新運作後,收到一封電郵說全部 non active 的 Server 都封了。如果要重新開啟就需開張 ticket request (只要一次,以後都不用。我想主要原因是想取消一些 non active accounts),見這麼麻煩,便沒有理他。


因為最近做了一些 Zenoss Monitoring 的研究,需要 Windows Server,所以便重新使用。


Control Panel
他的 Control Panel 是很 User Friendly,很容易理解。左面是客口結餘和 Network (可選的 ip address),右面是你已 deploy 的機器。不過這個 UI 的 login 和反應甚慢,另Deploy 一個server 可能要等上 15-20 mins。最不幸的一次是我等了兩個鐘,仍然是正在 deploy 的 status (請留意,這個狀態下你是不能取消 deployment。沒有理它,到第三天再 login ,看到變了綠燈 (即 Server Ready),已經計了錢兩天了!!!!
其實就算是 15-20 mins已經是不理想了,Amazon EC2 只需要 2 mins 左右 (無論是甚麼狀態都可取消 deployment)。Mosso 也是 2-3 mins 內。就算一些 vps 公司,由填申請表,payment 到可以login 用到也是 15-20 mins 之內。


Platform
可以選的只有 CentOS/RHEL 和 Windows。RHEL 和 Windows 有 32 and 64 bits 選。Memory 有 512MB, 1G, 2G 和 4G 選擇。

Download Speed
不同時間,用 Netvigator 的 8M broadband 試了。大約是 650.1KB/s 。我最近試了好幾個 Cloud Computing 和 VPS site 。遲一點可以寫個報告 :-P

UnixBench Mark
甚麼是 UnixBench Mark,自己爬文 吧。
我專登起了兩個新的 Server

512MB Memory 的



BYTE UNIX Benchmarks (Version 4.1-wht.2)
System -- Linux 22167_1_19180_103528.dev.gogrid.com 2.6.18-92.1.22.el5 #1 SMP Tue Dec 16 11:57:43 EST 2008 x86_64 x86_64 x86_64 GNU/Linux
/dev/hda2 29047832 2504820 25067428 10% /

Start Benchmark Run: Tue May 5 04:41:56 PDT 2009
04:41:56 up 1 day, 4:07, 1 user, load average: 0.07, 0.02, 0.00

End Benchmark Run: Tue May 5 04:53:17 PDT 2009
04:53:17 up 1 day, 4:18, 1 user, load average: 13.30, 5.83, 2.66


INDEX VALUES
TEST BASELINE RESULT INDEX

Dhrystone 2 using register variables 376783.7 6137109.3 162.9
Double-Precision Whetstone 83.1 2068.5 248.9
Execl Throughput 188.3 136.4 7.2
File Copy 1024 bufsize 2000 maxblocks 2672.0 117183.0 438.6
File Copy 256 bufsize 500 maxblocks 1077.0 43745.0 406.2
File Read 4096 bufsize 8000 maxblocks 15382.0 405679.0 263.7
Pipe-based Context Switching 15448.6 158197.5 102.4
Pipe Throughput 111814.6 1154591.2 103.3
Process Creation 569.3 728.5 12.8
Shell Scripts (8 concurrent) 44.8 104.7 23.4
System Call Overhead 114433.5 897459.8 78.4
=========
FINAL SCORE 90.7




4GB Memory



BYTE UNIX Benchmarks (Version 4.1-wht.2)
System -- Linux 22167_1_19405_104793.dev.gogrid.com 2.6.18-92.1.22.el5 #1 SMP Tue Dec 16 11:57:43 EST 2008 x86_64 x86_64 x86_64 GNU/Linux
/dev/hda2 236995428 2575348 222444496 2% /

Start Benchmark Run: Wed May 6 22:00:23 PDT 2009
22:00:23 up 7 min, 1 user, load average: 0.00, 0.11, 0.09

End Benchmark Run: Wed May 6 22:10:45 PDT 2009
22:10:45 up 18 min, 1 user, load average: 14.04, 5.80, 2.56


INDEX VALUES
TEST BASELINE RESULT INDEX

Dhrystone 2 using register variables 376783.7 18751283.0 497.7
Double-Precision Whetstone 83.1 2092.8 251.8
Execl Throughput 188.3 436.6 23.2
File Copy 1024 bufsize 2000 maxblocks 2672.0 150483.0 563.2
File Copy 256 bufsize 500 maxblocks 1077.0 39550.0 367.2
File Read 4096 bufsize 8000 maxblocks 15382.0 1063188.0 691.2
Pipe-based Context Switching 15448.6 254648.3 164.8
Pipe Throughput 111814.6 3191803.0 285.5
Process Creation 569.3 986.2 17.3
Shell Scripts (8 concurrent) 44.8 126.5 28.2
System Call Overhead 114433.5 2698898.4 235.8
=========
FINAL SCORE 163.7




我想最 informative 的 Final Score。同樣地我也試了其它 Cloud Computing 或 VPS Site 。這兩個 Final Score 其實不高,甚至可以說是低。
可以首先跟大家說的是最高的 unixbench mark 是我前幾天申請好便宜的一間 Fsckvps.com 。我用了最便宜的 512Mb Plan - Atlanta $9.95/month。一 deploy 便試,Total Score 竟然有445.9

Technical Support

是蠻好的,我開 ticket 要求重開我的戶口,幾小時便辦好。跟著還會跟進問題是否解決,滿意。

Conclusion
GoGrid 除了有 Server 外也有一個 CloudStorage,不過只通 Server。起了 Server 後就可用 Rsync, samba 等經 API 連接。 Server terminate 之後資料仍然存在。最初的 10G 還是免費的,之後的收費跟 Amazon S3 差不多,但有一點是特別的 ---- 免 inbound traffic。即只計你和 Gogrid Server 的 inbond traffic.
大家想到可以做甚麼?? 對了,就是起一個 Rsync 的 offsite backup server.
我算過了,如果你有 USD100 的 Promo Code,每天起一個 Server 1-2 小時,自動做 rsync server ,這 $100 應該可以用一年。
當然首先是要研究一下這些GoGrid API .