2008-06-01から1ヶ月間の記事一覧

Posting from Hatena Diary

HatedaEditorからの投稿.

POEでIRC bot

Yokohama.pmで、kanさんの発表を聞いて、MooseX::POEはなかなか良さそうだと思い、少し使ってみようと思っていたのですが、そもそもPOEのことを全然わかってないので、POE::Component::IRCを使って簡単なbotを作ってみました。 http://github.com/dann/yairc…

MooseX::AttributeHelpersでArrayRef、HashRefのアクセッサを簡単に作成する

Moose標準だと、ArrayRefのattributeを作ってそれをラップするメソッドを書く事になりますが、これは面倒です。そんなときに、使うのがMooseX::AttributeHelpersです。attributeを拡張してくれます。これで、arrayrefにaliasのようなものを追加できるように…

Shipitでgithubにリリース

steps = FindVersion, ChangeVersion, CheckChangeLog, DistTest, Commit, Tag, MakeDist git.tagpattern = release-%v git.push_to = origingit.tagpatternでtagの付け方を指定、git.pushtoでpushする先を指定といった感じです。これで、tag付けして、commi…

CPANモジュール作成の手順

今年はCPANモジュールを何かリリースできればなぁと思っているのですが、CPANモジュール作成の手順を理解していないので少しまとめてみました。 ひな形作成 pmsetup http://d.hatena.ne.jp/tokuhirom/20080424/1209021402 http://coderepos.org/share/browse…

XIRCDでのMooseX::POEの使い方

MooseX::POEの使い方の例として、XIRCDを少し見てみました。 http://coderepos.org/share/browser/lang/perl/XIRCD/trunk/以下、メモです Component MooseX::POEを使う new時にPOCO::XXXをspawan POE系の冗長な記述を簡易に書く仕組み Sub::Exporterでpostな…

Catamooseのinterview

http://jjnapiorkowski.vox.com/library/post/catamoose.html moose版catalystについての、いいinterviewですね。折角なので要点だけまとめておきます。要点は、以下の5点くらい。 Moose化 NEXT to C3 applicationとcontextの分離 Moose RoleをPluginに Brea…

Shell::Amazon::S3 - Moooooooosenized psh3ll

psh3llをmoose化してみました。 http://github.com/dann/shell-amazon-s3/tree/master役割別にクラス分けをしたので、signle script版よりは構成は綺麗になりました。 Plugin機構としてDevel::REPLのものを採用 CommandをModule::Findで一括ロード Shell::Am…

Yokohama.pm #1

Yokohama.pmに参加してきました。色々なテーマのトークがあり、とても楽しめました。家が近かった事もあり、飲み会も殆ど終電を気にせずにいれたのもよかったです。(yokohama.pm)++以下、トークで興味深かった点についてのメモです clouderさん Imager Image…

pSh3ll (Amazon S3 shell for Perl) 0.1 released

http://github.com/dann/psh3ll/tree/master/psh3ll.plversionつけれる程度には綺麗になった。これにて、シングルスクリプト版は一旦終わり。続きはShell::Amazon::S3ですることに。

pSh3llのリファクタしてみた

http://github.com/dann/psh3ll/tree/master/psh3ll.pl昨日よりは大分すっきりした。後はこれをmooooooooooose化して遊んでみようかなと。Devel::REPLのプラグイン機構をそのまま抽出して、思いっきりOOなコードにするつもり。Shellも一つフレームワークを作…

Shell作る際の参考になったもの

以下の3つ Shell::Perl CPANPLUS Devel::REPL CPANPLUSは、色々とTerm::ReadLine用のHackがしてあるからもう少し取り込んでみてもいいかもしれない。Devel::REPLがOO的には一番綺麗に実装されていて、さすがmstといった感じ。

Programming Collective Intelligence

Programming Collective Intelligenceのコードが全部pythonで書かれてて、最近pythonも結構読んでる。基礎的なアルゴリズム含めて全部がコードになっているのが素晴らしいhttp://www.amazon.co.jp/Programming-Collective-Intelligence-Building-Application…

pSh3ll (Amazon S3 command shell for Perl)

S3

AmazonのS3用のshellの実装が幾つかあるのですが、Perl版がないので作ってみました。 http://github.com/dann/psh3ll/tree/master/psh3ll.plCLIからbucketなどを操作できるのはなかなか快適です。rSh3llからportingしました。一部のメソッドの実装とテストが…

Shell::Flickr

シェルも作ってみたら意外と面白かったので、Shell::Flickrでも作ってみようかなぁと。セットのダウンロードとかを、 fshell> listsets fshell> set <setname> fshell> getfileallのような形でできるようにできたら結構便利なんじゃないかと思った。Devel::REPLの機構</setname>…

FlickrのAPI

