Prism
というのを教えてもらった。
昔、
unknownplace.org - 2006/09/15 - bubbles
これずっと欲しかったアプリだわぁ。Geckoベースなやつないかな。
とかいってたけど、まさにこれ。結構いいんじゃないコレ。
元気玉メールをIMで通知する
弊社には元気玉という仕組みがあって、詳しくは代表のブログを参照、これに誰よりも速く返信するために元気玉という文字がメールの件名に含まれていた場合即座にIMに通知するような仕組みを作った。
うちで使用しているメール配信ソフトウェアは postfix+maildrop で、IMへの通知には im.kayac.com のAPIを使用。
非常に簡単にできた。まずmaildropのフィルタ ~/.mailfilter
:
DECODED_SUBJECT = ""
if ( /^Subject:\s*(.*)$/ )
{
MATCH1 = escape($MATCH1)
DECODED_SUBJECT = `echo $MATCH1 |/home/typester/bin/subjectdecoder.pl`
}
if ( $DECODED_SUBJECT =~ /元気玉/ )
{
cc "|/home/typester/bin/mail2im.pl"
}
二つのスクリプトを読んでます。subjectdecoder は単にMIMEエンコードされてる件名をutf-8にして戻してあげるだけのもので、mail2im.plが実際にIMメッセージを送るスクリプト。以下がその中身。
subjectdecoder.pl:
#!/usr/bin/env perl
use strict;
use warnings;
use Encode;
my $subject = do { local $/; <STDIN> };
$subject =~ s/\\(.)/$1/gs;
print encode('utf-8', decode('MIME-Header', $subject));
mail2im.pl:
#!/usr/bin/env perl
use strict;
use warnings;
my $mail = do { local $/; <STDIN> };
use Encode;
use Email::MIME;
use Mail::Address;
my $msg = Email::MIME->new($mail);
my $subject = encode('utf-8', $msg->header('Subject'));
my ($from) = Mail::Address->parse( $msg->header('From') );
exit unless $subject && $from;
use LWP::UserAgent;
use HTTP::Request::Common;
my $res = LWP::UserAgent->new->request(
POST "http://im.kayac.com/api/post/typester",
[ message => "[E-Mail] $subject (@{[$from->address]})" ]
);
件名デコードしないとmaildropで日本語の件名のマッチングができないのが面倒だけど(これってなんとかならんのかな)、それでも簡単にできた! im.kayac.com++ (自画自賛
Module::Install
Clouder::Blogger: Module::Installを使ったプロジェクトのincディレクトリについて
CodeReposとかみると、あんまりModule::Installを使ってる人がいないので、あんまりModule::Installって使われてないのかな?
えーー。
$ grep 'inc::Module::Install' lang/perl/**/Makefile.PL
lang/perl/Gopper/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/JSONRPC-Transport-TCP/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/KGopherd/Makefile.PL:use inc::Module::Install;
lang/perl/Mozilla-Screenshot/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/Mozilla-UserPreferences/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/POE-Component-Server-JSONRPC/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/PlPy/trunk/PlPy/Makefile.PL:use inc::Module::Install;
lang/perl/Senna-Storage/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/Text-Nyarlax/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/URI-KeywordExtract/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/WWW-LivedoorPICS/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/WWW-Various-Scrapers/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/WebService-Coneco/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/WebService-Veoh/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/WebService-YouTube/tags/WebService-YouTube-1.0.2/Makefile.PL:use inc::Module::Install;
lang/perl/WebService-YouTube/tags/WebService-YouTube-v1.0.1/Makefile.PL:use inc::Module::Install;
lang/perl/WebService-YouTube/trunk/Makefile.PL:use inc::Module::Install;
けっこうあるじゃん!
Module::Starterはあんまりつかってるひといないかもね。
miyagawaさんのpmsetupがシンプルでいい感じです。
emacsclient で開いたバッファを閉じるときに
Buffer `svk-commitvP9pW.tmp' still has clients; kill it? (yes or no)
などといわれるのをなくしたいのだが、どうすればいいのか! 強制yesでいいんだけど。
それとも C-x #
的なもので保存せずに閉じるものあるのかな。
Shibuya.pm tech talk #8
Flash with perlとかいうタイトルでLTしてきました。with perl の部分ありませんでしたがw
スライドはここにおいておきます。
まとめでいうのわすれたのだけど、ここで紹介したファイルアップロード、クロスドメイン通信、XMLSocketなんかを全部jsから使えるってのがアツイです。みんなやってみて!
あと、PSPでスライド操作するやつもcodereposに上げました。
http://coderepos.org/share/browser/lang/perl/misc/typester-shibuyapm-8-psp
時間なかったのでPSP側の画面真っ白なんだけど、時間表示したり、IRCチャット表示したりとか、作りこんだら楽しそうかも。
danさんのところで
404 Blog Not Found:プログラムの楽しさを子供に教えるべきか?
世の中には、「この時期に習っておかないと一生自分のものにならない」というものもあれば、「いつはじめても、モノにできる」というものもある。「流暢な外国語」は前者だが、プログラミングは明らかに後者。
をとかいうのを読んで、あー、ぼくも小さいころから楽器を習わされていて、たしかに大人になってからはじめたら到底今のレベルにはたどり着けないなーとおもった。親に感謝しなければ。
しかしもう5年くらいまったくひいていない。だめすぎる。。><
つわけで弦を買った。
明日からちゃんと毎日ひく所存です。
CCFF7
週末会社に送られてきているのを発見して、ちょいと拝借してやってみてたのだけど、意外と面白くて連休でクリアしてしまった。
アクションなのだけど難易度的にはすごく簡単で、たいていの敵が初回で、もしくは1,2回やりなおせばクリアできる。約12時間くらいで終わってしまった。ミッションはまったくやってないけど。
強くてニューゲーム的なことができるみたいだけど、ストーリー悲しすぎるのでもう一度やるきにはならない。。。
ほんとうにかなしいなぁ。書いてたら思い出してきた。><
FF7好きだった人はやるべきゲームかと。
コミュニケーション能力
意外と思う人もいるかもしれないけど、技術者には重要だよね。特にオープンソースなところでは。
codereposもそうだけど。意見とか、わからないこととか、ひとりでうだうだいってないでIRCにきて他のコミッターと話をすればいい。
そゆことがCatalystやDBICのコミュニティでできないのが悔しい。言葉の壁が思ったより厚くていまだに超えられない。IRCだとなにいってるかわかってもこっちのいいたいことがうまくいえない。考えてる間に話し進むし。ムキィ。
会社名、所属明らかにしてブログ書くこと
個人的なブログで、個人的な意見をかいているとしても、好き勝手書いてもいいとは思えないよ。
これって、会社を自分の会社だって思えているかどうかだと思うのだけど。大企業になるとそうは思えなくなるのかもしれないなぁ。