網頁

2005年10月31日 星期一

wordpress 的 categories

預設的 theme 是不會出現 RSS Feed 的標籤的。但是其實如果有人想要訂閱某個 category 下的文章的話其實 wordpress 早就提供這樣的功能。只要在那個分類目錄的後面加上 /feed/ 的 URI 就會噴出 RSS 格式。至於想要讓出現在 sitebar 上的 categories 直接出現 RSS 的 link (像是鹿小滑那邊一樣),則得稍微設定一下 sitebar 那邊叫出 category 的 function。我現在是改成這樣:

< ?php wp_list_cats('sort_column=name&hide_empty=1&optioncount=1&feed=rss
&feed_image='. get_template_directory_uri().'/images/icon_rss.gif'); ? >

所以在分類旁邊就會出現 RSS 的圖示了。

what does RSS stand for?

剛剛 clode 問這個問題的時候 ekac 給了很有趣的答案 「really slippery stuff」。至於這是什麼意思呢,這就是傳說中的「鹿小滑」的別名「真是滑」。詳細內容沒空寫很清楚,不過可以暫時參觀便便土司寫的這篇

大家請多多 feed RSS grass 吧!

PS. 正解應該是「RDF Site Summary」

2005年10月28日 星期五

64 位元好猛啊!

64 位元真的不是蓋的,好大啊。一般對於 32 bits 的系統來講要把 int 玩到 overflow 似乎不是什麼很困難的事,可是對於 64 bits 的系統來說就很難講。以下就來介紹我昨天被嗆的原因以及試圖要幹的蠢事 XD。

2005年10月27日 星期四

OpenVPN

一陣子以前(好像是今年寒假左右?)曾經為 RW 架了 OpenVPN ,忘了是為什麼了,反正不外乎就是要搞邪惡計畫或者是玩遊戲。之前裝的時候還記得好像剛好是 2.0 RC12 然後剛好出 2.0 RC13 , FreeBSD 的 Ports 還在舊的 1.1.2 的樣子,所以我用手動的方式搞上去的。印象中好像還用 Static Key 搞了很久,期間一直都沒注意到他說如果要用 tap driver 加上 server mode 的話得用 TLS/SSL 而不能用 preshare static key ,然後因此耍了蠻久的白痴。而且那時他沒有提供所謂的 EASY-RSA 這目錄裡的 script ,不然也許是我眼瞎沒找到,所以餵了憑證也生了好久。又因為要為每個人都建憑證大麻煩了,在那邊蓋半天之後才發現原來有 duplicate-cn 的選項讓大家都能用同一份 key ,後來把 key 跟著 OpenVPN GUI for Windows 給包起來給要用的人抓之後才好不容易弄好。

現在由於學校的無線網路 仍然處於門戶大開的階段(完全沒有加密),也因此在我之前的小黑上完全不敢裝 KKMAN / PCMAN 之類的軟體,也不敢連 MUD ,所以在打密碼的時後都得再三確認這網頁到底有沒有加密。雖然說用 ssh tunnel (經由 putty or pietty 來建立)到某台機器的 proxy 可以解決大部分的問題,不過這只限於 http protocol 。也因此又讓我興起了再來裝 OpenVPN 的念頭。擇日不如撞日,於是乎昨天帶完os的課後輔導後就在 LAB 動手了。

2005年10月17日 星期一

DNS 爆炸的問題

看起來似乎找到兇手了。所以前面那篇似乎是錯怪我們偉大的微軟大哥了。本來以為是WindowsXP在討打,結果就算重灌了之後好像情況還是依然沒改善,動不動就會把 blog.cookys.org 指到舊的 ip 去然後爆炸,而且這個問題那位「色小外長輩」好像有跟我反應過,不過機八鴉卻說他都沒遇到,然後拼命嘲笑我說我家台子爆炸了,我猜應該是因為他用 Sharp Reader 來收 RSS 所以都沒感覺,唯一有感覺大概就是RSS噴汁的時候?

問題是出在之前申請的免費 DNS slave:PowerDNS ,今年二月多幫 cookys.org 掛上去的 dns 避免 ADSL 一掛就全部斷光的慘況。不過前一陣子PowerDNS說他們不幹了:

Dear cookys lin,

This message is to inform you of an important change concerning your
PowerDNS Express account.

PowerDNS Express currently provides free dns hosting for over 40.000 domains
worldwide, and this number is still increasing every day.
Unfortunately, we have been suffering from heavy abuse lately. Botnets,
spammers using our mailforwards and repeated DOS attacks have increased our
costs of running this service enormously.

We regret to inform you that, in order to keep providing you with high
quality DNS management, we are forced to stop all free services on PowerDNS
Express as of today.

As a result, your account needs to be upgraded.
Because we would really like to keep you as our customer, we've lowered the
prices of our paid services significantly! Have a look at
http://express.powerdns.com/cshop.php for our new prices.

Please login to your account first to purchase the appropriate packages
and/or remove any unused domains.
Starting October 15th, 2005 we will be disabling accounts that are over balance.

然後我只是沒注意理他,想說掛著那天想到再把他拿掉就好,反正應該沒差。就算那台機器不回依照 DNS 的機制反正還是會查的到。天曉得因為太相信這樣的機制所以就倒楣了。因為PowerDNS的 DNS 「還在線上」、而且「還會回應」,但是「不會更新」。剛剛發現的:

正常的 DNS:

[22:29-/var/log-] $ dig blog.cookys.org @dns.cookys.org

; <> DiG 9.3.0 <> blog.cookys.org @dns.cookys.org
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15828
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3

;; QUESTION SECTION:
;blog.cookys.org. IN A

;; ANSWER SECTION:
blog.cookys.org. 600 IN A 140.134.26.72

;; AUTHORITY SECTION:
cookys.org. 600 IN NS dns.hysh.tnc.edu.tw.
cookys.org. 600 IN NS dns.twku.net.
cookys.org. 600 IN NS dns.cookys.org.
cookys.org. 600 IN NS dns2.cookys.org.

;; ADDITIONAL SECTION:
dns.twku.net. 600 IN A 61.219.228.78
dns.cookys.org. 600 IN A 220.134.232.80
dns2.cookys.org. 600 IN A 140.134.27.100

;; Query time: 3 msec
;; SERVER: 220.134.232.80#53(dns.cookys.org)
;; WHEN: Sun Oct 16 22:29:56 2005
;; MSG SIZE rcvd: 193

跑去查 PowerDNS 的話:

[22:29-/var/log-] $ dig blog.cookys.org @dns-eu2.powerdns.net

; <> DiG 9.3.0 <> blog.cookys.org @dns-eu2.powerdns.net
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32436
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;blog.cookys.org. IN A

;; ANSWER SECTION:
blog.cookys.org. 600 IN A 210.59.67.2

;; Query time: 343 msec
;; SERVER: 212.72.55.217#53(dns-eu2.powerdns.net)
;; WHEN: Sun Oct 16 22:30:08 2005
;; MSG SIZE rcvd: 49

真是有夠歡樂啊!所以來去去爸爸PowerDNS拿掉之後就等他更新了吧,希望這樣就解決了-_-。

2005年10月14日 星期五

超神奇的網卡 polling

不知道多久之前,好像是 10/4 吧。cvsup 的時候習慣性都會看一下 src 底下的 UPDATING 看看有沒有什麼新鮮事,那時就看到了:

20051001:
        kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
        to turn polling(4) on your interfaces.

而這次在長輩的板又看到,於是跑去翻 mailinglist,找到這篇,然後又到處 google 了一下為什麼反而又換回去 polling 模式,在半信半疑當中升上了 7.0 CURRENT 10/1 之後的版本,不過按了 ifconfig sis0 polling 之後竟然不理我。後來才發現原來 kernel 裡面要加上
options   DEVICE_POLLING
才會動,稍微測了一下,非常的出乎意料之外...當時如果有人路過我旁邊大概會覺得這瘋子很奇怪,嘴巴合不起來對螢幕傻笑是怎樣,來看看吧:

sis0: flags=8843 mtu 1500
        options=8
        inet6 fe80::290:ccff:fe73:c148%sis0 prefixlen 64 scopeid 0x1
        inet 192.168.210.254 netmask 0xffffff00 broadcast 192.168.210.255
        ether 00:90:cc:73:c1:48
        media: Ethernet autoselect (100baseTX )
        status: active

lab# ping -f 192.168.210.1
PING 192.168.210.1 (192.168.210.1): 56 data bytes
.^C
--- 192.168.210.1 ping statistics ---
383228 packets transmitted, 383227 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.087/0.310/2.778/0.342 ms

 


last pid:  5249;  load averages:  0.75,  0.51,  0.27                                                 up 0+07:26:32  22:49:40
56 processes:  2 running, 54 sleeping
CPU states:  3.0% user,  0.0% nice, 30.7% system, 24.3% interrupt, 41.9% idle
Mem: 167M Active, 631M Inact, 136M Wired, 31M Cache, 111M Buf, 2328K Free
Swap: 2019M Total, 2019M Free

 

  PID USERNAME  THR PRI NICE   SIZE    RES STATE    TIME   WCPU COMMAND
 5249 root        1  80    0  4644K   892K RUN      0:10  5.22% ping
  595 cookys      1  79    0  6748K  2160K select   0:18  4.49% screen
 4732 cookys      1  78    0 29364K  2932K select   0:12  2.98% sshd
  545 mysql       3  20    0 64484K 49600K kserel   0:20  0.00% mysqld

然後從 192.168.210.1 看 dumeter:


然後換成 Polling

lab# ifconfig sis0 polling
lab# ifconfig
sis0: flags=8843 mtu 1500
        options=48
        inet6 fe80::290:ccff:fe73:c148%sis0 prefixlen 64 scopeid 0x1
        inet 192.168.210.254 netmask 0xffffff00 broadcast 192.168.210.255
        ether 00:90:cc:73:c1:48
        media: Ethernet autoselect (100baseTX )
        status: active
last pid:  5255;  load averages:  0.84,  0.61,  0.35                                                 up 0+07:29:32  22:52:40
56 processes:  2 running, 54 sleeping
CPU states:  0.7% user,  0.0% nice,  0.0% system,  0.0% interrupt, >99.3% idle
Mem: 175M Active, 608M Inact, 136M Wired, 49M Cache, 111M Buf, 2452K Free
Swap: 2019M Total, 2019M Free

  PID USERNAME  THR PRI NICE   SIZE    RES STATE    TIME   WCPU COMMAND
  595 cookys      1  76    0  6748K  2160K select   0:26  0.00% screen
  545 mysql       3  20    0 64484K 49600K kserel   0:20  0.00% mysqld
 4732 cookys      1  76    0 29364K  2932K select   0:14  0.00% sshd
  572 www         1   4    0 92284K 17048K accept   0:06  0.00% httpd
  669 www         1   4    0 93260K 17960K accept   0:05  0.00% httpd
 5255 root        1  76    0  4644K   892K RUN      0:02  0.00% ping

lab# ping -f 192.168.210.1
PING 192.168.210.1 (192.168.210.1): 56 data bytes
.^C
--- 192.168.210.1 ping statistics ---
91551 packets transmitted, 91550 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.292/0.910/0.952/0.022 ms
一樣從 192.168.210.1 看 Dumeter:


CPU load 減輕暴多!不過看 Dumeter 好像比較慢?實際上用 FTP 抓檔測的結果是:沒差啦,用力用吧。不知道啥時會 MFC ,還是把手邊的機器都來衝 7.0-CURRENT? 這樣好像太 XD 了。

2005年10月12日 星期三

昨天幹的蠢事 - ubench

昨天把硬碟清的差不多了(總共清了四天 -_-,因為其中有一顆 WD 80JB 好像存活了三四年,裡面滿滿的是對我來講比較重要的資料。順便藉著這次機會把之前的 Backup 整理歸類,順便備份到 DVD-R 裡面),想說開始大開殺戒。開始把硬碟亂灌作業系統來玩,當然第一個很好奇的就是 ubench 在這台 deaktop 上的 Gentoo 能夠跑這麼高分,那在 FreeBSD 下會是多少?要嗎就是 Linux 分數偏高所以其他台機器的分數顯得比較低,要嗎就是這台機器真的特別神猛,不過我猜應該是因為 Linux 的關係。

於是我在 WD Raptor上的分割區灌了 FreeBSD 5.4 Release。不過開機的時候遇到很奇怪的問題,因為我用 Gentoo 那時候裝的 Grub 來當作開機管理員。一開進 FreeBSD 之後螢幕就花掉然後不給反應了,看起來就像是因為進了 Graphic Mode 搞得鬼, Google 了半天好像找不到該用啥 keyword 查,想說反正只是測一下 ubench ,乾脆裝到另一顆硬碟效果也一樣。忽然間心血來潮,把 KVM 切成 server 然後 ping desktop ,竟然有反應耶。可是 SSH 是爛掉的,想一想可能是因為剛灌完需要產生 RSA KEY Pair,於是胡亂按了一通然後把他重開機。等了好久,果然莫名其妙 ssh 就通了。

於是我就在 FreeBSD 5.4 下測,沒想到測出來只能用「慘不忍睹」來形容阿。

這是之前在 Gentoo 下測的:

rabbit ubench-0.32 # ./ubench
Unix Benchmark Utility v.0.3
Copyright (C) July, 1999 PhysTech, Inc.
Author: Sergei Viznyuk <sv@phystech.com>
http://www.phystech.com/download/ubench.html
Linux 2.6.11-gentoo-r6 #1 SMP Wed May 25 09:31:04 Local time zone must be set--
ee zic  i686
Ubench CPU:   159850
Ubench MEM:   215002
--------------------
Ubench AVG:   187426 (-march=prescott -msse -msse2 -msse3)

 

這是昨天在 FreeBSD 下測的:

> ubench
Unix Benchmark Utility v.0.3
Copyright (C) July, 1999 PhysTech, Inc.
Author: Sergei Viznyuk <sv@phystech.com>
http://www.phystech.com/download/ubench.html
FreeBSD 5.4-RELEASE FreeBSD 5.4-RELEASE #0: Sun May  8 10:21:06 UTC 2005     roo
t@harlow.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
Ubench CPU:   109562
Ubench MEM:   117601
--------------------
Ubench AVG:   113581 (Tue Oct 11 06:44:21 CST 2005) (NO_HTT)

然後我忽然想到,那時 Linux 的 Kernel 是有 SMP 下去跑的 Kernel ,天曉得會不會有影響。反正就試看看。於是就很高興的去重新編 kernel 。到後來 make installkernel KERNCONF=SMP 打完的時候,看他 installation finished 之後很習慣性的就按了 alt-ctrl-del ,過了兩秒才想到「幹!!」。我現在是用 server ssh 到桌機上啊,這樣等於是我把 server 給重開了阿 -_-。果不其然,開了 37 天多的 server 就被我 alt-ctrl-del 了。 XD 真是超白痴的。後來編完之後測的結果其實還是很糟糕:

> ubench
Unix Benchmark Utility v.0.3
Copyright (C) July, 1999 PhysTech, Inc.
Author: Sergei Viznyuk <sv@phystech.com>
http://www.phystech.com/download/ubench.html
FreeBSD 5.4-RELEASE-p7 FreeBSD 5.4-RELEASE-p7 #0: Tue Oct 11 07:01:27 CST 2005
   cookys@fleebsd.iecs.us:/usr/obj/usr/src/sys/SMP i386
Ubench CPU:   109382
Ubench MEM:   113730
--------------------
Ubench AVG:   111556 (Tue Oct 11 07:30:57 CST 2005) HTT


於是我又本著好奇的心態想說,會不會是 FreeBSD 5.x 系列寫爛了,搞不好 DragonFlyBSD 從 4.xx 上來的會好一點,於是又去抓他的 LiveCD 來測,測了之後反而比 FreeBSD 還慘,不過因為那版是 1.1 ,聽說 1.2 拿掉很多 lock ..於是又抱著一線希望去抓 1.3-DEVELOPMENT。還是差不多:

 

> ubench
Unix Benchmark Utility v.0.3
Copyright (C) July, 1999 PhysTech, Inc.
Author: Sergei Viznyuk <sv@phystech.com>
http://www.phystech.com/download/ubench.html
DragonFly 1.1-CURRENT DragonFly 1.1-CURRENT #10: Mon i386
Ubench CPU:     98245   99820    107728          108276
Ubench MEM:   107367  112979    135429          134525
-------------------- --------   ------          ------
Ubench AVG:   102806  106399    121578          121400
                     (GCC 2.95) (GCC 3.4 -O2)   (GCC -O3)
                        (1.3-DEVELOPMENT ,April 20)
(Tue Oct 11 17:42:25 CST 2005) (GCC 2.95)


後來又很好奇為什麼 FreeBSD 在編 Kernel 的時候都會把特殊指令集給關掉,於是 Google 了一下發現這篇這篇

 

For speed reasons, we restrict the kernel to using integer instructions
only.  This means we can avoid the considerable expense of
saving/restoring floating point context unnecessarily for syscalls,
interrupts, etc.

...

Note that we *could* concievably set aside a few xmm registers for
faster data copies inside the kernel, but we don't do it yet.  I
believe linux makes %xmm0 and %xmm1 available in the kernel and saves
them with every trap into kernel mode.


 

Whether or not the kernel is compiled with instructions that use these
registers has absolutely no bearing on whether userland code can use
them.  It's purely about trading one optimization (using optimized
opcodes in the kernel) for another (not having to save and restore
dozens of registers to the stack on each syscall).  It might be
interesting to experiment with allowing a certain class of instructions
in the kernel and saving and restoring the associated registers, and
seeing if GCC will actually generate code that is better and overcomes
the save/restore expense.  Any takers?

