“Selenium”


10 Comments
セレン

我又換 Theme 了。

“Unfair” 使用了 7 個月左右,算是… 中等壽命 XD 她的特色是頭版只有一篇,這是優點也是缺點——優點是讓我想放上頭版的文章不會很快的被其他雜文洗掉,缺點則是瀏覽方式不符合一般使用者習慣,舊文比較難被翻出來。我在這個 Theme 上作了很多新的嘗試,例如熱門標籤雲、相關標籤雲、友善的錯誤頁面、不同的最近迴響顯示方式,還有從來沒面世過的文章彙整等等,在 Theme 裡面卻寫了很多 PHP code ,雖然有點噁心,但我很喜歡她的功能性。

我翻閱過去時,重新發現了 KrESCENT ,於是決定下次要來重寫一個 KrESCENT 。這次的 “Selenium” 主要參考了 KrESCENT, Moo-PointBlueprint ,寫完後先用在我的另一個 blog 上,本來是沒打算讓這邊也變成這樣的,最後更換的原因則是…… 我最近把 Firefox 預設字型不論 Sans-Serif 還是 Serif 全設成微軟正黑體,這樣對 “Unfair” 來說字就太小了…… XD 1

這次的 Theme 因為剛好只用到非常少量的圖片,因此我給她加入了漸變效果(但是我沒有讓對比愈來愈低,純粹是隨時間變色而已)。起初這功能是寫成 Hard code ,現在改成 Plugin ,不啟用此 Plugin 的話就只是不會變色, Theme 不會因此壞掉。另外在 “Unfair” 用過的熱門標籤雲、相關標籤雲2、相關文章3這些功能也都改寫成 Widget ,所以這次的 “Selenium” 功能性差不多,卻完全沒有 Hard code 呢!

整體而言我覺得 “Selenium” 是一個用 Plugin 堆起來的 Theme ,她的 Loading 好重喔~ XD 4

最後是講解標題時間,前面提過 “Selenium” 是 “KrESCENT” 的延續,這次的名稱當然要跟「月」有關係囉! Selenium 是化學元素「」,而這個字源於希臘文 Σελήνη ,其意為月亮或月之女神。


  1. 我是可以把最小字體大小也調大一點,但這樣有些其他網站就會爆炸… 

  2. 這項功能其實目前沒有正常運作,我還沒改用 WordPress Terms 的新表格,而是使用舊的 posts2cat 表格,因此只有舊文章計算得出來。這部份的 SQL 實在太複雜,目前還懶得更新… orz 

  3. 需使用到 Bigram Full-Text Search 

  4. 光 Theme 的部份是還好,但她需要很多 Plugin 配合,我的 Plugin 列表已經好久沒這麼落落長了…… 


bbs2html


2 Comments
Screenshot - 2007_8_26 , 下午 03_02_57

程式功能

  1. 將 BBS 精華區的打包檔案轉成 HTML 以便閱讀,轉換結果如上圖。
  2. 正確轉換 Unicode 補完計畫中的新增字,全部轉成 UTF-8 。 轉換範例1 · 轉換範例2

下載

下載後毋需安裝即可執行。如果無法使用,請安裝 Microsoft .NET Framework 2.0 版可轉散發套件

使用說明

如何取得看板精華區打包檔案

要取得這個檔案必須有幾個條件: BBS 系統允許某種權限的使用者(如:站長、板主)取得打包檔案,而你剛好是那種權限的使用者。

達到以上條件後,這個功能應該是在 Mail → Zip 那裡,根據各 BBS 站而有所不同。 BBS 系統會將檔案打包好寄到指定的信箱。

沒有權限但好奇的使用者,這裡有 itoc 看板精華區打包檔案的下載。不過我覺得沒事不要亂幫人衝流量比較好…

轉換整個精華區

  1. 按「開啟檔案」,選好「.DIR」檔案,然後會詢問是否要開始轉換
  2. 按「確定」後就會開始轉換,這時程式會呈現當機狀態,請等它忙完 XD
  3. 資料夾名稱建議取名為看板名稱,因為程式會取資料夾名稱作為網頁標題

轉換單篇文章

  1. 按「開啟檔案」,選取要轉換的文章,或者直接貼到上方空格中
  2. 最後按「轉換」

