買了 HTC Magic 三週,買的原因如下:
遲點講講用後報告。
相關連結
任何有用心管理伺服器的管理員都會清楚,ssh 伺服器長年累月都會被全世界千千萬萬電腦使用不同的使用者名稱 / 密碼組合,不斷嘗試進入。如果沒有收緊密碼的品質,很易就被人在伺服器內玩個天翻地覆,不亦樂乎。固然制止的方法非常多,就好像我自己,以往是使用 denyhosts 的;但最簡單又有效,應該是更改 port number。因為絕大多數蠕蟲其實都笨得要死,試名稱和密碼,往往只會找 port 22 來不斷試,只要改了 port,立即一片安寧。
不過改了 port,以後使用時是否每次都要用 ssh -p 1234567 那麼麻煩?其實不用那麼煩,只要改一下設定,以後就可一勞永逸。假設需要經常進入兩部不同的伺服器,一個 ssh 用 port 1234,另一個用 port 34567,可以在 ~/.ssh/config 內加入:
Host myhost1 Hostname blah.myexample.com Port 1234 Host myhost2 Hostname foobar.example12345.info Port 34567以後用 Linux / Unix 進入兩部主機只需要用 ssh myhost1 和 ssh myhost2 就可以,不用記 port。至於 Windows,雖然每個 ssh 程式 (例如 putty) 的設定介面有所不同,但都很輕易就可以改 port。而且這個方法連帶所有依賴 ssh 的服務都一併搞定,例如 subversion 配合 ssh (svn+ssh://),就不需要好像 subversion 手冊所教那樣用些又煩又容易忘記的途徑處理。
應付有心人對於人就沒有那麼輕鬆,很大程度上是因為可以進行 port scan,找出更改到哪個 port,然後繼續測試。規避一些 port scanner 經常掃描的 port,特別是 nmap,是可以騙倒一些大笨蛋,但醒目一點的,即使是用防火牆防備 port scan,也只是權宜之計,花多點時間和耐性始終是找得出用哪個 port 的。port knocking 好像未有足夠大眾認知, 而且老實說,我對它還是有點戒心。(如果它忽然發傻,那我以後要怎樣進入伺服器?) 所以,到最後加強密碼的質素始終是不二法門。
另外有個稍為麻煩的方法可以採用,就是用防火牆限定某些 IP range 才可進入,像自己用的 ISP、工作地點等等,不過這個 range 不可謂不大,為了它可能要加數十條規則也說不定,不容易做。
世上任何一部伺服器,只要連上互聯網,就有可能被攻擊,除非像人們所說般,關掉伺服器,鎖進夾萬,那才是最安全的。同時,這世上也從未出現過萬能的防御 (有的話,發明的人或許是這世上最有錢的人了),暫時唯有 defence in depth,將各式有用的防御組合起來,才是王道。就目前來看,改 port 加上防火牆是最節省資源的方式,雖然不表示防火牆容易設定。為節省腦汁,我嘗試過將全香港的 IP range 都加入防火牆。能夠阻擋所有外國的攻擊已算不錯,但那些規則足足有數百條之譜!
最近在弄nagios的监控,发现网上很少介绍在lighttpd的基础上配置nagios的资料,英文的也很少,我把我写的放出来,希望能帮到有需要的 朋友。我这里给出基本的配置文件,对于nagios的高级配置和操作我也在学习过程中。
第一步,因为是在debian下,所以可以直接用apt-get安装nagioa。
apt-get update
apt-get upgrade
install nagios3 mg less
这样nagios就基本装好了,默认的配置可以满足最基本的要求。不过会自动安装上apache,对于基于lighttpd的web服务来说,可以手工停止apache。
第二步,创建用户和密码文件
cd /etc/nagios3
htpasswd -c htpasswd.users nagiosadmin
htpasswd这个命令式在apache带的,如果是通过源码包安装的nagios,又没有apache的话,需要单独安装htpasswd命令。
第三步,创建并写入nagios的lighttpd配置文件
vim /etc/lighttpd/conf-enabled/nagios3.conf,写入
alias.url = (
"/cgi-bin/nagios3" => "/usr/lib/cgi-bin/nagios3",
"/nagios3/stylesheets" => "/etc/nagios3/stylesheets",
"/nagios3" => "/usr/share/nagios3/htdocs"
)
$HTTP["url"] =~ "^/cgi-bin" {
cgi.assign = ( "" => "" )
}
$HTTP["url"] =~ "nagios3" {
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/etc/nagios3/htpasswd.users"
auth.require = ( "" => (
"method" => "basic",
"realm" => "nagios",
"require" => "valid-user"
)
)
}
如果配置文件里不加入"/nagios3/stylesheets" => "/etc/nagios3/stylesheets",而nagios又可以正常访问的话,可以去掉。如果发现访问的页面只有文字,没有图标和颜色的话,加上就可以了。
第三步,修改lighttpd的主配置文件,加入
mod_auth
mod_fastcgi
mod_cgi
mod_access
mod_alias
mod_accesslog
mod_compress
已有的项目之用去掉注释符号“#”就可以了。
完成后,debian下的nagios就基本可用了,当然,这样只能做最基本的监.
Something is very wrong here. What happened? Is sed buggy?
If nobody can solve this mystery in this weekend, one more hint will be provided in the coming Tuesday.
After upgrading the punknix.com to Debian Lenny, the next major task is upgrading the Xen kernel in Dom0 host and the kernels in all DomU guests. Thanks to this link, it provides useful information on upgrading Debian Lenny Xen 3.2.
Upgrade the Xen kernel and hypervisor by: # apt-get install \ xen-hypervisor-3.2-1-i386 \ xen-linux-system-2.6.26-2-xen-686 \ xen-utils-3.2-1 \ xenstore-utils xenwatch \ xen-shell xen-tools
Edit all /etc/xen/*.cfg to change the Xen DomU guest kernels: kernel = '/boot/vmlinuz-2.6.26-2-xen-686' ramdisk = '/boot/initrd.img-2.6.26-2-xen-686' extra = "console=hvc0 xencons=tty" The last "extra" line is needed for 2.6.26 DomU guest. Then reboot the machines and then restart all DomU guests, that is!
After reboot, new Xen hypervisor is run, Dom0 host shows: punknix:~# uname -a Linux punknix 2.6.26-2-xen-686 #1 SMP Mon May 11 21:51:55 UTC 2009 i686 GNU/Linux punknix:~# Restart Xen DomU guests, and one of my DomU guest shows new kernel is run: punknix-uml:~# uname -a Linux punknix-uml 2.6.26-2-xen-686 #1 SMP Mon May 11 21:51:55 UTC 2009 i686 GNU/Linux
一直以來在網上都見到不少人投訴香港 Google Maps 的更新有多慢,資料如何不準確,這些人一定是未用過 Yahoo 那個地圖。如果︰
中環渡輪碼頭外的是南中國海;

九龍和香港之間一條隧道都沒有;

彌敦道和旁邊的橫街是對等的存在;

香港從來沒有一間稱為「城市大學」的建築;

那麼還會不會這麼憤憤不平?就算要指出 Google Maps 的錯處,也不會像是 Google 負了大眾一樣的態度吧?固然 Google Maps 還有許多有待改善的地方,但它已經是全港僅有的兩個值得改善的地圖之一 (另一個要算是中原地圖)。真是身在福中不知福!
二十年前,我只是一個中學生,曾經參加過大大小小不同的集會和遊行。二十年來的集會,我大約參予了超過一半。曾經思考過繼續參加的意義和作用,結果這幾年仍是繼續。不知不覺地,已二十年了。
從來沒有想過在香港這資訊發達的地方,歷史可以被埋沒。我中學時代的歷史科對中國近代史也是輕輕帶過。對大躍進和文革的描述亦是十分含糊,但最少我也知道文革大概是怎麽一回事。然而,聽得多新一代言論令我驚覺很多時不是如我所想理所當然。我不怪新一代對歷史的不關心,最多只能說是無奈。因為我相信我不能把自己的價值觀强加新一代。不過面對新一代對是非黑白的扭曲就不得不正視。
今年的集會對我來說多了一份意義。這不單是要告訊當權者歷史不能被埋沒,亦是期望被洗腦的新一代看到我們經歷過那時代的人思想和他們的差異,重新思考自己價值觀的正確性。
謹以 Les Miserable 的一曲 Drink with me 送給二十年前的死難者:
ENJOLRAS: Marius, rest.1,千万不要和巴萨打对攻,哪怕只是开场前10分钟的出其不意的战术性试探。
2,千万不要怀疑在自己以前的所有那些面对巴萨时无法抢下球来的球队的抢截能力,他
们都不比你们差,实在是真的抢不下来。
3,千万不要上巴萨的心理战的当。当他们在媒体上高喊"有种就对攻"的时候,千万不要
跟他们斗气,不要被激怒,不要为了面子去当那个有种的傻瓜。今天的比赛,感觉是"老
人家上了年轻人的当"。
4,千万不要再质疑希丁克面对巴萨和西班牙队时安排的战术了,他是最有体会最明白如
何制约巴萨和西班牙的了。千万别想尝试另外一条路,那是死路一条。
5,明年世界杯赛上,面对西班牙,千万让老天安排一下阿根廷或者巴西队来,让我们看
看到底这个星球上目前有没有可以跟他们打对攻比控球比技术战术的球队。至少目前欧洲
没有,这个真没有。
6,千万不要以为梅西不会头球。尽管今夜之前的确很少看到他的头球得分。
7,千万不要以为一个第一年干主教练的人就不可以包揽所有参加的比赛的冠军,尽管这
样的起点高得吓人,让人不知道他以后的每个赛季如何评定业绩——难道以此赛季为标准,
那岂不是年年都是负分了?
8,千万不要以为足球场上技术和意识是有尽头的,看巴萨的比赛,感觉他们的技术和意
识水平,领先世界一个年代。
9,千万不要因为一场足球比赛的胜负影响了端午节的心情,无论胜负哪一方,都不会免
费送给任何一个中国球迷一件真品球衣或者一张飞到自己主场看球的机票和门票,人家是
职业足球。反正我是不会少吃一个粽子的。
不能再写了,再有一个千万就够一亿了。
今天的足球是美丽的,足球还是可以更美丽的。
i-cable 今次為莘莘學子做了件好事,即使我早就脫離魔掌,不再受這天殺的所謂教育制度蹂躪,仍為這班未來的所謂主人翁深感憂慮 (假設香港有未來的話)。一切出於有線找來了陶傑來試做通識科試卷,鬧出的是大笑話還是大悲劇,視乎觀點與角度吧。(這段影片需要在 Windows 觀看)
之後陶傑在商業電台的《光明頂》節目更仔細地批評整件事。有幾位人兄在節目留言板中留言,當然支持反對皆有︰
我是中學教師,多年來都有改會考卷,我發現考評局的評分標準通常是少數人把持,就算不合理都不會考慮教師或公眾人士的意見,而最考卷是通常是某些被當局揀選的人擬設,當中有少數為現職中學教師,這些人既操縱出卷方向,亦把持評分方法,極不公平,相信在電視上有份批閱閣下答卷的通識老師都可能是考評局的擬卷員(特別是話你留力的鄧飛老師)…..直接地說,通識科是專制獨裁政治制度下的產物.
主持人說:「通識科答案不重要,重要是思考方法…」我想陶先生是成年人,人生經驗和知識都太廣博,但要是評卷後重重抨擊,倒不如在答卷時大膽一些,看看哪些評卷者是否「夠膽比分」,當有人「不夠膽答」怎能說人「不夠膽改」,然後又說這樣說那樣,對批改的老師並不公平。如果有人擔心政治不正確而自我審查,擔心自己答錯,而批評擬卷者有錯,對擬卷者亦不公平。尤其,陶先生有電台、報章等媒體幫助發聲,批卷老師和擬卷人士只可以啞忍,毫無還擊之力,亦是再一次不公平。
可是,令我覺得最可悲的是這段留言︰
對各位主持的話感慨良多.
十來歲看徐志摩時, 感到弦外之音, 是作者懷念情人之意.
當年問老師,他們叫我不要多事,只顧書本規範之意即可.
長大後, 再看徐志摩, 他真的有林徽音, 唉!
這種教師在香港恐怕多如恆河沙數,如果不是這些人配合,香港又如何能搞得出那種畸型的教育體制出來,讓人引以為恥?
話說回來,最精采的地方非得聆聽以下的節目錄音不可!
如果未聽過這段錄音,那就要聽聽了,因為這才道出整個笑掉牙的甚麼「通識」的本質出來!本來只看 i-cable 的影片還有點保留,但聽過節目後,我才完全 buy 陶傑的批評!很多地方是那種專養廢人的考試局無論如何都沒法死拗的︰
好,且看考試局那班廢柴怎樣回應?
還好意思拿奧運來比較?奧運每個項目有多少個評判?每個評判也不是省油的燈,能將隨時隨地可以做閱券員的人拿來相提並論?就是兩個閱券員那麼多,就可以保障不會評錯?能夠保障不會是一個賭輸錢,另一個是前一日被校長訓話,準備找人出氣?我認為陶傑第二次出手,狠批?還是太小兒科!
於我而言,考屎局無論怎樣被人鞭撻都不為過,只會嫌少,不會嫌多。全靠這班人,香港才能夠培育一大羣統一政治意識,符合「社會要求」的 clone army 出來呀。為甚麼說高官子女剛巧全都不適合香港的教育制度?理由現在不是路人皆知了嗎。

不論上班、上學、回家,甚至遊山玩水,一般人無論選甚麼方法前往目的地,不外乎幾個原則:
這兒就不考慮理性以外的心理因素了,因為多得不可勝數,也無法預算和估量。例如:
撇除這些理由後,大原則大致不出上面幾個。但是,每個人的衡量標準都不盡相同,以哪個優先,極可能有不同答案。要有一個準則適合大部份人殊不容易。
![]()
生活節奏急促的都市人(不單是香港,各大城市皆然),時間是最寶貴的;尤其是上班一族,節省上下班的交通時間,以換取多點休息時間至為重要。如果收入不是很低,或者交通費用不是差太遠,相信很多人寧願選擇快一點的路線。如果出發地和目的地都在鐵路沿線範圍內,火車地鐵等交通工具都是上乘之選,因為這些交通工具不易受塞車影響。倒過來,這也是缺點之一,因為太多人會選擇鐵路,造成高峰時間過於擠迫。
![]()
價錢也是一部份人的首要考慮條件,主要對於交通費用佔收入比例較高的人而言。不少人對於不斷加價的巴士、鐵路、渡輪服務叫苦連天,可見一斑。如果交通費用太高,所節省的時間未必能補償生活質素降低帶來的後果。不是這樣,也不會有那麼多人選坐電車和過海渡輪吧。
轉車次數這也是針對上班一族的重要因素。出外旅遊的話,轉車多寡不一定重要;但上班一族大部份都不願意太勞累,因此不願轉車太多。車程不是差太遠,價錢也不是高得離譜,寧可在車上多睡一點,或者鬆弛一下神經。
可是,不是任何類型的轉車都同樣地不可接受。至少,輕鐵和某幾處港鐵的轉車對大部份人來說都很輕鬆平常。雖然香港沒有這方面的實際統計調查,但大概的原因是可以推斷出來的:轉車不需要花太大的氣力。最好的例子莫過於在太子、旺角轉綫,幾乎不用走路之餘,列車班次又非常頻繁,不用等。走太遠,或者班次太稀疏,都是會有人不滿意的。
特殊例子大多數情況下一般人都會在上述幾個條件中取捨。除此之外,還有在某些客觀和主觀因素下,令某個條件完全主宰決定。以下是一些例子:
![]()
這兩個選擇固然不是公共交通工具,但對於人來說,選擇交通工具不能不考量這兩個選擇:
它們隱含的意思是,衡量上面幾種原則時是有限度的。
不久前就有朋友對我說坐巴士去學校,包括等車,需要足足一小時,步行也不過是一小時,寧可選擇每天步行。當然,這麼不濟的交通路線在香港應該是很罕有的。會出現步行或坐的士,一般上除了之前提過的特殊例子外,就是沒其它選擇的情況才會採用,例如前往某些交通不便的山頂或在離島範圍內活動。
![]()
對於下肢殘缺的人士和有視力障礙的人士,要求很不同。一方面,他們/她們需要盡量避免在轉車期間長時間步行或坐輪椅,也有些交通工具不適合這些人,例如一部份巴士,和所有小巴、渡輪、電車,勉強乘坐易生危險。而且輔助設施的缺乏也限制了這批人的活動範圍。
I have been using viewcvs to provide source browser to Voyage Linux source codes for a few years. After Debian upgrade, viewcvs is now (seemlessly) replaced by viewvc. The upgrade is not the trouble although there are some re-configurable issue I had to deal with. The most painful part is that the original /cgi-bin/viewcvs.cgi/ URL no longer available and has changed to /cgi-bin/viewvc.cgi/ that makes all the reference link broken.
In order to provide backward compatibility to the original URL so that I have no need to modify all the cvs URL in Voyage Linux web site, I decided to use modrewrite to rewrite /cgi-bin/viewcvs.cgi/ to /cgi-bin/viewvc.cgi/. So I edit my virutal host configuration file to add:
RewriteEngine On RewriteRule ^/cgi-bin/viewcvs.cgi(.*) /cgi-bin/viewvc.cgi$1 [R]I tried without the "redirect" [R] option, but won't work. It works only if I set it as redirection rather than rewrite. So when you test http://cvs.voyage.hk/cgi-bin/viewcvs.cgi/, it is now being redirected to http://cvs.voyage.hk/cgi-bin/viewvc.cgi/ now.
There is a side issue in the upgrade. After upgrade, the viewvc image files are not accessible and return 404. For example if I access http://cvs.voyage.hk//cgi-bin/viewvc.cgi/*docroot*/images/logo.png", I got the following: An Exception Has Occurred Static file "images/logo.png" not available ([Errno 2] No such file or directory: '/usr/lib/templates/docroot/images/logo.png') HTTP Response Status 404 Not Found Python Traceback Traceback (most recent call last): File "/usr/lib/viewvc/viewvc.py", line 3766, in main request.run_viewvc() File "/usr/lib/viewvc/viewvc.py", line 183, in run_viewvc return view_doc(self) File "/usr/lib/viewvc/viewvc.py", line 2342, in view_doc % (document, str(v)), '404 Not Found') ViewVCException: 404 Not Found: Static file "images/logo.png" not available ([Errno 2] No such file or directory: '/usr/lib/templates/docroot/images/logo.png') After searching, I found this debian bug report very useful. The key is to give the template dir an absolute path: #self.options.template_dir = "templates" self.options.template_dir = "/etc/viewvc/templates" And this solve the final issue I have with viewvc.
Around mid-May I have upgraded punknix.com server which is a P1-AH2 barebone with the new AMD Athlon 64 X2 5050e. Not only this CPU has a low 45W TDP (review can be find here: [newegg] and [tomshardware]), but also clocked at 2.6GHz. Hence, I expected this CPU can run faster and with cooler temperature than the replaced Athlon 64 X2 4400 2.3GHz. This CPU is the most best suited for my tiny punknix.com server with also runs 3 Xen DomU guests.
the 'cat /proc/cpuinfo' gives me this information: processor : 1 vendor_id : AuthenticAMD cpu family : 15 model : 107 model name : AMD Processor model unknown stepping : 2 cpu MHz : 2612.100 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu de tsc msr pae cx8 apic mtrr cmov pat clflush mmx fxsr sse sse2 ht nx mmxext fxsr_opt 3dnowext 3dnow pni cmp_legacy extapic cr8_legacy 3dnowprefetch bogomips : 5225.80 clflush size : 64 power management: ts fid vid ttp tm stc 100mhzsteps The most disappointed thing after the upgrade is that I cannot find any update of the BIOS of P1-AH2 (M2N8L motherboard ) to recognize the newest CPUs. So /proc/cpuinfo reports "AMD Processor model unknown". Indeed, the CPU flags returns no "svm" flag. I doubted that would 5050e support hardware virtualization as I thought that all latest AMD CPUs after Pacifica should support SVM. This may be due to "unknown AMD processor" gives wrong report in cpu flags. But when I run a voyage kernel compilation test on DomU guest, it reports: real 12m24.383s user 17m2.576s sys 1m56.547s which is similar to my expectation. Or, may be SVM does not affect Xen paravirtualzation at all, but only affects kvm.
The sensors programs proved the new chip is COOLER! k8temp-pci-00c3 Adapter: PCI adapter Core0 Temp: +25.0 C Core0 Temp: +22.0 C Core1 Temp: +27.0 C Core1 Temp: +29.0 C dme1737-i2c-0-2e Adapter: SMBus nForce2 adapter at 4c00 V5stby: +0.00 V (min = +0.00 V, max = +6.64 V) ALARM Vccp: +1.18 V (min = +0.00 V, max = +2.99 V) V3.3: +3.29 V (min = +0.00 V, max = +4.38 V) V5: +4.99 V (min = +0.00 V, max = +6.64 V) V12: +11.83 V (min = +0.00 V, max = +15.94 V) V3.3stby: +3.27 V (min = +0.00 V, max = +4.38 V) Vbat: +3.00 V (min = +0.00 V, max = +4.38 V) CPU_Fan: 2020 RPM (min = 0 RPM) Fan2: 0 RPM (min = 0 RPM) Fan4: 0 RPM (min = 0 RPM) RD1 Temp: FAULT (low = -127.0 C, high = +127.0 C) ALARM Int Temp: +50.7 C (low = -127.0 C, high = +127.0 C) CPU Temp: +45.0 C (low = -127.0 C, high = +127.0 C) cpu0_vid: +1.550 V The fan is running steady 2,000 RPMs at idle and 3,000 RPMs at load. When compare to 3000/5000 RPMs I saw with the old 4400, I am much satisfied. Temperature figures also showed 5050e is 5-10 C degress cooler.
近來主要玩 EeePC touchpad 的 gesture。UNR 預設設定了:
提到滾動滑鼠滾輪, 要滾動很長的網頁或文章。雙指上下移動 或在touchpad 右邊沿上下移動 都不是好方法。因為 touchpad 上下距動有限,scroll 不了多遠就到 touchpad 頂或底,如果要再 scroll 又要把手指移至 touchpad 頂再 scroll,很不方便。
事實上 touchpad 亦可以用所謂 circular scroll, 即是在 touchpad 打圈來 scroll。這方法可以無限 scroll 上 scroll 下。要用 circular scroll, 要改動三個 synaptic touchpad 參數:
我最後使用這個設定:
synclient CircularScrolling=0 CircScrollDelta=0.5 CircScrollTrigger=1
Moblin 不動聲色,突然發表了使用新設計介面的 Moblin 2.0 Beta for Netbook。這個柔合了 Nokia Maemo 和 OLPC Sugar 的介面頗酷,確實令人眼前一亮。
Moblin 原本主要針對 MID 而設,但見 Netbook 大熱,2.0 也分一杯羮。這次展示的 UI 就是針對 Netbook。第一個畫面是所謂 m_zone 的介面,左邊顯示重要日程、To-Do-list 和常用軟件,右邊分兩區以 thumbnail 顯示多個最近存取的網站、圖片、影片和 Twitter 等 Microblog 訊息。頂部面板則用來顯示時間、電量、連線等狀態和主要工具。主要工具包括可以即時改變 Twitter 等 Microblog 狀態、通訊錄、瀏覽器、多媒體管理程式、剪貼薄、應用程式列表和切換應用程式。通訊錄、瀏覽器、多媒體管理程式、剪貼薄和應用程式列表都主要用 incrememtal 搜尋方式找需要的朋友、網頁、圖片、影片和應用程式。通訊錄功能頗似 Maemo,其實如果一般桌面都可以這樣做也不錯。瀏覽器兼具類似 Firefox Awesome bar 的 automagic bar,亦可以用 thumbnail 切換不同分頁。切換軟件方面,用 zone 取替了傳統 X Window 的 workspace。各視窗可以方在不同的 zone, 當一個 zone 沒有任何視窗就會自動消失,將一個視窗移至最右邊又會自動產生一個新 zone 存放新視窗。在各 zone 間切換和移動視窗的介窗,很似令人引頸以待的 Gnome Shell。
據說這個 beta 版還很 buggy, 但新介面確實令人感興趣。對一般桌面可能略少了彈性,但對細螢幕的 netbook 或 MID 似乎頗適合。如 Jim Zemlin 所說,Moblin 這個 UI 設計是專研了一般使用者使用 Netbook 的習慣,而不是把桌面搬上 Netbook。並非完美但有很多值得借鏡的地方。
不過針對 Netbook, 還是使用 Firefox 較適合。Moblin 自家的輕量 browser, 對 MID 使用者還可。始終 netbook 用戶是期週一些全功能的應用程式。
相關連結: