Scribe's N.E.W. Studio://Blogger

~ 為了有日後 ACG 敗家的本錢,還是先把足以生存的工具學好吧……
RSS feed

[投稿]
TDK Trans-it Mini USB 隨身碟 1GB scribe ★φ [3/05/2010 08:45:00 下午] [回應]
前幾天在 PTT Storage_Zone 版看到有人貼出 PChome 24Hr 線上購物大特價,TDK Trans-it Mini 隨身碟 1GB 一支只要 NT$99 (頁面連結),等我看的時候已經賣光了,幸好還有持續補貨的樣子,所以我也守在電腦前並成功定到兩支,不過要加運費 NT$80。我要買的目的主要有二:1. ASUS WL-520gU 無線 AP 刷機後用來當作系統主硬碟 2. 可以拿來量產。

很快的,下午 5 點匯款成功隔天中午 11 點就收到了,果然快。



目前AP上面插的是一支當初申請 ADSL 的 64MB 贈品隨身碟,這一支無論是速度或者容量都不是新的能比的,趁這個特價把它換了。首先免不了來個 FDBENCH 測試:

標籤: PC
有回應 4 篇被省略。要閱讀所有回應請按下回應連結或是顯示回應

Blogger Offically Continue reading scribe ★φ [2/28/2010 09:08:00 下午] [回應]
我試著修改自訂範本以實作官方的繼續閱讀功能,希望一切順利
標籤: Blogger

版面 Script 更新‧Ⅷ scribe ★φ [2/22/2010 06:34:00 下午] [回應]
看了看紀錄,距離上次修改部落格的核心,已經是好幾年前了。一直放話說要重寫不過似乎都沒有動手過,Blogger這幾年強化了不少,值得提的就屬「繼續閱讀」功能了,這功能當初推出的時候官方提供的樣板都還沒全部支援咧,現在應該都已經支援了吧。

可惜這個功能我已經利用官方以前的hack:隱藏部分文章的方式來達成了,萬一我現在追尋官方的架構,那舊的文章要一篇篇改動。我太懶了所以暫時還是維持原狀好了。如果可以維持舊的繼續使用隱藏法;新的使用官方提供的功能的話,那就更好了,我還要研究看看。

總之我先把部落格使用到的JavaScript檔案給更新一下好了:jQuery從1.2.6也升級到了1.4.2,有一些語法變了 (最大的變動就是屬性前面不用再加 @,ex: div[@id='test'] → div[id='test'])。JavaScript設計師最愛用的工具 JSLint 也是越變越嚴格了 (這玩意兒竟可以一直保持更新到現在,真厲害),之前寫的東西已經有些過不去了,經過幾番修改後才又符合了 JSLint 的規範。印象比較深刻的是正規表達式 (RegExp) 的 "." 不精確的問題,這真是切重要點啊,反正我就是要任意文字所以就用了 .,但通常你可能只需要 \S (除了換行等特殊符號以外的字元) 之類的。

最後將程式碼用 Google 釋出的 Closure Compiler Service 壓縮。以前很多人喜歡用 Dean 的 Packer 來壓縮,雖然壓出來的檔案確實很小,但執行解壓的程式碼所需的時間反而拖長,現在已經沒什麼人在用的樣子。以前也有很多像是 JSMin, YUI Compressor 之類的......總之,經過壓縮之後縮小了37%以上。光這些十幾KB的程式檔一個月就能吃掉30MB的流量,縮小一點除了減少流量以外,瀏覽器端的讀取速度也會快一點,總之是有正向幫助的。
...(繼續閱讀)
標籤: Blogger, JavaScript

Auto follow Echofon on Twitter? scribe ★φ [2/10/2010 07:29:00 下午] [回應]
English summary:

Echofon since version 1.9.5 has a bug that will ask for following @echofon on Twitter at your next time running Firefox. When you choose No, it'll let your Twitter account auto follow echofon account. That makes users feel inconvenient or impolite.

Reproduction step:

1. Type "about:config" in Address bar
2. Filter: twitternotifier
3. Set extensions.twitternotifier.checkFollow to 1
4. Restart Firefox

When you open Firefox, the prompting will popup again.

在Firefox很好用的一個擴充套件 EchoFon (舊稱 TwitterFox) 是知名微網誌推特 (Twitter) 的 Notifier。一直以來使用它來收發 Tweets 都非常方便,不過這篇不打算對它作介紹,而是要來紀錄一個在 1.9.5 版本會遇到的問題。(1.9.5.1 版確認此問題仍舊存在)

