Home » 2010 » December (Page 3)

Tatsumaki 與 Twiggy 的搭配...

感謝 #perl.tw 上的幫助,總算是找到方法將 Tatsumaki 跑起來,而且把該拆開的地方拆開...

這是 app.psgi

use Controller::Main;
use Tatsumaki::Application;
use strict;
use warnings;

Tatsumaki::Application->new([
    '/' => 'Controller::Main',
]);

這是 Controller/Main.pm

package Controller::Main;

use parent qw/Tatsumaki::Handler/;
use strict;
use warnings;

sub get {
    my $self = shift;
    $self->write('It is Main Controller.');
}

然後直接用 twiggy 不加參數就可以跑起來..

在 Debian 上使用 CPAN 時要如何與系統的 lib*-perl 合作...

因為對 FreeBSD 還算熟悉,所以在 FreeBSD 上遇到 Ports 內沒有的 CPAN module,我會做一個新的 port 出來 send-pr,但對於 Debian 的熟悉度沒有 FreeBSD 高,想了老半天想不到什麼好方法,在 #perl.tw 上問了這個問題,不過還是沒有滿意的答案...

然後想到,在 Stack Overflow 上面說不定有人問過,丟一些關鍵字後有兩筆相關討論可以參考:(至少是可行的解法)

有人是建議自己 compile 一個 Perl 出來裝到 /usr/local 下 (於是就可以惡搞到底),有的人則是建議用 dh-make-perl 做 .deb 出來用,但還是會有很多問題...

再想看看好了,真麻煩...

Route 53 的幾個網頁操作介面

目前 Route 53 還沒有 AWS Console 可以用,必須自己寫 API 呼叫,或是透過比較信任的 3rd-party website 更新。

比較早出現的是 DNS 30,背後其實就是 Bucket ExplorerSDB Explorer 的公司,介面簡單而且容易懂。由於宣稱不會將 secret key 存起來,所以每次登入後都要輸入 access key 與 secret key...

另外一個是 Ylastic,這家公司前幾天也宣佈支援 Route 53 了:「AWS Route 53 DNS Management」,他們所提供的 Screenshot 看起來也還蠻簡單易懂的:

不過我不確定 Ylastic 提供的 Route 53 服務是否免費,有興趣的可以去試看看...

Automattic (WordPress.com) 的訪談

Automattic 就是 WordPress.com 背後營運的公司,訪談的部份內容在這邊:「Automattic Hits 300 Million Unique Visitors, Roughly $10 Million In Revenue」。

目前 Automattic 有 74 個人,而 TechCrunch 從「可靠的來源」知道每個月收入大約是 USD$1M,大多數都是從付費服務而來,目前已經 break-even。

文章的最後一個問題還蠻好玩的 XD

What’s the exit potential for Automattic?
Our goal’s not to be acquired.

Amazon Web Services 新服務:Route 53

當有多個 Data Center 的時候就應該要做的事情!Amazon 總算是出手了...

Amazon 官方的新聞稿在這:「Amazon Route 53 - The AWS Domain Name Service」,CTO Werner Vogels 的介紹在這:「Expanding the Cloud with DNS - Introducing Amazon Route 53」,產品的介紹頁在這:「Amazon Route 53」。

Route 53 是利用 Amazon 目前已經有的 Data Center (依照 CloudFront 的名單,看起來是同一組機房),加上 IPv4 Anycast 而提供的 DNS query 服務。以文件裡的範例可以看到使用了四個不同的 domain,分別是 com、net、org 以及 co.uk:

<NameServer>ns-1638.awsdns-12.co.uk</NameServer>
<NameServer>ns-144.awsdns-18.com</NameServer>
<NameServer>ns-781.awsdns-33.net</NameServer>
<NameServer>ns-1478.awsdns-56.org</NameServer>

到幾個不同的點 mtr 可以看出來有用 Anycast,只是還需要調整... 另外,依照文件看起來,暫時不提供 slave server,而必須透過提供的 API 直接改,這點是比較麻煩的地方,不知道 Console 什麼時候要提供介面...

最後來談價錢好了,每個 zone 的基本費用是 USD$1.5/month (包括 1M query/month 的量),一年也才 USD$18/year...

Route 53 之所以特別,是因為一般人就算有錢也沒辦法架出像樣的 Anycast-based DNS (這要有錢而且有量才做得到),而之前七月的時候 Cotendo 給的 quote 讓我連回信都懶得回 (雙方認知差距太大),我記得價錢好像多了好多 0...

這項服務會給自認 Anycast-based DNS 是「加值服務」而撈錢的公司一記重擊... 尤其大家都知道 Amazon Web Services 的東西出來後還是會花時間 tune,服務水準會不斷改善,比起其他公司來的穩定多了...

