タグ

ブックマーク / punitan.hatenadiary.org (10)

  • LWP::UserAgent と LWP::Protocol::PSGI でテストを書くと楽できる話 - punitan (a.k.a. punytan) のメモ

    Plack::Test + HTTP::Request::Common 世の中には Plack::Test + HTTP::Request::Common という方法もあるが、この場合ブラウザを模したようなテストを書くと意外にも破綻しやすい。とりわけセッション周りの挙動が必須になると大変な手間になる。 LWP::UserAgent + LWP::Protocol::PSGI 最近は LWP::UserAgent + LWP::Protocol::PSGI で楽をするような方法で書くようにしている。ユーザー寄りのテスト(ログイン後の処理やCSRF対策用のトークンが必須等)をわりと楽に書ける点がメリット。 subtest と scope のメリットも享受できる /zento+/ 方式が見通し良く出来そう。*1 サンプル Some::Middleware::CSRFDefenderのテストを書く

    LWP::UserAgent と LWP::Protocol::PSGI でテストを書くと楽できる話 - punitan (a.k.a. punytan) のメモ
  • App::ExtractUsed というものを書いている話 - punitan (a.k.a. punytan) のメモ

    CPAN形式で開発していると避けて通れないのが依存モジュールの炙り出しと Makefile.PL へ requires を書き出す作業。これは意外と面倒なのでもっと怠惰に楽をしたいところ。 たとえモジュールが要求するperlのバージョンを決めていたとしても「どれがコアモジュールでどれが違うのか」「parent.pm は 5.10.1 からコアモジュールになった」など、漏れなく抽出しないと新しい環境でインストールする時に悲しいことになってしまう。 こんな面倒事はコマンド叩くだけで済ませてしまいたい、というわけで GitHub - punytan/p5-App-ExtractUsed をでっち上げた。 使い方 extractused コマンドがインストールされるので、基的にはこれを叩くだけで lib/ と t/ を走査して requires, test_requires が出力される感じ。

    App::ExtractUsed というものを書いている話 - punitan (a.k.a. punytan) のメモ
  • YAPC::Asia 2011 に行ってきた - punitan (a.k.a. punytan) のメモ

    YAPC楽しい 今年は芝生で餃子べられた! トークが素晴らしいのはもちろんのこと、YAPCくらい大きなイベントになると普段会えない遠方の人たちと会えたり、面識のない人でも話ができるのでとてもいいイベントですね!(面識がないと言ってもTwitterのscreen nameで誰だかわかるので初対面だけど初対面じゃない、みたいな不思議な感じで話ができてよかった) やや後悔 ただ、今年は何か発表したいな、なんて思いつつ過ごしていたものの大きなネタもなく発表を見送ってしまった点はsugyanさんの心境に近いものが…。 やって良かったと思えたこと 今年はアプリが出なさそうだったので、モバイル向けのタイムテーブルを作った(YAPC::Asia 2011 用タイムテーブル(モバイル用)作った - punitan (a.k.a. punytan) のメモ)ところ、公式アカウント@yapcasiaをはじめ、

    YAPC::Asia 2011 に行ってきた - punitan (a.k.a. punytan) のメモ
  • pjax こそが pushState + Ajax の本命 - punitan (a.k.a. punytan) のメモ

    pjaxの前にpushStateとは AjaxとjQueryの説明は不要として、pushStateとはなんぞや。 pushStateを使ってブラウザの履歴に対する操作をし、HTMLの一部のみを書き換える動作でもブラウザの戻る/進む機能を実現できる方法のひとつ。Ajaxなページを再現し、かつURLを見慣れた方法で自然にpermalinkを表現できる。 有名なところではGitHubで使われてるアレ。 hash fragment (/#!/) ブラウザの履歴を機能させるため、URL の fragment (#) を使ってAjaxなページを実現する方法。一時期もてはやされた感があるが、さらなる「#!」URL批判 - karasuyamatenguの日記 など合理的な反論があり、これから導入するのはためらわれるところ。 有名なところではTwitterで使われているあの厄介者。 pjaxとは pjax

    pjax こそが pushState + Ajax の本命 - punitan (a.k.a. punytan) のメモ
  • daemontools メモ - punitan (a.k.a. punytan) のメモ

    daemontools はめったに設定しないので毎回忘れる!とくにmultilogとか編集中にはダウンさせておくとか。 一連の流れをまとめたメモ。 インストール $ sudo apt-get install daemontools-run $ cd $ mkdir daemontools foo ディレクトリをつくり、スティッキービットをたてる $ cd ~/daemontools $ mkdir foo $ mkdir foo/log $ chmod +t foo シンボリックリンクを /etc/service 以下につくり、自動で supervise が起動するのでダウンさせておく $ cd /etc/service $ sudo ln -s /home/hoge/daemontools/foo foo $ sudo svc -d /etc/service/foo $ sudo svc

    daemontools メモ - punitan (a.k.a. punytan) のメモ
  • perlbrew の環境で daemontools を使うためのメモ - punitan (a.k.a. punytan) のメモ

    既出かもしれないけれどもメモ。 perlbrew で構築した環境で /usr/bin/perl と ~/perl5 のバージョンが違う場合 run スクリプトで環境変数を export してあげないと perlbrew の利点を活かしきれない。ちなみに bash を中心に扱っているので、自分の環境に合わせて読み替えてください。 run にどう書くか perlbrew init したときに ~/.bashrc に追記した source の行があるはずなのでそれを辿って export を run にコピペしてやればよい。 手元の環境では $ cat ./bashrc ..snip... if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi source /home/puny/perl5/perlbrew/etc/bashr

    perlbrew の環境で daemontools を使うためのメモ - punitan (a.k.a. punytan) のメモ
  • YAPC::Asia 2010 スライドまとめ - punitanのメモ

    見つかったスライドまとめ(敬称略) 観測範囲狭すぎ & twitterで流れて思ったほどみつからないのでヘルプミー RSS フィードだけでもなんでもいいのでまとめて reblog する仕組みがあってもよさげ。 Youtube yapcasia - YouTube タイムテーブル YAPC::Asia 2010 前夜祭 : ATND YAPC::Asia Tokyo 2010 Timetable YAPC::Asia 2010 前夜祭 イントロダクション yusukebe 10min WAF作者+利用者の集い kamui – nekokak 10min Ark – typester ( 代打 sugyan ) 10min YAPC::Asia 2010 を終えて - すぎゃーんメモ Amon – tokuhirom 10min Mojo – charsbar 10min Polocky –

    YAPC::Asia 2010 スライドまとめ - punitanのメモ
  • PerlでTwitterのOAuthを使うサンプル - punitan (a.k.a. punytan) のメモ

    自分用メモです。 いろいろなサイトを参考にしましたが、完全なコードが見つからなかったのでとりあえずリンクは省略します。 TwitterのOAuthClientを下記URLから設定 http://twitter.com/oauth_clients consumer_keyとconsumer_secretを取得する。 おおまかな流れ index.html からリンクで sample.pl にアクセスし、TwitterのOAuth許可用のページへリダイレクト。 OAuth許可用のページで許否を設定後、sample.pl で設定した callback_url (ここ重要)へリダイレクトされる(この場合はcallback.pl)。 callback.pl で oauth_token と oauth_verifier を取得し、updateを試みる。 成功であれば、ツイート先へ、失敗であればTwitt

    PerlでTwitterのOAuthを使うサンプル - punitan (a.k.a. punytan) のメモ
  • perlcasual #02 でLTしてきました - punitan (a.k.a. punytan) のメモ

    ,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ|          あ…ありのまま 今 起こった事を話すぜ! |i i|    }! }} //| |l、{   j} /,,ィ//|       『 dankogai さんと makamaka さんの前で i|:!ヾ、_ノ/ u {:}//ヘ        Encode モジュールと絡めて JSON モジュールの LT をした 』 |リ u' }  ,ノ _,!V,ハ | /´fト、_{ル{,ィ'eラ , タ人        な… 何を言ってるのか わからねーと思うが /'   ヾ|宀| {´,)⌒`/ |<ヽトiゝ        おれも何をしたのかわからなかった… ,゙  / )ヽ iLレ  u' | | ヾlトハ〉 |/_/  ハ !ニ⊇ '/:}  V:::::ヽ        頭がどうにかなりそうだった… //

  • TatsumakiとTwiggy使ってみた - punitan (a.k.a. punytan) のメモ

    Tatsumakiのeg/chatをほとんどそのまま流用しました。 それぞれの概要 Tatsumaki Tatsumaki - Non-blocking web framework based on Plack and AnyEvent Twiggy Twiggy - AnyEvent HTTP server for PSGI (like Thin) ニコ生アラートサーバ ニコニコ生放送というサービスを使って開始された番組の情報がXMLSocketの形式で送られるもの。 とりあえずデモ http://live.linknode.net/stream 仕組み live.html live.psgi nicoalert.pl nicoalert.plでアラートサーバに接続し、取得したものをGETパラメータでサーバに送る。 live.psgiでlong/pollの管理と新規番組の情報を扱う。 l

    TatsumakiとTwiggy使ってみた - punitan (a.k.a. punytan) のメモ
  • 1