Scott

反正就是其實用了的話在 save/restore 的時候會有比較大的 overhead ,所以先關掉。然後其實還有方訪能夠去增加他的效率,那就是跟 Linux 一樣用 %xmm0 and %xmm1 來搞。不過這似乎跟上面的測試沒什麼太大關係就是了,測試數據參考就好。 Linux 在 ubench 的分數上勝出很多是事實 XD。

2005年10月3日 星期一

RSS 爆炸了..

前幾天機八鴨告訴我說我家的 RSS 好像爆炸了,檢查了一下發現他真的炸了..。可是舊的卻是 OK,想說大概是新版的 wordpress 改炸了,因為之前有看到其他人也有說到這問題就不太在意。不過剛剛心血來潮把 wordpress 重新 checkout 一次發現他其實是正常的,所以就暫時換回 default theme 吧。因為 arzel_xt2 其實算舊的 theme 了。有空的話自己改一個吧。

Modify: 後來發現其實 theme 還是能用,所以就又換回來了。不知道是我手賤去改到哪裡。
Modify: 測半天發現是 blogtimes 爆炸 -_-,一 deactive 就好了。
Modify: 參考廖大的文章,發現 blogtimes 最後一行是 newline ..把他砍掉就好了,真是 ~!@#$%^& -_-。