All posts by gslin

BBS 的字串搜尋

這幾天唸 algorithm 剛好念到幾個經典的 algorithm,其中之一就是 O(m+n) 的 KMP algorithm,突然想到 BBS 應該要大量使用這類 O(m+n) 的 algorithm 才對。因為掃一次 pattern 求出 fail function 後 (當然,為了速度要存到 array) 就可以不斷的重複使用。

string matching (nist.gov) 有列出不少都是 O(m+n) 的演算法。(當然,O(m*n) 的暴力法一定也會列的啦)

以 M3 (Maple3) 為例,在 ‘~’ 的串接功能,以及 ‘/’ 的中文看板板名搜尋 都應該以 KMP 改寫。於是這幾天就把 KKcity 的 str_str() 換了不少下來,在看板搜尋的部分果然馬上就有感覺。(因為全 KKcity 的看板實在太多了)

應該把 str_str_kmp() 以及 str_str_kmp_fail() 丟出來,接下來 itoc 就會處理了 :p

Yahoo! Search Web Services

Jeremy Zawodny 的 blogYahoo! Search Web Services Launch! 這篇文章看到的。

Yahoo! Search 的 Web Services 正式開跑了,正式的公告在 Announcing the Yahoo! Search Developer Network and Search Web Services

Yahoo! Search Web Services 有提供 SDK,所有的服務都以 REST 的方式與 client 溝通。包含了 Image Search、Local Search、News Search、Video Search 以及大家最常用的 Web Search。

同時,不像 Google APIs 以 User ID 為主,Yahoo! Search 用的是 Application ID,這點在 Developer Network FAQ 裡面有說明。

Open Source

看到有人以為 Microsoft 提的公開原碼是 “Open Source”,發現有很多人對 “Open Source” 的認知有問題。

“Open Source” 雖然中文翻成「開放原碼」,但通常我們提到 Open Source 的時候只是它的 license 是 Open Source License,而「再散佈時原始碼公開」並不是其中的條件,在 Open Source Initiative 的網站上有列出常見的 Open Source License

像是 GPL 要求原始程式碼的公開,LGPL 則是修改到原始程式碼時才需要公開,而 BSD license (這邊指的是新版的 “New BSD license”) 更鬆,再散佈時不需要附上原始程式碼。

而像 Microsoft 前陣子曾經發表的「開放原碼」,一般被稱為是 “Shared Source”。(像是 Slashdot 提到的 Microsoft Plans “Shared Source” .NET)