FreeBSD 使用 FastCGI + PHP 5.3 提供的 php-fpm

這篇還是講 mod_fastcgi,而非目前歸到 Apache 下管的 mod_fcgid

PHP 5.3 已經內建 php-fpm,不過 ports 預設是不會裝上去的,所以首先先把 lang/php5 加上 php-fpm 支援。方法是 make config 後選擇 FPM。如果有裝 portconf 的人可以直接在 /usr/local/etc/ports.conf 裡加上:

lang/php5*: WITH_FPM=yes

這樣就會強制蓋過系統設定,強制把 php-fpm 裝進去。

接下來是設定的部份,首先是 php-fpm 的設定,這篇的文章只教預設值,會跑在 127.0.0.1:9000。所以只要在 /etc/rc.conf.local 內設定 php_fpm_enable="YES",然後跑 /usr/local/etc/rc.d/php-fpm start 就把 php-fpm 跑起來了。

然後是 apache 的設定,有好幾條要設:

LoadModule fastcgi_module libexec/apache22/mod_fastcgi.so
FastCgiConfig -maxClassProcesses 1
AddHandler php-fastcgi .php
Action php-fastcgi /php-fpm-handler.fcgi
FastCGIExternalServer /php-fpm-handler -host 127.0.0.1:9000
ScriptAlias /php-fpm-handler.fcgi /php-fpm-handler

我是跑 apache22-worker,上面的設定就可以了...

中文版維基百科 (Wikipedia) 常用模板 (Template)

這篇不是給完全沒碰過維基百科的初學者入門用的,而是給偶而有在編輯中文版維基百科,但對於社群常用的東西不是很熟的人。

首先是對人物的部份,常用到 bd 模板,用法可以參考「成吉思汗」條目,範例如下:

{{bd|1162年||1227年|8月25日}}

好處是會加上「Category:1162年出生」與「Category:1227年逝世」的分類。如果沒有指定死亡日期則會自動再加上「Category:在世人物」,如果沒有指定生日年份的話則會加上「Category:出生不詳」,算是很基本很好用的模板。

很多人物都有 Twitter 連結,可以用 Template:Twitter 模板,範例:

{{Twitter|gslin|Gea-Suan Lin}}

再來是中文因為有不同地區造成有不同的名詞,所以有語言轉換模板 Template:NoteTA,這邊要介紹的是「Template:CGroup/list」(需要按下旁邊的「顯示」才會展開),用法如下:

{{noteTA|G1=IT|G2=Length}}
(表示對「電腦和資訊科技」與「長度單位」名詞轉換)

請支援 PubSubHubbub...

PubSubHubbub 對於內容提供者 (包括 Blog Platform 或是 Micro Blogging Platform) 已經是很簡單的協定了,不僅可以增加更新速度,還可以降低伺服器 loading,不過國內幾個平台還是沒人支援啊...

首先是標準規格書:「PubSubHubbub Core 0.3 -- Working Draft」,不過這文件對於要支援 PubSubHubbub 的 content provider 不是很重要,只要把裡面的觀念看懂就好。

PubSubHubbub 中有三種不同身份,可以用不同的伺服器跑。一個是內容提供者 (Publisher),一個是訂閱者 (Subscriber),另外一個是 Hub。內容提供者在這邊的例子就是 (Micro/) Blog Platform,而訂閱者可以是 Google Reader,Hub 則是中繼角色,目前有 Google 提供的服務可以用,也有 open source 軟體可以自己架。

第一步,內容提供者在先在 feed 中加入一個或多個 hub 位置,像是這樣:

<link rel="hub" href="http://pubsubhubbub.appspot.com" />
<link rel="hub" href="http://superfeedr.com/hubbub" />

第二步,當該 feed 有更新時送出 ping 給 hub,這部份假設用 PerlNet-PubSubHubbub-Publisher 做的話則是:

my $pub = Net::PubSubHubbub::Publisher->new(hub => 'http://pubsubhubbub.appspot.com');
$pub->publish_update('http://admin.pixnet.net/blog/feed');

就是這樣子而已!

Amazon「導入」Wikipedia 並加上廣告連結

參考 Slashdot 的「Wikipedia Pages Now On Amazon — With Product Links」這篇文章。

Amazon 所產生的 Wikipedia 對應頁面在這:「Main Page - Shopping-enabled Wikipedia Page on Amazon」。

依照 Wikipedia 的文章授權,是可以這樣做沒錯 (沒有禁止商業使用)。不過 Google 禁止複製別人的重複內容:「Duplicate content」。

以目前 www.amazon.com/robots.txt 的內容看起來是沒對 /wiki 設限,接下來就來看 Google 會不會認定 Amazon 試著在惡搞 SEO 而列入處罰清單...

Archives