已知問題

  • 不支援雙色字,用 CSS 應該可以做出來,但是很麻煩…
  • 文章檔頭不一定能正確轉換出來,僅支援少部份檔頭格式(例如標題、作者、時間、看板四個欄位缺了一個就不會轉),不過我覺得不重要所以不怎麼想修… :p
  • 下列字元無法正確轉換(會被轉成問號),但這些字好像本來就沒辦法貼到 BBS 上吧?
    ␀ ␁ ␂ ␃ ␄ ␅ ␆ ␇ ␈ ␉ ␊ ␋ ␌ ␍ ␎ ␏ ␐ ␑ ␒ ␓ ␔ ␕ ␖ ␗ ␘ ␙ ␚ ␛ ␜ ␝ ␞ ␟ ␡                             
  • 以下幾組 Big5 字碼對應到 Unicode 後會變成同一個,不過根據 CP950 和 Unicode 補完計畫的對照表,本來就是這樣轉,我也不知道怎樣才是對的……
    • A27E、F9FA 都會被轉換成 ╭
    • A2A1、F9FB 都會被轉換成 ╮
    • A2A2、F9FC 都會被轉換成╰
    • A2A3、F9FD 都會被轉換成 ╯
    • A2A4、F9F9 都會被轉換成 ═
    • A2A5、F9E9 都會被轉換成 ╞
    • A2A7、F9EB 都會被轉換成 ╡
    • A2CC、A451 都會被轉換成 十
    • A2CE、A4CA 都會被轉換成 卅

寫作動機

  1. 我想練習新學的 C# :)
  2. 平常就會備份我的個人版精華區。過去使用 bbs2hh 來轉,但 bbs2hh 畢竟是用來將精華區轉換成 HTML Help 用的,要從此再轉成我要的格式需要許多手動後續工作,作一次備份實在非常麻煩。
  3. 我非常需要轉換 Unicode 補完計畫中的新增字這項功能,因為我的板裡面實在用到太多這些字了。

附註

  • 程式目錄下的 ansi.cssjquery.js 若被刪除或更名會發生問題。
  • ansi.css 可以自己修改成喜歡的樣式
  • jquery.js 也可以自己更新 XD
  • 本程式也可以單純用來將 Big5 日文轉換為 Unicode ,使用「開啟檔案」將文字檔讀取進來後,從文字框中複製,再貼到其他地方即可。(其實 Firefox 也可以這樣用)

關於 WordPress 2.3 Beta 1 的 SEO-friendly URL redirection


3 Comments

Kirin Lin 那邊看到, WordPress 2.3 Beta 1 多了這個語焉不詳的功能,而剛才 svn update 時碰巧發現這個新奇的檔名 canonical.php ,本來只是好奇是什麼樣的功能會取名為 canonical ,沒想到就順便解開了 SEO-friendly URL redirection 是什麼的謎底——

SEO-friendly URL redirection 這個功能,就是讓每頁的網址固定,例如這個(原始網址)或是這個(舊版靜態連結),最後都一樣會被導向到這裡

同時還有統一域名的功能,如果你設定的 Blog 網址是 blog.bcse.info ,使用者輸入 www.blog.bcse.info 時,就會被自動修正為 blog.bcse.info 。

換句話說,只要升級到 WordPress 2.3 ,就不需要再裝 Permalink RedirectEnforce www. Preference 兩個外掛囉!

至於為什麼這樣對於搜尋引擎有益,我想可能是

  1. 避免被誤以為是重複內容而受懲罰。
  2. 讓搜尋引擎紀錄到最漂亮的網址。

另外附一張外掛更新通知圖(看來果然要是在 WordPress Extend 登記有案的 Plugin 才能享受到此功能):

WordPress 外掛更新通知

SlickSpeed


6 Comments

因為好奇最近 jQuery 1.1.4 的更新提昇了多少速度,因此自己放了一個 SlickSpeed 測試頁。本來也想加入 Ext.js 一起測,不過加不成功,不知道 Ext.js 是不是有哪裡需要特殊設定?

下面是我的測試結果,我的電腦好像滿差的 XD

  Firefox2 Firefox3 IE 6 IE 7 Opera9 Safari3
base2.DOM 0.9 (alpha) 32 115 1600 395 128 52
dojo 0.9.0 467* 715* 2711* 821* 229* 286*
jQuery 1.1.3.1 757 872 3253 710 519 338
jQuery 1.1.4 694 847 3911 914 436 278
MooTools 1.2dev 212* 267* 4926* 1496* 227* 152*
prototype 1.5.1.1 203 282 6599* 1833* 219 80
prototype 1.6.0_rc0 184 249 6436* 1712* 207 48
* 發生錯誤或回傳結果為零

測試 Firefox 2 和 IE 7 的電腦配備較好,因此整體都比較快。

Update: 之前測試 dojo 在 IE 7 完全不能動可能是因為我用 Standalone 版本的緣故,更新為安裝版的重測結果。


Canvas experiment #1 : Polar Chart


0 Comments
Canvas experiment #1 : Polar Chart
Canvas experiment #1 : Polar Chart


