October 22, 2009

YAPC::Tiny 第二彈緊急開催

perl_powered-alpha.png

這次特別請到 Perl 社群中最愛橘色的 Leon Brocard 來分享,他目前也是 Perl 5.11.3 版(將於十二月釋出)的負責人。也請所有參加者同時準備一個 5 至 10 分鐘的講題,填寫在報名表中,題材深淺不拘,多多益善。

名額有限,報名從速喔!報名網頁: http://registrano.com/events/yapc-tiny-second

September 6, 2009

YAPC::Tiny->first 順利結束

感謝大家的參與,YAPC::Tiny->first 的內容十分的豐富。我們總共有 14 位參與者(包括我本人!) ,果然是最小的 YAPC。

先整理出大家的照片如下:

這次我們有許多分享了他們的題目。遠道從以色列來的 nothingmuch 講了新作 Try::Tiny 與 Continuation::Delimited。Ijs 展示了用 Jifty 做的專題「民以食為天」。shelling 分享了他如何延伸他人的模組而讓自已的程式更具可讀性。clkao 再次分享了 Trading with Perl。初次參與 YAPC 活動的 imacat 完整地介紹了他過去的 CPAN 作品,以及「比狐耳更萌的秘密武器」!penk 分享了他的 xPUD 作品。c9s 努力趕出了投影片,分享了非常多影像繪製的 CPAN 模組。ihower 跑來講 Ruby,BlueT 則是很努力做了自我介紹。

這次影片的錄影,在取得大家同意之後,會陸續上傳到Vimeo 的 YAPC Channel ,請密切注意更新。

August 25, 2009

YAPC::Tiny->first 開始報名

OSDCCOSUPYAPC::NA 以及 YAPC::Asia 都盛大舉辨的今年,我們要先來辨場迷你型的聚會。時間是九月五日星期六 7PM - 9PM、地點在台中市的默契咖啡館(地址:台中市中港路二段60-3號。)

這次聚會的目的主要是希望認識一下在玩 Perl 的各位人士,平時都在關心一些甚麼樣的主題。因此,希望所有人都能夠提供一個 5 分鐘左右的短題目與大家分享。

請有興趣的各位立刻前往報名網頁 http://registrano.com/events/yapc-tiny-first 進行報名。

July 6, 2009

Data::Model

Data::Modelyappo 最近的新作品,顧名思義,它是個 ORM,就使用風格來說,與之最接近的大概是 DataMapper 與 Jifty::DBI

和目前大多數的 ORM 系統有別的,Data::Model 嘗試處理多個資料庫來源,它的處理方式是:讓每個 Model 裡面除了定義了資料庫欄位,還指定了資料庫和資料表。

Continue reading Data::Model.

July 3, 2009

YAPC::Asia 2009 開放講者投稿與報名

原消息在這裡

2009 年的 YAPC::Asia 將在九月10號、11號舉辨,場地將在東京市目黑區大岡山的東京工業大學校區。已於上周開放講者投稿,目前需要的是 20 分鐘或 40 分鐘的演講,七月 17 日將截止。有興趣參與、順便到東京一遊的讀者,敬請密切注意。

除此之外,目前也正在募款中,請參考這裡。也已經有一些有名的 Perl 社群黑客受邀演講,請參考 JPA Blog

自 2006 年舉辨以來,YAPC::Asia 就一直是規模最大的 YAPC。Perl 之父 Larry Wall、狂人 Damian Conway Ruby 之父松本行弘、日本 Ruby 協會會長高橋征義,都曾經參與過這場盛會。

April 29, 2009

Mini howto: Testing HTTP::Engine-based applications.

HTTP::Engine is an abstraction layer over several environments that an web application might be deployed under. For example, CGI, FastCGI, mod_perl, or stand-alone application server. It’s not a full-featured web-appication framework, but a helpful library when writing applications. This kinds of idea is especially tasteful when it comes to testing — because it’s often cumbersome to fully prepare the environment for testing.

Read more…

April 28, 2009

Poppler 模組

最近幾天我寫了一個 Poppler 模組。 將一些 Poppler 主要功能透過 xs 做連結,在裝此模組時,請確定你已經安裝 poppler library , gcc 等等,因為你需要在安裝的時候執行一些編譯動作來將模組編譯並安裝。

Poppler 是一個以 xpdf-3.0 為基礎的 PDF Rendering 函式庫
所以我們可以輕易的利用 poppler 來將 pdf 繪製到 Cairo Context 上頭 (cairo_t*) , 以下是範例:

more progress later...

April 20, 2009

SD - peer-to-peer bug tracking system

今年的 OSDC.TW , Jesse Vincent 的 topic 為 BestPractical 最近的產品 SD ( peer-to-peer bug tracking system )

也是 BugTracking 可以 decentralized 、可以 offline working,不直接相依於中央集成的 WebService。 並且有完整的 Shell 可以使用 (再也不用開煩人的 browser 了) 且每個 SD 的 repository 之間都可以 sync ,甚至或是啟動自己的 WebServer。相當的吸引人。

