處處有廣告!

這個 extension 真的會讓人噴飯 XDDD

TechCrunch 介紹了「Jimmy Wales」這個 Google Chrome Extension:「Chrome Extension Lets You Just Add Jimmy Wales」。

Wikipedia 一直拒絕放廣告取得收入 (參考:「An appeal from Wikipedia founder Jimmy Wales」),但相當諷刺的是,每年大概這個時候都會有超煩人的橫幅廣告,請你捐錢給 Wikimedia...

我有寫一個 Greasemonkey Script 處理這個:「Wikipedia AD remover」。

這個 Extension 相當機車啊 XDDD (以下是裝上去以後的效果,取自 TechCrunch XDDD)

ShipIt 與 cpan-upload

三年多沒寫 Perl module,很多東西雖然有印象,但實際上都是重新學習...

Brad Fitzpatrick 寫的 ShipIt 配合 Module::Build 超好用的,還可以配合 Git 自動在產生 tarball 時打上 tag...

cpan-upload 則是可以在 CLI 介面直接上傳到 CPANPAUSE,然後過不久後就可以在 CPAN 上面看到新模組了...

不過還是不夠熟練,繼續研究吧...

產生 Perl Module 的工具:Module::Starter

很久以前只知道用 h2xs 產生 Perl 的模組架構,後來被推薦可以用 Module::Starter 產生... (忘記是誰推薦的,找 irc 紀錄沒翻到)

這幾天要用,在 SlideShare 上面找到「Packaging Perl Modules」這份投影片,雖然是 2007 年的投影片,但還是相當實際...

在裝好 Module::Starter 後,先建立 ~/.module-starter 目錄並設定 ~/.module-starter/config

author: Gea-Suan Lin
email: gslin@gslin.org
builder: Module::Build

然後就收工了... 要產生模組時用:

module-starter --module Foo::Bar

生出來的東西會比 h2xs 簡單不少...

Update:結果是 c9s 提醒了:「@gslin module::setup & ShipIt. would help.」。

Bayesian spam filtering

英文版維基百科條目:「Bayesian spam filtering」。

要判斷一個詞 spam 的機率是依照貝式定理

這之中每個項目都可以先被計算起來,再來是機率的合併:

接下來是罕見字以及其他改善精確度的處理。

其實基本的觀念並不難,當初不知道為什麼一直沒看懂...

Torrific

T 客邦的「只要複製貼上,Torrific 免費幫你把 BT 抓到好」這篇文章提到了 Torrific 這個 BitTorrent 代抓服務,我是從還是叫做 btaccel 的時代就看到這個網站,用過幾次以後也沒什麼在用了... (畢竟 rtorrent 用習慣了)

先說明文章裡提到的「找 torrent 檔的免費空間」的問題要怎麼解決。一般的空間可能會需要帳號密碼,或是無法給一個連結直接下載,這點可以用 Torrage 以及 ZoinkIT 這類專門存放 torrent 檔的站台來放。

再來談 Torrific 這個站台。這個站目前放在 Slicehost,但更早之前是放在 Hurricane Electric 的機房內,而且以前的 domain 註冊資訊也是 HE (現在是隱藏起來)。如果故意丟一個很少人抓的檔案,然後觀察會有什麼 peer 連上來,也可以看得出來是 HE 機房的 server 連上來代抓...

這讓我想起以前和信 (現在被遠傳合併了) 跟 HiNet 在吵 peering 以及「帥哥團隊」灌流量的事情了... XD

AWS 的幾個進展:EC2 HPC 與 ISO 27001

其中一個是 AWS EC2HPC (High Performance Computing) 平台上了 2010 年 11 月 Top 500 的 #231:「AWS Compute Cluster #231 on Top 500」,每個 node 只要 $1.60/hour 與 $2.10/hour (GPU 版本)。

另外一個是 AWS 通過 ISO 27001:2005 - Information technology -- Security techniques -- Information security management systems -- Requirements:「AWS Receives ISO 27001 Certification」。

兩件事情都不小,前者會對 Super Computer 帶來一定程度的改變,後者則是給一般人對於 Cloud Computing 的安全印象有所改變 (雖然我覺得 ISO 27001 解決的方向並不太一樣...)。

Perl 的 Object::Destroyer

使用 HTML::Tree 時因為有 circular reference,會要求你要使用 ->delete() 告知 object 打斷 reference 以避免 memory leak。於是就得很小心寫,要注意每個步驟以免某些狀況下忘記 ->delete() 而造成 leak:

my $html = HTML::TreeBuilder->new_from_content($body);
foreach my $element ($html->look_down('a', qr{某個 RE 條件})) {
    if (符合某個條件) {
        # 做某些事情...

        $element->delete;
        $html->delete;
        return;
    }

    # 做某些事情...
    $element->delete;
}
$html->delete;

後來找到了 Object::Destroyer,利用另外一個 object 的存活幫忙回收,於是就可以簡化成:

my $html = HTML::TreeBuilder->new_from_content($body);
my $htmlD = Object::Destroyer->new($html, 'delete');
foreach my $element ($html->look_down('a', qr{某個 RE 條件})) {
    my $elementD = Object::Destroyer->new($element, 'delete');
    if (符合某個條件) {
        return;
    }
    # 做某些事情...
}

這樣就不會 leak 了...

用程式 (機器人) 自動寫運動新聞

TechCrunch 看到一個全新的嘗試,用程式 (機器人) 自動寫運動新聞:「Automated News Comes To Sports Coverage Via StatSheet」,網站是「StatSheet Network: Team-centric news, stats, analysis for college basketball」。

其實可讀性還不算差耶?如果要保持中立性,這類型的新聞就是調出之前的資料合併成一篇?

Perl 的 AnyEvent + EV

Coro 用起來不太順,於是跑到 freenode 的 #perl.tw 上問 Coro 是不是能用的東西,結果 clkao 建議了 AnyEvent,用了感覺反而比 Coro 順手,大概是因為平常對 event-based 的東西還算習慣吧...

與「Perl 的 Threading 實做:Coro」這篇同樣的東西,改用 AnyEvent + EV 寫: