JeffHung.Blog

(My smile insists of having nose. :-)

Kramer 與 get-recent-comments 的問題

我的 Recent Backlinks 自從升級到 wordpress 2.3 之後,就一直有問題,會多顯示出 kramer_pre%--> 的字樣。用這個奇怪的字樣去找,發現是 Kramer 這個 plug-in 的問題。當初會裝主要是因為 trackback 壞掉了,所以乾脆裝了 Kramer,會直接到網上找 back links,找到後代替 trackback auto-discovery 機制,插入資料到 wp_comments 表格。既然 Kramer 壞掉了,只好先拔掉再說。
沒想到拔掉 Kramer 之後,問題依舊,即使關掉 get-recent-comments 的 cache 也一樣。於是就直接進 database 裡找,發現不曉得為甚麼,Kramer 把製造出來的 wp_comments.comment_content 內容,前後加上了 <!--%kramer-pre%--> 與 <!--%kramer_post%-->。所以,只好辛苦地,寫個 script 修正 database:

#!/usr/bin/perl -w

use strict;
use utf8;
use File::Basename;
use Getopt::Long;
use DBI;

my ($__exe_name__) = (basename($0));
my ($__revision__) = ('$Rev: 26 [...]

能產生 trac wiki 語法的 WYSIWYG editor plugin

今天看到的,讚:TracWiki WYSIWYG Editor Plugin。

能夠真正產生 Trac 的 wiki 語法存在資料庫裡,故能完美地與 Trac 協同合作。不像 TinyMce Wiki Plugin 會存入 html,造成相容問題。
經測試,能夠直接從 word 把內容複製貼上,樣式會盡可能地保留[1]。

雖然不甚完美,但毋須苛求了。 ↩

Wordpress 編輯器升級到 FCKeditor 2.5.x

雖然自從 Wordpress 2.x 開始,就內建了 TinyMCE 這套 WYSIWYG 的編輯器,但因為之前使用 EditorMonkey 裡面的 FCKeditor 功能實在強大,又能依據我的需要進行 customization,因此我仍然還是使用 EditorMonkey。可是,EditorMonkey 內附的 FCKeditor 是 2.2 版,已經很舊了,在使用的過程中,也一再地發現某些 bug,甚至培養出了迴避這些 bug 的編輯行為。
是故,我一直在思考著,是不是什麼時候,來升級一下。就在編寫 dprintf() 系列文章的過程中,實在是受不了了舊版 FCKeditor 的一些 bug 的情況下,再加上 FCKeditor 就在 2007-10-10,剛剛釋出了 2.5 Beta 版,所以一不小心,就把 editormonkey 拔掉,搞出了個 FCKeditor 2.5.x 的 wordpress plug-in 來。
當然,我並沒有那麼厲害,能夠無中生有的憑空造出一個 plug-in 來,主要還是參考了 Dean's FCKEditor For Wordpress,這是官方的 wordpress plugin directory 裡用 fckeditor 當關鍵字,所可以找到的唯一一套真正的 fckeditor [...]

PS3 & DLNA Media Server (WMP11 or MediaTomb)

本來以為要裝 Yellow Dog 這類 linux distribution,才能用 PS3 接電視看影片檔,結果在 2007-06-05 時,發現了 PS3 新的 1.80 版系統軟體,可以透過網路播放影音檔案,關鍵在於 DLNA[1]這個 protocol。初步研究後發現,Windows Media Player 11 (WMP11) 與 Nero 7 的 Nero MediaHome 都具備有 DLNA 的功能。
這兩種軟體的本質,其實我都不太喜歡,但在只能擇其一的情況之下,只好選擇 WMP11,至少是免費的。使用 Windows Update 裝上之後,依據這篇《媒體伺服器連線》的官方說明,按照以下步驟,

先讓 PS3 連上網路。使用有線或無線的方式即可,一般能夠讓 PS3 升級到 1.80 版系統軟體,這步驟應該不會有問題。
啟動 WMP11,點選「媒體櫃」選單中的「媒體共用」,打開「共用我的媒體」。

此時,原來的對話視窗,會變成「共用我的媒體至(S):」,這個意思是說,要讓哪一台機器,享用 WMP11 分享出去的媒體資源。
選擇 PS3 那台,將之「允許」,然後按「確定」即可。

點選「媒體櫃」選單中的「其他選項」,點選「監控資料夾」按鈕。

所謂監控資料夾的意思,就是說,列在裡面的這些資料夾,裡面的所有媒體檔案,會自動納入「媒體櫃」裡,可以在 WMP11 裡直接點選播放,或是透過 DLNA,由 PS3 播放。
列表的來源有兩種:「我的個人資料夾」與「我的個人資料夾和我可以存取的其他資料夾」。所謂「我的個人資料夾」,就是指放在「我的文件」裡的「我的音樂」、「我的照片」和「我的影片」等資料夾;而所謂「其他資料夾」,就是在「進接選項」處,可以自由「新增」的資料夾。
把平常用來放照片、影片與音樂的資料夾,列在「監控資料夾」裡即可。

打開 PS3,從「相片」、「音樂」、「影像」圖示裡,可以看到可以被點選播放的所有資料夾與媒體檔案,選擇後即可播放。

WMP11 大概是最方便簡單的 DLNA media server 了。只不過,一般我的照片、影像檔,都是放在 [...]

$Id$ 與 $FreeBSD$ 的差別

因為 CVE-2007-2926: Predictable query ids in named(8) 的關係,前幾天就一直在跑 cvsup,卻一直更新不到修正過的版本,直到剛剛才發現,原來是烏龍一場。
因為 cvsup server 不一定有即時同步的關係,跑完之後還是要檢查一下檔案版本,看有沒有真的更新到修正後的版本。確認有更新對之後,再來 make world 等。
我用的是 RELENG_6,依據 FreeBSD-SA-07:07.bind,src/contrib/bind9/bin/named/client.c 要 1.1.1.2.2.3 以後才有修正到,可是不管我怎麼跑 cvsup,src/contrib/bind9/bin/named/client.c 都是 1.176.2.13.4.31.6.1 版。
檢查 FreeBSD 的 cvsweb,上面顯示該檔的 RELENG_6 最新版確實是 1.1.1.2.2.3 版沒錯。可是不管我向 cvsup9.tw.freebsd.org 還是 cvsup.tw.freebsd.org,甚至是 cvsup.freebsd.org 跑 cvsup,更新完後的檔案,一樣都是 1.176.2.13.4.31.6.1 版。在 #bsdchat 上請教,其他人也說,抓下來的是 1.176.* 版,不管是 RELENG_6 亦或是 RELENG_6_2 皆然。
所以這到底是怎麼一回事呢?
最後,在我從 cvsweb 上把 view text 點下去後,終於發現問題之所在。cvsweb 上面是 1.176.2.13.4.31.6.1 版,但點下去看原始 source code [...]

移除 SiteMeter

(舊文)
看到 Max.Taiwan 的這篇《sitemeter加入第三方連結》,我決定也把 SiteMeter 也關掉。可惜這陣子渡蜜月去了,所以拖了十來天才有反應,在此向本站的訪客致歉。
雖然說在 SiteMeter 的 Privacy Statement 裡面有這麼一段:

Third Party Advertisements
The advertisements appearing on our website from time to time are provided by a variety of our third party advertising partners. We only share website usage information about our users with reputable third party advertisers for the sole purpose of better targeting our website [...]

裝了「巴布」

在首頁裝了巴布的 badget,看看有沒有比 twitter 好玩。
用 IM 操控巴布,是蠻不錯的設計。不過和我用的 miranda 不相容:

想要重灌我的 blog

想要重灌我的 blog 了,主要有以下幾個原因,而且每個原因好像都得寫點程式才行:

真正的版本控制
現在雖然是用 subversion 在管理,每次升級都超級簡單。不過,由於並沒有實際上地把 wordpress 的 repository 給 mirror 到 local repository,所以自己改動到的部份,沒有辦法納入版本控制。之前都是用 SVK 在 mirror,最近大致摸熟了 SVN::Mirror 裡的 svm 的用法,應該可以弄出 script 來做這件事。
資料庫瘦身
之前有亂玩一些 plug-in,有些 plug-in 會在 database 裡塞一些額外的 table。當 plug-in 被砍掉之後,這些 table 並不會一併被清除,導致現在的 database schema 有些「雜」。正考慮是不是要弄個 script,依據目前的 wordpress 版本,清除掉「預設」不會有的 table 資料。
升級後台編輯用的 FCKeditor
目前後台使用 EditorMonkey 這套 plug-in 裡的 FCKeditor 編輯文章。不過因為在 wordpress 2 以後,開始內建 TinyMCE,所以 EditorMonkey 不再繼續開發了。是故,使用的 FCKeditor 版本比較舊,一路用下來,連 bug [...]

加裝 google-code-prettify

看到這篇《網頁程式碼美化程式 Google Code Prettify》的介紹,我也試裝了一下。果然所有程式碼的列表,自動有了 syntax highlighting。
Google Code Prettify 的特色是,用的時候不需要指定語言,會自動偵測。我們「唯三」需要做的,就是:

在 <header> 引入 google-code-prettify 的 css 與 javascript 檔。
將你要做 syntax highlighting 的程式碼,寫在 <pre> 裡,並賦予 prettyprint 的 CSS class。
在文件全部載入之後,呼叫 prettyPrint() 函式。

由於我有一堆文章,已經把程式碼放在 <pre>,使用 code 這個 CSS class 標示,因此,我需要做一些額外的處理,把這些 <pre class="code"> 找出來,再多加上 prettyprint 的 CSS class。
將 google-code-prettify 抓下來解開後[1],會有兩個檔:prettify.css 與 prettify.js,一起放到 theme 目錄下即可。因為 Y!UI 很好用,所以我就偷懶直接依靠 Y!UI。修改 wordpress 佈景主題的 header.php 檔[2],在 </head> [...]

升級到 wp-footnotes 1.4

自從啟用 footnotes plug-in 以後,我在編輯時,就方便了許多。不過,原本的 footnotes 0.91 版,還是有一些小問題,讓我有些困擾。所以,剛剛我找了一下官方的 wordpress plug-in directory,發現 footnotes 已經更名為 wp-footnotes。測了一下,並照著原本的改法,將 <span class="footnote"> 的標示法修正進去,再加上修了一些小 bug 後,順利升級到了 wp-footnotes 1.4 版。
在原本的 footnotes 0.91 版裡,是使用 while 迴圈搭配 strpos() 尋找註腳,也許是因為這樣,有時候在後台編輯時,會發生程式陷入無窮迴圈的錯誤。新版的 wp-footnotes 改用 preg_match_all() 搜尋註腳,希望效果會好一些。
不過,也許是因為改用了 preg_match_all(),原本只要修改 $footnote_open 與 $footnote_close 兩個常數變數的技法[1],反而失效了。因此我鑽了一下,發現這兩個常數,在丟給 preg_match_all() 之前,有先用 preg_quote() 先處理過。這本來是件好事,但壞就壞在,preg_quote() 預設會替很多 delimiters 前面加反斜線,包括 < 與 > 等。然而,在 preg_match_all() 這行的 regular expression 裡,FOOTNOTE_OPEN 與 FOOTNOTE_CLOSE 所在的部份,其實式不需要替 [...]

 Prev 1 2 3 4 5 6 7 8 9 Next