タグ

2009年12月21日のブックマーク (13件)

  • Amon による NoPaste アプリの構築 - tokuhirom's memo

    最近、Amon というフレームワークをつくってます。これは、 余計なことをしない メモリ消費量が少ない 必要以上にモジュールを読まない アプリのコードの記述量を減らす アプリのコードが読みやすくなるようにする web でも cli でもおなじような使い勝手 といったあたりを目標に開発されています。 主に mobirc のウェブまわりのコードがベースになってます。 というわけで、http://gp.ath.cx/nopaste/ でうごいているような NoPaste アプリを Amon でつくってみる。 install Amon まずは Amon をとってきて、インストール。 git clone git://github.com/tokuhirom/Amon.git cd Amon perl Makefile.PL make make test make installdeps make i

    xaicron
    xaicron 2009/12/21
  • FormValidator::LazyWay で検証ルールをまとめよう - JPerl Advent Calendar 2009

    FormValidator::LazyWay で検証ルールをまとめよう - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? どうも、亀仙人になって鼻血ブーしたい vkgtaro です。ご機嫌いかがですか。亀仙人が最初なのかどうか知らないけど、鼻血を吹くというマンガ表現はすごく好きです。おっと、hacker track でした。 ということで僕もハッカーではないけれど、自分がメンテナンスしてるモジュールの中から一つ紹介させてもらいますね。 今日は FormValidator::LazyWay で検証ルールをまとめちゃいます。 フォームの検証 web アプリケーションを作っていると、どのページでも出てくる入力項目ってあると思います。 会員登録時のパスワード項目とログイン時のパスワード項目とユーザ情報変更時のパ

  • おさかなラボ - Plack::Testが凄い!

    Twitter経由でPlack::Testを見た。なにこれ。もうCGIいらないじゃん。 PlackやPSGIを知らない人は先に適当なページでも見て頂きたい。そんなんよりPSGIのエントリ書いてほしいって方はコメント残しておいてください。でももう半年も経つからググればいっぱい見つかるんじゃないかな。俺ほとんどPSGIに首突っ込んでないし。 で、Plack::Testの何がどうすごいかというと、次のようにPSGIアプリケーションのテストができる。テストコードは宮川さんのものに、クエリ部分を付け加えたものだ。 use Plack::Test; use Test::More; use HTTP::Request; use strict; use warnings; my $app = sub { my $env = shift; my $query = { map { split(/=/) } s

  • Kazuho@Cybozu Labs: [ANN] CGI::Application::Emulate::PSGI

    From: Kazuho Oku To: cgiapp-ml Hi, I have just uploaded CGI::Application::Emulate::PSGI onto CPAN. It's a yet-another adapter for running CGI::Application on top of PSGI. The differences from the older one: CGI::App::PSGI is that CGI::App::Emulate::PSGI is more friendly to existing code in two aspects. From the POD, uses CGI.pm instead of CGI::PSGI CGI::Application::PSGI (that uses CGI::PSGI) does

    xaicron
    xaicron 2009/12/21
  • A simple chat server in AnyEvent - unknownplace.org

    Node.js でつくってるやつ をみて同じくらいで書けそうだなと思ったので試しに AnyEvent で書き直してみた。 #!/usr/bin/perl use strict; use warnings; use AnyEvent::Socket; use AnyEvent::Handle; my @clients; tcp_server undef, 7000, sub { my ($fh) = @_ or die $!; my $h = AnyEvent::Handle->new( fh => $fh ); my $leave = sub { my $client = delete $clients[ fileno($fh) ]; for my $c (grep { defined } @clients) { $c->{handle}->push_write("$client->{na

  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
  • へぼへぼCTO日記 - PlackにおけるCSRFとDNS-Rebinding対策

    最近のwebセキュリティ界隈ではCSRFやDNS-Rebindingが話題ですが、Plackでアプリケーションサーバを立ち上げる際にこれらの対策をどのように行うかについてまとめてみました。 まず、CSRF対策ですが、拙作のPlack::Middleware::RefererCheckを使うことにより、RefererのチェックによるCSRF対策が行えます。CSRF対策としては、onetime token方式も存在しますが、個人的にはRefererチェックが導入が楽で好きではあります。Refererを送信しないクライアントを対象にしたサービスを運営される方は別途onetime token方式の対策をおこなってください。 Plack::Middleware::RefererCheckの使い方はこのようになります。(SYNOPSYSからの抜粋) use Plack::Builder; builde

  • みんなで Bing 検索してデジタルアイテムをゲット!

    みんなで Bing 検索してデジタルアイテムをゲット!キャンペーンサイトからみんなでbBing検索し見事にゴールに達成したらWindowsで使えるデジタルアイテム(壁紙・ボイスファイル)をプレゼントキャンペーンサイトのBing検索ボックスより、任意のキーワードで検索していただきます。 キャンペーンサイトで検索いただいた皆様による検索数が増えると、サイト内の検索メーターが伸びていきます。 キャンペーン期間内に検索メーターが50%を超えるとキャンペーン終了日に、サイトよりデジタルアイテムをダウンロードいただけます。さらに100%を達成するとスペシャルVerもプレゼント

    xaicron
    xaicron 2009/12/21
  • [perl] DateTime による日時処理についてのメモ

    ping による疎通は確認できるのに、いざ ssh などで繋ごうとすると No route to host というエラーで即座に接続失敗し途方に暮れる場合、おそらく原因は接続先のホストiptables によりパケットがブロックされ、到達不能を意味する ICMP パケットが返ってきたことによります。 以下のコマンドで INPUT ポリシーをチェックします。上から順にマッチさせていき、マッチし次第ジャンプして終わるので、デフォルト条件の設定されていそうな一番下の行が肝心です。 # /sbin/iptables -L --verbose を追加してブロックしているポリシーのカウンタを見ながらブロック状況を観察できます。 # /sbin/iptables -L --verbose おそらく問題となっているのは INPUT ポリシー最下行で全てのパケットにマッチするこういう行です ... -j

  • YappoLogs: JPerl Advent Calendar hacker track で Module::Setup の事書いたよ

    « goo.gl の API を叩いて goo.gl のショートURLを作る WWW::Shorten::Google ってモジュールかいた | Main | あなたがData::Modelを使う10の理由 » JPerl Advent Calendar hacker track で Module::Setup の事書いたよ ガイアックスさんのご好意で会場提供された hackathone の成果として Module::Setup 0.07 を shipit する事ができたので、当日担当だった Advent Calendar に Module::Setup の紹介と新要素紹介を行いました。 Module::Setup でらくらくモジュール作成 - JPerl Advent Calendar 2009 実に14月ぶりくらいのメジャーリリースで、様々な機能が追加されています。 おもに flavo

    xaicron
    xaicron 2009/12/21
  • Coroを使って並行処理 - JPerl Advent Calendar 2009

    こんにちわ。『層・圏・トポス』読者の会からの刺客、id:hirataraです。 「並行処理」って言葉はなんだか魅力的ですよね! そこで、今日はCoroを使った並行処理を紹介します。なお、Coroはコアモジュールではありませんので、使ってみたい場合にはCPANからインストールして下さい。 スレッドを作る Coroでは、asyncによって新しいスレッドを作ることができます。ただし、asyncでスレッドを作っても、何もしなければ他のスレッドに勝手に処理が移ることはありません。asyncで作成した別のスレッドに制御を移すには、明示的な操作が必要となります。ここではcedeを使って、asyncブロックへ処理を移しましょう。 use strict; use warnings; use Coro; async { print "Another thread\n"; }; print "main thre

    xaicron
    xaicron 2009/12/21
  • 日本MySQLユーザ会(MyNA)会 2009冬 に参加した - @kyanny's blog

    12/18 (金) に開催された日MySQLユーザ会(MyNA)会 2009冬に参加してきました。 まずは感想を。とても楽しかったです!勉強会というほどかたい雰囲気ではなく、かといって単なるパーティーでもない、ちゃんと参加者の興味関心の対象が定まっていて、でも気兼ねなくいろんな話ができる、すごく良い雰囲気の会でした。関係者の皆さんに感謝です。ありがとうございました。あとミーハープログラマとしては、世界レベルの活躍をされている方々を生で見ることができただけでも行った甲斐がありました。次回も是非参加したいと思いました。 以下、なんとなく覚えてることを箇条書きにしてみますが、メモを一切とってなかったのでけっこううろ覚えです。特に発言内容とか、不正確な可能性があります。間違っていたら修正しますのでご指摘ください。 仕事が終わってから向かったので一時間ほど遅れて到着。会場はグリー株式会社のセミナー

    日本MySQLユーザ会(MyNA)会 2009冬 に参加した - @kyanny's blog
    xaicron
    xaicron 2009/12/21
  • Smiley Hackathon#7 に参加した - @kyanny's blog

    12/19 (土) に行われたSmiley Hackathon#7に参加しました。初参加でした(ハッカソンと名の付くものに参加するのも多分初めて?)。関係者の皆様、ありがとうございました。 マイペースで好きなことをやれる雰囲気があり、居心地が良かったです。周りはみんな(細かい内容はわからないけど)コードを書いていて割り込みもないので、集中できる環境がつくれていたと思います。また次回以降も参加してみたいなと思いました(次は事前にテーマを決めて、最後に成果物を発表してみたい)。 僕は「牧さんに DI コンテナについて質問する(あわよくば「モダン Perl 入門」にサインをもらう)」のと「g000001 さんと会う」のが目的で参加したのですが(ハッカソンなのに・・・)、どちらもかなってよかったです。質問した内容は、要するに「こういう依存関係があるクラス群があって、それぞれインスタンスを作るときに

    Smiley Hackathon#7 に参加した - @kyanny's blog
    xaicron
    xaicron 2009/12/21