John Resig 在 Google 談 JavaScript Library (jQuery)

( 的發起人以及現任的主要維護者) 在 談如何建立一個 JavaScript Library:Building a JavaScript Library,包含影片及投影片。

其實都是在講 的作法,不過對於已經在使用 ,或是打算要使用 的人相當值得看完,對於之後使用 有相當棒的幫助。

PS:另外一個很好用的 reference site 是

Skype 當掉的原因:Windows Update

Update:更完整的解釋出來了:The Microsoft connection clarified

前幾天的 大當機事件造成許多使用 的用戶抱怨,結果在 的 Blog 上說明了這次當機的原因:

使用 P2P 架構維持整個系統的穩定性。依照 官方的說法,因為前幾天的 造成許多電腦強制重新開機 (說到這個, 似乎可以無視設定值強制重新開機),而使得系統不穩定。在理想的情況下, 應該會迅速自我復原,但因為 演算法的臭蟲,造成系統幾乎停擺兩天。

至於信不信,就看個人了... (以前 也強制重開過很多次)

Adblock Plus 擋頁面元素

前陣子才從那邊看到 (不過我沒有用,因為要自己設定太麻煩了),結果這幾天就發現 可以擋頁面元素,而且 (某個可以訂閱的 Adblock Plus 清單) 這陣子也開始用這個方式列清單了...

這是 的首頁,被清的乾乾淨淨的,看起來真愉快啊 XD:

這是某大站:

Microsoft Permissive License

這陣子因為 決定將 送交 審查而又引起風波。( 這篇:Microsoft's New Permissive License Meets Opposition)

相當開放而且自由,同時條款又相當的簡單。這個 license 要做的事情差不多就是 BSD license + 專利授權條款,也就是這段所提到的:

(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.

相較於 自以為自由的條款來說,這份授權條款對我比較有吸引力。

FreeBSD 上的 SNMP

自從 bsnmpd 進 base 後,在 上要做流量統計所需要做的事情愈來愈簡單了。

首先是修改 /etc/rc.conf,開機時會自動跑 bsnmpd:

bsnmpd_enable="YES"

第一次啟動時可以手動跑:

# /etc/rc.d/bsnmpd start

然後裝

# cd /usr/ports/net-mgmt/mrtg
# make install clean

裝完後跑 cfgmaker 產生檔案:

# cfgmaker public@127.0.0.1 > mrtg.cfg

然後修改 mrtg.cfg 內的 WorkDir,最後產生 index.html:

# indexmaker mrtg.cfg > index.html

然後將 mrtg 指令放到 crontab 裡跑就可以了。

使用浮水印取代 DRM

看到有廠商想到其他方式來管理數位版權的問題:Watermarking to Replace DRM?,原文在 的網站:Watermarking to replace DRM?

DRM 希望做到的是「事前防範」複製的行為,但這是從理論基礎上就已經知道不可行。而浮水印做到的是「事後追查」的能力,在理論基礎上「可行」,但以目前的技術來說... 有陣子沒碰這塊資訊了,不清楚。看起來微軟是打算跟業者合作提供服務,對每個不同的使用者將音樂加浮水印後送出去,而不公開浮水印本身的演算法。

ZFS

最近有一台有十二顆硬碟的機器要上,想說來測試 7.0 上的 ,結果發現 解決的問題有限... 不過對於軟體解決方案來說,是一個很大的進步 :p

提供的 RAIDZ 有三種保護方式,第一種是 MIRROR,類似 RAID1 的方式,相同的資料會丟到兩顆上;第二種是 RAIDZ1,與 RAID5 類似的方式 (XOR),擁有一顆硬碟故障的容錯能力;最後則是 RAIDZ2,與 RAID6 類似的方式 (),擁有兩顆硬碟故障的容錯能力。這些都因為理論限制而沒有辦法新增硬碟。其中 RAIDZ2 (RAID6) 是目前 的 gvinum 還沒有提供的功能,這是 所帶來的第一個進展。

ZFS 所提供的「擴充性」是以相同的 virtual device 為單位,假設以三顆硬碟完成 RAIDZ1 成為一個 virtual device 後,你可以塞進一個 pool 裡面,而且是不斷的塞:

# zpool create raidz1 mypool ad4 ad6 ad8
# zpool add raidz1 mypool ad10 ad12 ad14

當你用 zpool create raidz1 建立 pool 後,就決定了你後面 zpool add 一定要用「raidz1」、「三顆硬碟」當作增加的單位 (大小倒是沒差),不然會出現:

mismatched replication level: pool uses 3-way raidz and new vdev uses 4-way raidz

或是:

mismatched replication level: pool uses 1 device parity and new vdev uses 2

看起來很像 concat,但比起傳統的 concat,新增的 pool 可以馬上分擔寫入的負荷。而且對於要大不大的企業用戶來說,每次固定增加四顆或八顆硬碟 (一張 SATA 外接卡可接的量) 比起資料搬移的停機容易接受。

再更大的話也許還是用 之類的方案吧 :p