1.9.5 版本中,新增了一個可以讓使用者自動追蹤官方帳號的功能,這個功能在你第一次安裝或更新到此版本的時候並不會有所反應。而是在你下一次重新啟動 Firefox 時才會啟動,它會跳出視窗詢問你:



看起來很友善,不過一般人通常都會按否吧?所以我的第一反應也是按下了否。但使用著,發現奇怪,我的 following 為什麼多了 echofon? 我剛才按的是否沒錯吧?



數度想再次重現這個機制,不過設定視窗內並沒有明顯的選項可以重新啟動,只好把腦筋動到了程式碼內。發現了這個問題的重現方法。

重現步驟:

1. Firefox 瀏覽器網址列鍵入 about:config
2. 篩選條件打 twitternotifier
3. extensions.twitternotifier.checkFollow 改成 1


4. 重新啟動 Firefox

這麼一來,我們就可以看看剛才是不是誤按了......確實不是,明明按了否但是 following 卻自動增加了官方帳號,難怪官方帳號的 followers 那麼多,我覺得這是很不尊重使用者的 Bug,希望下一版能夠改掉這個問題。順便做個紀錄。

發生原因 / Cause:

Echofon.jar/content/twitterfox.js:

According to MDC, confirmEx always returns index of the button pressed (like 0, 1, 2). No is 1, so followEchofon will be run. Instead, press Yes (index 0) won't run it.

根據 MDC 說明,confirmEx 回傳按下按鈕的索引值。由於 No 應屬索引 1,所以按下後 followEchofon 會被執行,按下 Yes (index 0) 反而不會執行。
...(繼續閱讀)
標籤: JavaScript, PC, report
有回應 1 篇被省略。要閱讀所有回應請按下回應連結或是顯示回應

DD-WRT uses Optware scribe ★φ [2/09/2010 10:19:00 下午] [回應]
上一篇提到的 can't resolve symbol 問題,我終於看到了類似的案例:ASUS WL-500gP的library是否支援fstat64函式追蹤。這位使用者試圖嘗試使用 fstat64 這個方法,但這個方法需要新的函式庫 libuClibc-0.9.28.so 才有支援,於是他放到 /jffs/opt/lib 內,取代原有檔案。執行測試程式後,卻發生 can't resolve symbol 的問題。幾經查證之下,原來 /lib 裡就有同名函式庫,系統依照 LD_LIBRARY_PATH 環境變數定義的順序,先找到了 /lib 內的檔案,但這個檔案或許是為了嵌入式系統而特化的而導致沒有這個方法,於是發生錯誤。

這位使用者提出了解套法:修改 LD_LIBRARY_PATH 的搜尋順序,雖然問題解決了,但換 wget 這個程式出問題了,wget 這個指令其實是由內建的 BusyBox 來提供支援的,可能由於載入的函式庫已經不是原本那個特化過的版本,因而發生錯誤。DD-WRT 官方論壇也有人發文 (wget: Segmentation fault),得到的回應是使用套件版的 wget 來解決問題,問題真正的核心依舊沒有解決。

結合上一篇我的「can't resolve symbol 'setlocale'」問題,我們推理一下:由於 DD-WRT 內建的 ipkg 是來自於功能較強大的 OpenWRT,所以它提供的套件所需要的函式庫自然也不同於特化過的 DD-WRT。因此我透過 ipkg 安裝的套件,預設使用的函式庫應該要是 OpenWRT 的 (功能完整的),但現在環境是 DD-WRT (嵌入式特化精簡的)。

又因為執行程式時,環境變數 LD_LIBRARY_PATH 所設定的函式庫載入順序,DD-WRT版的函式庫 (/lib) 一定會比Open-WRT版的 (/jffs/opt/lib) 要來的早載入,因此發生類似的問題。也就是說如果我也採用修改環境變數的方式,讓它讀取到 OpenWRT 版本的函式庫,就可以正常執行,但是這麼一來內建的一些程式就會發生問題 (如 wget)。

這時候我要介紹另一個套件庫Optware。這套函式庫最大的特點在於,它的所有套件在編譯的時候,就已經先定義好了 RPATH (一種指定搜尋函式庫目標的變數) 到 /opt/lib,這個目錄是 Optware 自己的,且 RPATH 的搜尋優先權遠大於環境變數 LD_LIBRARY_PATH。因此我若使用了 Optware 的套件包,它的套件會自己根據內建的 RPATH 搜尋到 Optware 自己的函式庫目錄 /opt/lib,與環境變數毫不衝突。使用它我就不必再為了相容系統跟套件的問題傷透腦筋,因為實際上它們兩個是互不相干的。

