2009年12月31日

2009年のまとめ

■1月
 井澤ライブドア社長いじりで年を開ける
 CodeRepos新年会開催
■3月
 Dan The Hack祭り
■4月
 Hatetter作った - いまも便利に使ってる
 Shibuya.pm #11 で発表
  run_ops hack と Xen 周り
 mikio さんを励ました
 くさなぎくんが全裸になった
■5月
 Log::Dispatch::Screen::Color つくった
 虹が綺麗だった
 Iron Man Blogging Challengeに参加した
  もう秋田
 AcotieScript 作った
 svn2git hack した
 Hash::Merge を褒めた
■6月
 Data::Model を CPAN にあげた
 kumofs 受賞おめでとう会を丸の内でやった
 Imager::ExifOrientation を作って acotie をまわした
■7月
■8月
■9月
 HTTP::Engine project リタイアのお知らせ
 YAPC::Asia 2009 で発表した
  Data::Model と nginx の PSGI の話
  nginx PSGI は何も進展してない
 AnyEvent ちゃんといじった
■10月
 HTTP::Request::StreamingUpload 書いた
 HTTP::Engine::Interface::PSGI リリース
 Makefile polyglot かいて perl ./Makefile したら perl ./Makefile.PL するようなのかいた
 JSTAPd 公開
■11月
 近所で大きい火事があった
 Go に Acme::Oppai を移植した
■12月
 WWW::Shorten::Google 書いた 
 JPerl Advent Calendar 参加 & メンテナ参加
  hacker track 2本 casual track 1本 data-model track 24本書いた
 Module::Setup 0.07 をリリース
 Module::Requires 書いた
 JSTAPd を CPAN にあげた
 Object::InterfaceType をリリース

■総括
 今年は Moose な人たちと関ることをはじめとして!日本語圏の人とコミュニケーションをとれたのが良かった
 gfxとjesseとclkaoをまとめて自宅に泊めたというイベントもあった
 不意打ちで社長が所属バレしてた
 githubはじめた
 ちっちゃい省機能なモジュールを書くように意識し始めた
 自作言語を作ってみた
 そのほかいろいろ
 来年の企画に向けた準備をもろもろやったよ
 CPAN リリースはもっとしてるとおもう

■来年の目標
 落とさない

Posted by Yappo at 23:58 | Comments (0) | TrackBack

Golang の interface type 風味の duck type する関数を作る Object::InterfaceType っての作った

だいぶ前に作って放置してたんですが、そこそこCPANに上げられる感じにはしてあったので年末の倉庫整理をかねて CPAN にあげました。 http://github.com/yappo/p5-Object-InterfaceType

Goではクラス定義で云々するんじゃなくて、interfaceで定義されてるメソッド群をすべて実装されてたらOKといった感じなんですが、まぁいわゆるduck typingできればおkみたいな感じですね。

Perlの世界では if ($foo->can('bar') && $foo->can('baz')) みたいなコードで duck type可能かを調べるんですが、見た目がごちゃごちゃしがちになるので、Goのinterface type的な感じのものをPerlの世界に持ってきました。