目前 SD 也支援 Trac , Hiveminder 以及 RT。意思就是說 Perl Module Authors 可以使用 SD 來使用 rt.cpan.org。而下一個階段是要做 GoogleCode 服務的整合,也相當歡迎大家幫忙整合 Github 以及 BugZilla 至 SD。

SD 使用 Perl 所寫成的 Prophet Database,也相當有趣,Module 的說明如下:
Prophet is a distributed database system designed for small to medium scale database applications (currently up to around 50,000 records of Our early targets include things such as bug tracking.

Jesse 的 slide 在這: http://www.slideshare.net/obrajesse/sd-a-p2p-bug-tracking-system
SD 以及 Prophet 的 source code 可以在 github.com 上頭找到。

本篇文章同步刊登於 http://c9s.blogspot.com

April 12, 2009

Class::Implant - No &import()

Class::Implant 是最近和 gugod 寫 Railsish 時,順手實做的模組,可以從 package 外部做 mixin 或是 inheritance,並挑選你想匯入的函式。

最初的目的是因為需要為 Controller 引入同名 Helper 的函式,但是又不想讓使用者在 Controller 裡面寫 use XxxHelper ,在 Rails 裡面,這只要在載入類別時進行
XxxController.send(:include, XxxHelper)
就可以辦到,雖然 Perl 裡面也可以寫
eval qq{ package XxxController; use XxxHelper; };
但是這樣還需要自己定義 XxxHelper::import(),在裡面指定想匯入的函式,實在相當不便。

使用 Class::Implant 的話,可以有比較簡單的等價寫法,
pacakge main;
use Class::Implant;
implant "XxxHelper", { into => "XxxController" };
如同其字面的意思,把 XxxHelper 中所有的函式都注入了 XxxController。

如果在 main 以外的模組內的話,預設的匯入目標就會變成該模組。也就是說,以上範例可以等價寫成如下:
package XxxController;
use Class::Implant;
implant "XxxHelper";
目前 0.02_01 版的實做還有 match 和 inherit 兩個選項可以使用,{ inherit => 1 } 可以讓匯入的模組出現在匯入目標的 @ISA 中,{ match => pattern } 則是只匯入符合 pattern 的函式。

如:
package main;
use Class::Implant;
implant qw(Foo Bar), { into => "Cat", match => qr{h\w+} };

代表只把 Foo,Bar 中 h 開頭的函式匯入 Cat 中。

同時還有 UNIVERSAL::Implant 模組,如同字面意思,這個模組只需要匯入一次,就可以在任何地方這樣寫:

Cat->implant qw(Foo Bar), { match => qr{h\w+} } 

這上一個範例是一樣的效果,也就是由呼叫類別 Cat 指定了 { into => "Cat" }。

March 19, 2009

Parrot 1.0.0 "Haru Tatsu" Released!

Perl 6 實做品之一的 Parrot 已於 2009/3/17 釋出 1.0.0 版本,消息發佈於 http://www.parrot.org/news/2009/Parrot-1.0.0

***
allison 著, shelling

代表 Parrot 開發團隊,我很榮幸在此發佈 Parrot 1.0.0 "Haru Tatsu"。Parrot 是一個支援多種動態語言的虛擬機 (virtual machine)。

Parrot 1.0.0 可以從 Parrot 的 FTP 站下載引導頁來下載,對於想要在 Parrot 上開發或是協助開發 Parrot 的人,我們建議使用 Subversion 從我們的源碼庫取得最新的原始碼。

Parrot 1.0.0 新特色如下:

- 文件
  + 給使用者的新版例外處理文件
  + 更新 Parrot Book 的第四和第五章
  + 改善和擴充自動生成的文件,如 http://docs.parrot.org/ 所示
  + 新增 CHM 格式的 Help 文件
  + 修正和改善許多部份
- 語言
  + Pynie
    - 獨立出來置於 http://pynie.googlecode.com/
  + Cardinal
    - 獨立出來置於 http://github.com/cardinal
  + APL
    - 獨立出來置於 http://paraplegic.googlecode.com/
  + ABC, Squaak 和 Befunge 移到 examples/
  + 剩下的語言移至 https://svn.parrot.org/languages/
- 工具
  + 支援從已安裝的 Parrot 進行 language builds 
  + 擴充給新語言使用的 language shell generator
  + 新增 'parrotbug' 工具集對 Trac 的介面
- 準廢棄
  + 移除準廢棄的 Tqueue 和 Closure PMCs
  + String, Key, NCI, LexPad, Sub, Contnuation,
    RetContinuation, ExceptionHandler, ParrotLibrary,
    ParrotInterpreter, ParrotThread, ParrotRunningThread,
    Rational, FixedPMCArray, ResizablePMCArray, and GDBMHash
    PMCs now use declared attributes (ATTR), in place of the
    deprecated UnionVal .
***