另外,Optware 有針對 DD-WRT 作特化。DD-WRT 內建的 ipkg 是直接使用 OpenWRT 的套件,而實際上是有很多套件不能相容的,無法執行。而 Optware 提供的 ipkg-opt 套件卻針對 DD-WRT 進行維護,雖然套件數量遠不及前者,但都是可以正常執行的。

知道了解套法後,我們馬上來安裝看看 Optware。由於並沒有內建的關係,需要執行一些步驟才可以。

前置準備:

先確定系統的 /opt 資料夾可讀寫,並是 ext2/3 檔案系統。因為Optware使用這個目錄,而預設值 DD-WRT 的 /opt 是空的無法操作,所以你必須借助 USB 隨身碟、外接碟甚至是有支援 MMC/SD 卡的機種來加以掛載擴充。檔案系統必須為 ext2/3 就比較麻煩,要先借助 Linux 來格式化,這邊我就先略過不提。

有了空間,還必須掛載。你可以參照第一篇 (Asus WL-520GU 刷 DD-WRT 韌體) 下方 USB 掛載的說明,使用 Automatic Drive Mount 功能來掛載到 /opt。又或者你的 USB 有分區,需要手動掛載特定分區 (修改地方為 系統管理→指令→儲存啟動指令):
mount /dev/scsi/host0/bus0/target0/lun0/part1 /opt

另外,也可能需要開啟 JFFS 功能,儘管 Optware 的套件不會用到。(不確定)

開始安裝:

接著就是安裝 ipkg-opt,Optware的套件管理程式,這需要執行一些程式:
# wget http://www.3iii.dk/linux/optware/optware-install-ddwrt.sh -O - | tr -d '\r' > /tmp/optware-install.sh
# sh /tmp/optware-install.sh
第一行直接貼到 Telnet/SSH 去執行,完成就可以取得安裝的程式檔案 /tmp/optware-install.sh。然後第二行才是執行這個安裝程式,你會見到類似的畫面輸出:
Checking system config ...
Using 192.168.1.1 as default gateway.
Using the following nameserver(s):
nameserver 192.168.1.30
Warning: local nameserver is different than gateway!
Check config or enter:
sed -i s/192.168.*/192.168.1.1/ /tmp/resolv.conf
to correct this.
Installing package uclibc-opt_0.9.28-13_mipsel.ipk ...
Connecting to ipkg.nslu2-linux.org[140.211.166.82]:80
uclibc-opt_0.9.28-12 100% |***********************************************| 832 KB 00:00:00 ETA
Updating /opt/etc/ld.so.cache
......
如果沒有錯誤發生,它應該會在 /opt 目錄下建立 Optware 的結構,並且安裝執行環境跟最重要的 ipkg-opt 套件管理程式,以後就可以使用 ipkg-opt 來取代 DD-WRT 內建的 ipkg 指令。

執行以下指令查看 Optware 的套件庫一覽表,雖然沒有 OpenWRT 的 ipkg 多,卻也是十分豐富了:
# ipkg-opt list|more
abook - 0.5.6-2 - Abook is a text-based addressbook program designed to use with mutt mail client.
ack - 1.90-1 - grep-like text finder
adduser - 1.10.3-1 - a multi-call binary for login and user account administration
adns - 1.4-2 - Asynchronous resolver library and DNS resolver utilities.
aget - 0.4.1-1 - Aget is a multithreaded HTTP download accelerator.
aiccu - 20070115-2 - Automatic IPv6 Connectivity Client Utility.
alac-decoder - 0.1.0-2 - A decoder for the apple lossless file format
......

最後,要解決我要使用 swapon 的問題,安裝 util-linux-ng 這個擴充工具套件就可以了,裡面就有 swapon 跟 fdisk 等原本系統應備的工具指令,當然也有許多跟內建的重疊到,但按照環境變數 PATH 的設定,內建的指令會優先執行,因此不必擔心相容問題。
# ipkg-opt update
# ipkg-opt install util-linux-ng
# swapon

Usage:
swapon -a [-e] [-v] [-f] enable all swaps from /etc/fstab
swapon [-p priority] [-v] [-f] enable given swap
swapon -s display swap usage summary
swapon -h display help
swapon -V display version
......
...(繼續閱讀)
標籤: DD-WRT, Linux, PC

【刪除文章】[]
刪除用密碼:
[ 0 ]