Twitpackerというサービスを作りました

ご無沙汰しております。tomyheroです。
ツイッターユーザをグループ化し、一括フォローしたり、グルーブの情報をウィキペディア風に書ける感じのサービスを作ってみました。
ログインして使ってみて下さいね。タブン雰囲気でわかると思います。

http://twitpacker.lazy-people.org

こういうの作ったらどうかなパッケージ

苦労したところ

いつも通り、システム自体は数時間でできたのですが、デザインを当てたり、文言を考えたりするのにだいぶ時間をついやしました。何が言いたいかというと、デザインとか、文言を考えたい方がいらっしゃれば何か一緒に作ろうぜってことですね。ロゴとかは、vkgtaroさんに作ってもらいました。いいでしょ?

プログラムで苦労したところ

modperlで動いてるのですが、backend側は location で指定していて、Catalystで作ってるんですが、uri_forつかってたんだけど、うまく動かないんですよね。まぁ前から知ってて、使ってなかったんですが、vkgtaroさんが使ってるのを見て使ってみたら、予定通り困りました。 で、とりあえず動く実装したんだけど、うんこな修正なので、もっと良い方法があれば、教えていただければと。(今の僕の中では、MyApp::Utils::uri_for() みたいなのを実装して、そっち使うようにするがいいかなぁとかです。)

conf
<Perl>
$ENV{TWITPACKER_HOME} = '/usr/local/apache/twitpacker.lazy-people.org/';
BEGIN {
        use lib '/usr/local/apache/twitpacker.lazy-people.org/lib';
}
</Perl>
PerlModule Twitpacker::Web

<Location /twitpacker>
    SetHandler modperl
    PerlResponseHandler Twitpacker::Web
</Location>
Twitpacker::Web

無理矢理置換したw

# XXX
around 'uri_for' => sub {
  my($orig,$self,@args) = @_;

  my $ret =$self->$orig( @args );
  $ret =~ s#http://twitpacker.lazy-people.org/twitpacker/#http://twitpacker.lazy-people.org/#;
  $ret = URI->new($ret);
 return $ret;
};
__PACKAGE__->request_class('Twitpacker::Request');
Twitpacker::Request

こっちも!

package Twitpacker::Request;
use Moose;
extends 'Catalyst::Request';

# XXX
around 'uri' => sub {
  my($orig,$self,@args) = @_;
  my $ret =$self->$orig( @args );
  $ret =~ s#http://twitpacker.lazy-people.org/twitpacker/#http://twitpacker.lazy-people.org/#;
  $ret = URI->new($ret);
 return $ret;
};

__PACKAGE__->meta->make_immutable;
1;

まとめると

  • パッケージ色々つくってみて!失敗してもやり直せるよ!
  • 開発/運用/雑談などしたい方は irc.lazy-people.org#twitpacker に気楽にJOIN!
  • デザイン / 文言 / 宣伝 などをやりたけど(仕事じゃなくて、趣味サービスでね)、プログラマーがいないとかな人はいないものか。
  • ソースはここだよ -> http://svn.lazy-people.org/project/twitpacker/
  • まだ適当なので、もうちょっとちゃんと作りたいと思ってます
  • tadateto.netの方のblogの方が詳しいのでそっちを見るといいです。