さて、FlickrのAPIについてですが、写真のサイズを取得するのに、写真ID毎にAPI呼ばなきゃいけないのが、ちょっといまいちですね。どのサイズが公開できるようになっているのかをpublicListなどで写真のリストを撮るAPIのレスポンスに含めといてくれればいい…

Flickrのfavoritesを一括ダウンロード

http://perl-mongers.org/2008/06/webservicesimpleflickrfavorites.htmlperl-mongersにmoooooooooooseじゃない記事を書いてみました。perl-mongersには、モジュール使って、こんなことができました!といった、ユーザー視点の記事を書いていこうかなと思っ…

Livedoor picに写真をバックアップ

Livedoor picsに写真をバックアップネタを書いた。 http://perl-mongers.org/2008/06/livedoor_pics.htmlS3にバックアップとかがいいかなぁとも思ったけれど、まだちょっとバックアップ用途には高いかなぁという気がする。転送量を気にしなくてもいいバック…

S3に写真をバックアップ

S3の実験を兼ねて、バックアップスクリプトを書いてみました。 http://perl-mongers.org/2008/06/s3.html1Gで10円程度の維持費なので、写真くらいであればバックアップ用途で十分使えるかなという印象です。動画だときついかもしれないですね。# S3を初めて…

写真のバックアップ flickr to s3

flickr to S3にバックアップするスクリプトを真面目に書いてみようかな。まだすこししかS3を試していないけど、実用で使えそうな雰囲気ではある。S3はもう少しコストが下がればいいかなぁ。自宅でRAID5なNASを組んでバックアップするのと、S3にバックアップ…

関数型言語のIdiomやパターン

オブジェクト指向とは!とかに近いレベルの話は関数型言語の文献でもでてくるのだけれど、関数型言語のIdiomやPatternというレベルの話は探してもでてこないなぁ。 どっかにあるのかなぁ。まず、関数型言語の基礎知識をおさえておきたい。

関数型言語の面白さ

ここ数日Erlangを触っていて、少しだけ関数型言語の面白さがわかってきた。というのも、参照透明性と高階関数がプログラムの抽象化に寄与しているというのが、なんとなくわかってきたから。参照透明性があるから副作用無く関数を組み合わせられるというとこ…

Erlangの勉強を開始

Erlang分散システム勉強会に参加したかったのだけれど、都合が悪くて出れず... 分散システムを作るための言語としてのErlangにとても興味があって、Erlangの勉強をしてみることにした。第2回は参加したいなぁ。

MacBookで使っているソフト

Mac

GWに念願のMacにswitchしました!大体使うソフトは落ち着きました。以下のような感じです。 ランチャ QuickSilver タスク切り替え Witch 仮想画面 Spaces キー割当 KeyRemap4MacBook 仮想化 VMWare Fusion ファイラ Path Finder # Windowsのcltcのようなタス…

moose版catでのActionClassの存在意義

少しcat版mooseを触ってみて、catalystもMoose版になるとActionClassはなくていいことに気づいてしまった。「Action + Attribute指定 + Base Controller」は、「MooseのRole + around modifire」でできそう。最初は、今のCatalyst::Controller::XXX + Action…

Controllerなどの機能拡張をMooseのRoleで行う - その1

http://dann.g.hatena.ne.jp/dann/20080605/p5で書いていたものですが、ここに書いていたアイデアの実装を用意してみました。 Controllerのpluginという形で実現するために、moose branchのcatalystにパッチをあてています。setup_actionsの後でRoleをconsum…

CatalystのControllerレベルでの機能拡張を考える - その2

CatalystのControllerの機能拡張をControllerにしてしまうというのが、どうも気持ちがわるいケースがあるなぁと思っていました。具体例で考えると、ValidationはControllerのスコープでするのがいいと思うんですが、ValidatorがControllerになっちゃうのが気…

Controllerでの拡張 -> Roleでの拡張

hide-Kさんからコメントをもらったので少し。hide-Kさんの言われてるのは、Action+Contrllerのベースクラスという話だと理解してます。ActionClassの指定を簡単にするために、Controllerのベースクラスを使うと。Actionを使う事についてはそれがいいと思って…

プラグインに対するスタンスの要約

http://d.hatena.ne.jp/tomyhero/20080605/1212687365 自分が言いたい事は、tomyheroさんが受けた印象とは違うので、一応自分のスタンスを簡潔に書いておきます。tomyheroさんの話は、使う話と作る話が混在してるような気がするので、分けて書くと、自分のス…

Test::Classでヘルパースクリプトを作らずにテストを実行する

ベースクラス package My::TestBase; use strict; use warnings; use base &#39;Test::Class&#39;; INIT { Test::Class->runtests } 1; テストクラス package My::Dog::Test; use base qw/My::TestBase/; use Test::More; sub test_bark : Test(2) { is &#39…