if ($obj->can('read') && $obj->can('seek')  && $obj->can('close')) {
なんてコードを
if ((interface_type [qw/ read seek close /])->($obj)) {
という感じで書き換えられます。

my $is_filehandle = interface_type [qw/ read seek close /];
if ($is_filehandle->($obj)) {
やら
interface_type filehandle =>[qw/ read seek close /];
if (is_filehandle($obj)) {
なんて書き方もできます。

canばっかり呼ばれてるコードって見たこと無いのですが、そういうコードはすっきりとかけるようになるんじゃないでしょうか。

コンセプトは夢の中で思いついて起きて1時間くらいで実装した。

Posted by Yappo at 16:21 | Comments (0) | TrackBack

ajax/javascriptテスト環境の JSTAPd を CPAN にあげました

ちょっと前のacotiethoneの時にlestrrat++さんがドキュメントを英訳してくださったのでCPANにアップロードしました。

http://search.cpan.org/dist/JSTAPd/

それなりに頑張って日本語でもドキュメント書いたので、lestrratさんが気に留めて使う気になって英訳してくださったんだとおもいます。
おかげでCPANへリリースすることもできました。

テストも重要ですがドキュメントも重要ですね。

Posted by Yappo at 16:04 | Comments (0) | TrackBack

2009年12月25日

Module::Requires について hacker track last day を書きました

依存モジュールの管理を実際のコード内で行う為にあったら便利そうなモジュールを思いついたので思いつきのまま CPAN にアップロードして advent calendar に書きました。

http://perl-users.jp/articles/advent-calendar/2009/hacker/25.html

たぶん、 advent calendar で紹介されたモジュールの中で一番新米なんじゃないかと思います。

あとは casual track が完走すれば JPerl Advent Calendar 2009 は全部完走となります。

今から寿司がたのしみです^^

Posted by Yappo at 15:26 | Comments (0) | TrackBack

2009年12月22日

あなたがData::Modelを使う10の理由

前口上

一昨年書いた『あなたがRuby on Railsを使わない10の理由』を書いたら、おおむね好評とともに読んでもらえたみたいで(ほんとかー?)うれしい限り。実際あのあとも記事の影響ってわけじゃないと思うけどRoR使ってくれた人もたくさんいるし、ますます広まってきているみたいでこれも私設営業の人としてはとてもうれしい。


(例によって書きかけなので今後もいろいろ変わったりするかも)

Data::ModelはCPAN Moduleである

まあ上でああいったけどやはりCPAN Moduleであることそのものの価値ということにまずは言及しておく。
いまのPerlはまぎれもないCPAN Moduleベースの言語なのだ。それ自体は実のところ単なる偶然の産物なんだけど。でもさまざまに紆余曲折あってCPAN Moduleベースになったおかげで、Perlが得た恩恵はとても大きい。
Perlはその根幹はCPAN Moduleであるということは、CPAN Moduleの四半世紀の歴史がはぐくんできた膨大な蓄積をPerlも同様に備えているということだ。おかげでプログラマだったらPerlがどんな挙動をするかというのはだいたい想像がつくわけ。

Data::ModelはiPodと相性がいい

この項、あとで書く

いまData::Modelを使い始めると世界で三番目にヘビーなData::Modelユーザになれる

あなたが何かの分野で世界第三位の位置に立つことを考えて欲しい。思った以上に道のりが険しいという事が誰でも想像がつくであろう。
しかし、そんなただの人が世界で三番目の位置に立てる分野がある。そうData::Modelのユーザとしてなら世界第三位のヘビーユーザーになれるチャンスがあるのだ。
現在Data::ModelのヘビーユーザはYappoとtokuhiromしか居ない。ここにあなたの名前が連ねるのだ。
どうだい魅力的ではないか?

え、DBIx::Skinnyがいいって?ありゃ駄目だ。nekokakを始めとしてモバイルファクトリーの全社員が使ってい。あなたはモバイルファクトリーの社員数を数えられるか?
それにyusukebeやnekoyaやnihenやnobuなんとかやmixiの連中まで唾をつけてやがる。
そんな手垢のついたものばっかり使ってるから君は世界三位の位置にいつまでたってもつけないんだよ。

それが、Data::Modelを使えばチャンスが巡ってくる。どうだい?簡単だろう。
それに今ならAdvent Calendar期間中で使い方のドキュメントが揃って来てるしね。
http://perl-users.jp/articles/advent-calendar/2009/data-model/

以下蛇足

この記事を書いている私はもともとCDBIファンだったんだけど、いまのData::Modelは古き良きCDBIが持っていたcultureと、DBICが持っていたcultureの両方を備えたこれ以上はないほど魅力的なORMになっている。ある意味、CDBIよりもCDBIらしいと思う。この業界の先端を走っている人全員ではないけれど、かなり多くの人はData::Modelを使っているし、これからますます増えてくると思う。

Posted by Yappo at 15:54 | Comments (0) | TrackBack

2009年12月21日

JPerl Advent Calendar hacker track で Module::Setup の事書いたよ

ガイアックスさんのご好意で会場提供された hackathone の成果として Module::Setup 0.07 を shipit する事ができたので、当日担当だった Advent Calendar に Module::Setup の紹介と新要素紹介を行いました。
Module::Setup でらくらくモジュール作成 - JPerl Advent Calendar 2009

実に14月ぶりくらいのメジャーリリースで、様々な機能が追加されています。
おもに flavor 開発者にとって便利な物が大量投入されてます。

他にも Ark などの helper script をより便利に作れる Helper support 機能が投入されてます。


一般向けとしては XS flavor が追加されており、多分 id:gfx がよりモダンな flavor にしてくれることでしょう。

そしてようやく GitHub flavor も投入されました。スケルトン作るときに GitHub のリポジトリセットしたり git remote の設定を自動でやってくれたりします。
お望みとあれば、出来立てのスケルトンをそのまま git push してくれますがそんな変態はいないでしょうか。

ということで Module::Setup をご利用ください。

ガイアックス++

# 最初は本気で東小金井に行きかけたのはないしょのつぼみ

Posted by Yappo at 12:48 | Comments (0) | TrackBack

2009年12月15日

goo.gl の API を叩いて goo.gl のショートURLを作る WWW::Shorten::Google ってモジュールかいた

http://goo.gl/ ってのが巷では始まっていますが、まだ勝手に tinyurl を作れないようなので
簡単に http://goo.gl/hoge な tinyurl を作る WWW::Shorten::Google ってモジュールを書きました。

http://github.com/yappo/p5-WWW-Shorten-Google

CPAN には、各種 tinyurl を使って url を短くするための統一インタフェイスとして WWW::Shorten ってのがあるので、それの流儀にしたがって作りました。

Posted by Yappo at 19:54 | Comments (0) | TrackBack

2009年12月04日

今年良かったCM

というか近年まれに見る良作。
BOSSのクリスマスのなんだけど。

と思ってweb上でCMみれる所探したけど見つからないでやんの。
企業ページにflashな視聴ページあるけど、今の環境じゃ動画みれねー。

ニコニコ動画とかに上げときゃいいのにCMなのに出し惜しみしててどうすんだって感じ。

久しぶりにBOSS飲もうかと思った気持ちが一気に萎えましたというおちでした。

まぁ、こういう昭和の時代にいっぱいあった感じのCMは今は少ないので増えるといいですね。
このCM自体は、今時のTVにあるまじき良作で、最近話題のニコマスMAD映画?だかのプロデューサーが死んじゃうやつより良いとおもいますね。はい。

Posted by Yappo at 02:34 | Comments (0) | TrackBack

2009年12月02日

JPerl Advent Calendar 2009 はじまりました

という事で始まりました。
http://perl-users.jp/articles/advent-calendar/2009/
gfxさんがまとめてくれたPerl界隈のAdvent Calendarの便利リンク集も有るので便利です!

今回はトラックが二つに別れた事の他にDBIx::SkinnyとData::Modelのトラックが出来てるのに気づくかと思います。
これは、本来予定されていたものでは無くて、今回のJPerl Advent Calendar 2009は結構便利に書ける仕組みだったので、便乗して開始したといういきさつです。
Advent Calendar書く為の準備をする必要が特にないので参入障壁が低いと言う事ですね。

何が言いたいかというと、もし何かのテーマでPerl Advent Calendarをやってみたい!って人は気軽に始めると良いですよ。という事。

$ git clone http://git.coderepos.org/share/websites/jperl-advent-calendar-2009.git/
$ cd jperl-advent-calendar-2009
$ cp -r data/data-model data/anatano-track
# data/anatano-track の中のファイルを諸々書き換える
# s/data-model/anatano-track/ みたいな事とか
# trackの名前変えたりとか
$ $EDITOR data/anatano-track/\d+.txt して、内容書く
$ git add data/anatano-track
# 必要だったら .nim とか data/index.html とか data/base.html も追加しとくと良いよ
$ git push

こんだけで http://perl-users.jp/articles/advent-calendar/2009/anatano-track/ が出来るんで楽ですね!

その他

本当は今回GitHub Pagesを使うとかいう話があったんですが、コラボレータ追加作業が面倒という事で特に手間がないCodeRepos使うと言う話になった。
あとnimいいですね、全トラックのRSSをまとめたRSSとか作るのもPlagger使わないでnimだけで作れる。

Posted by Yappo at 12:44 | Comments (0) | TrackBack

Data::Model Advent Calendar

YAPC 2009 (Yet Anther jPerl advent Calendar 2009) という事で、Data::Mode用のトラックを作りました。

http://perl-users.jp/articles/advent-calendar/2009/data-model/

あまりにも文書としてまとまってない Data::Model のドキュメントを増やすチャンスですね!
ちなみに全部書ききったら、別途kanさんに寿司奢ってもらうつもりです。

Posted by Yappo at 12:14 | Comments (0) | TrackBack