Fork me on GitHub

2010/03/02

はてな
タイトルは釣りです。
perlでは一般的にperldocを使って調べ物をする事が殆どですが
あれー、あのモジュールなんだっけ...IO:: 忘れた。
とか
IO:: の下辺りに似たモジュールあったよなー
なんて事が結構あったりするのですが(私だけかも)、今日もSys::SendfileのAuthorから「チミが送ってくれたpatchに対して僕が書いたtestがWindowsで通らないんだけど、何か分かるかい?」とメールが来てて
それ、以前ワテがp5pに送ったpatchの件ちゃいますやろか、確かIO:: ...えーっと...
ってなってしまった訳です。
なんか良くある事なので解決出来ないかなぁと思っていた所、見つけてしまいました。perldoc-completeを。
ap's perldoc-complete at master - GitHub

A bash completion helper for perldoc

http://github.com/ap/perldoc-complete
パスの通った所に perldoc-complete を置いて
complete -C perldoc-complete -o nospace -o default perldoc
を .bashrc に書いておくと...
# perldoc IO:: ここでタブ押す
AIO            File           Pipe           Socket         Wrap
AtomicFile     Handle         Poll           Socket::       WrapTie
Capture        Handle::       Pty            String         Zlib
Capture::      InnerFile      Scalar         Stringy        
CaptureOutput  Lambda         ScalarArray    Tty            
Compress::     Lambda::       Seekable       Tty::          
Dir            Lines          Select         Uncompress::  
# perldoc IO::
きたーーー!
常用確定しました。

2010/01/21

はてな
Perl Hacker面白いよ。:)
変な人いるし、堅い人もいる。ネタに一生懸命になれる人達がいっぱいいるし、意味なく1行に拘る人もいる。


私はPerlでスーパークリエイター奥一穂(kazuho)さんと会えた。
kazuho-sign
kazuhoさんにお好み焼き屋で箸袋の裏に貰ったサイン!
今も大事に持ってるお!
はせがわさんにも会えた。あ、ちゃうちゃう。はせがわさんはwassrだ。

次はどのHackerに会えるかな。
Posted at 00:01 in ソフトウェア::lang::perl | WriteBacks (0)
Tagged as: perl
Bookmarks: このエントリーのtweets add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip | add to buzzurl add to buzzurl | add to fc2bookmark add to fc2bookmark | add to Yahoo Bookmark add to Yahoo Bookmark | add to Pookmark add to Pookmark

2009/12/10

はてな
Tatsumakiって面白そうとは思ってたけど、触った事なかったので、勉強してみた。
なるほど面白そう。と思ったのとPSGIでも動かせるんだーと感動しました。今日は勉強がてら、以前紹介した事もあるDiggのDUI Streamと混ぜて遊んでみた。
Digg the Blog » Blog Archive » DUI.Stream and MXHR

We call this technique MXHR (short for Multipart XMLHttpRequests), and we wrote an addition to our Digg User Interface library called DUI.Stream to implement it. Specifically, DUI.Stream opens and reads multipart HTTP responses piece-by-piece through an XHR, passing each chunk to a JavaScript handler as it loads.

http://blog.digg.com/?p=621
miyagawa's Tatsumaki at master - GitHub

Plack-based nonblocking Web framework for IO-bound delayed response, server push (streaming) and long-poll comet

http://github.com/miyagawa/tatsumaki
ルートとなるHTMLからjavascriptでストリームへのエンドポイントへリクエストさせ、そこからmultipart/mixedで送出されるgif画像(静止画)を断続的に送出し、DUI Streamでパースしながら1個のIMGタグを高速に切り替えます。
名前をTatsumakiSenpukyakuと名付けました。
mattn's TatsumakiSenpukyaku at master - GitHub

竜巻旋風脚

http://github.com/mattn/TatsumakiSenpukyaku
実行するとポート9999でサーバが起動し、「せーのー」と勢いを付けたあとに、高速な「竜巻旋風脚」が始まります。
竜巻旋風脚
javascriptからタイマでリクエストしているのではなく、サーバから断続的に、切断せずに送出されています。上記DUIのリンク先にある画像を使ったデモでも分かる通り、ストリーミングによりパラパラと表示されていた画像コンテンツがまるで動画の様に見せる事が出来ます。
ネタっぽい作りですが、へーこんな事出来るんだー...てな感じで動かしてみて下さい。

2009/10/30

はてな
昨日IRCでsecurity guyの人と話してて、twitterに新しく導入された機能「list」には少し不満があるという話をしてた。
ざっと上げると
  • 個人単位のlistであり、追加するにはそのlistの持ち主でしか追加出来ない。
  • UIが痛い。listについての画面遷移、追加削除がやりにくい。
  • 他人のlistを自分のlistにimportしたいが出来ない。
こんな感じ。まだまだbetaだからこれから良くなるのかもしれないけど、さすがにimportは欲しいよね...って事で3分程度で作ってみた。
APIは昨日調べてなんとなく分かってたので、だいぶ楽に作れた。
#!/usr/bin/env perl
use strict;
use warnings;
use LWP::UserAgent;
use JSON;
use Config::Pit;

# のび太の物は俺の物
my $copy_from = $ARGV[0] || 'hasegawayosuke/javascript';
# 俺の物は俺の物
my $copy_to = $ARGV[1] || 'mattn_jp/javascripter';

my $config = pit_get("twitter.com", requires => {
    username => 'username in twitetr.com',
    password => 'password in twitetr.com',
});

my $ua = new LWP::UserAgent;
$ua->env_proxy;
$ua->credentials(
    "twitter.com:80", "Twitter API",
    $config->{username} => $config->{password}
);
my $json = from_json($ua->get("http://twitter.com/$copy_from/members.json")->decoded_content);

for (@{$json->{users}}) {
    $ua->post("http://twitter.com/$copy_to/members.json", {id => $_->{id}});
}
使い方は
# perl copy-to-mylist-from-others.pl hasegawayosuke/javascript mattn_jp/javascripter
こんな感じ。実行するときにはジャイアンのテーマを脳内再生しながら実行して下さい。