看見謝老在玩 <canvas> ,因此引發我的興趣,於是就跟著也寫了一個產生星狀圖的程式——前八張圖的值是隨機的,後四張則是固定的。如果要挑 bug 的話,就是視窗改變大小後,圖形可能會換行,但數值的位置不會隨著圖形改變,要按重新整理才會更新。

Canvas 中畫弧的 method 使用的角度單位是弧度,因此要用三角函數計算,讓我複習了不少三角函數,過去學了不知道有什麼用的三角函數,終於在這次派上用場,看著 JavaScript 中充斥著數學計算式真是有成就感 XD

Canvas 沒有寫字的 method ,這一開始讓我覺得滿奇怪的。有些人是先建立一個暫時的 HTML 物件,再將其上的文字複製過來,但我後來覺得直接使用 HTML 物件就很好啦!我猜 Canvas 不內建寫字的 method 也是考慮到這點。

好久沒有像這樣不用管瀏覽器支援程度,寫沒有用的東西來玩了,感覺好舒暢啊!

※ Firefox 1.5 / Safari 1.3 / Opera 9 以上版本才支援 Canvas 。


Klustering


4 Comments

目前是暑假,而我剛從大學畢業,還沒到研究所辦理入學,研究工作卻已經開始了。最近的 meeting 主要是聽學長報告,我們雖然有一位唯一僅有的學姐,我卻未曾有幸聽過她的報告。

因為暫時還算悠閒,在家沒事很無聊,於是 7/25 決定開始學習 C# 。我也考慮過 Java ,但是我對於 Java Virtual Machine 的印象很差,而且 C# 的 IDE 看起來很方便,就這樣有點隨便的決定了我要學的語言。

第一個程式先從基本的 K-means 演算法寫起(因為我指導教授的研究大致上都關於 K-means ,我想先寫一個來以後一定會用到 XD)。現在還沒有學生身份,不能到學校圖書館借書,只能靠著網路資料學,起初不熟悉時什麼都得查,進度好慢。到了 7/27 才完成基本的讀取 CSV 資料、分群。程式寫完便又開始無聊,就繼續作外觀方面的功能,例如讓點可以放大縮小、改使用者介面之類的。 C# 內建許多控制元件,而且不需要特別設定就會自動套用 XP 風格外觀,調整介面方面做得滿愉快的。

資料編輯器
分群結果


讓我印象比較深刻的,是主要資料的儲存型態我改了兩次,兩次都牽一髮而動全身,要改寫好多地方。 C# 的多維陣列有兩種作法:矩形陣列(Rectangular array)和不規則陣列(Jagged array),其中不規則陣列就像其他語言中的多維陣列作法,也就是陣列中的陣列(Array of arrays),因此每列長度可以不同;矩形陣列則像是表格,每列長度都相同。我的資料是一串座標,座標數量、維度不固定(但是同一份資料中座標維度必相同),起初我想這應該算是「動態陣列」吧!就用了 ArrayList(並不是前面提到的任何一種 XD),後來才發現我不需要動態,又改回矩形陣列,矩形陣列每列長度相同,跟我的資料剛好符合。最後一次則是改成不規則陣列,因為矩形陣列要取出其中一列很麻煩…… 這樣改了一圈感覺滿空虛的,都沒有用到 C# 的特殊功能 orz

7/30 沒事作,便試圖提昇 K-means 效能,第一個想法是最佳化找最近點的演算法,因為 K-means 中不斷的在找最近點。稍微翻了一點資料後,我覺得 kd-tree 看起來好像不錯,而這就是一段悲劇的開始…… kd-tree 其實是一種資料結構,為了將我的資料轉換為這種格式,我花了兩天才完成,主要的困難點在於他必須依照資料的各個軸排序,這不是用 Array.Sort() 就能辦到的事情,而我又不想使用 Wikipedia 上講的 Selection sort(時間複雜度很高耶!),最後把資料型態改成不規則陣列才作出來(這也是最後一次改資料型態的主因),這個部份完成後其他部份便很快也跟著完成了。

不過花了兩天研究 kd-tree 其實也還不算什麼,難過的是我寫完後才發現我不知道這要怎麼應用到 K-means 上…… XD


It is now safe to turn off your computer


3 Comments
Safe to turn off

從電腦中意外翻出懷念的東西,我轉成了三個尺寸的桌布,念舊(?)的人請自行取用 XD

註: Windows XP 似乎還不會在延展 PNG 桌布時反鋸齒,所以用 320 × 400 的版本讓它自己延展應該會有最糟糕但卻真實的效果。

其實我從小就很好奇為什麼這一段文字沒有置中…

← Previous  1 … 3 4 5 6 7 … 52 Next →