タグ

2014年3月5日のブックマーク (5件)

  • Rspec で rake タスクをテストする用の gem を作った - おもしろwebサービス開発日記

    しばらく前に表題の gem を作りました。 willnet/rake_shared_context 中身はただの shared_context です。これは僕のオリジナルな gem ではなくて、thoughtbot 社のブログに書かれた shared_context のコードをほぼそのまま gem にした感じです。毎回 rake タスクをテストするためにブログからコピペしてくるのが面倒になったので作りました。 これを使うと下記のような rake タスクがあったときに # lib/tasks/reports.rake namespace :reports do desc "Generate report" task :generate => :environment do ReportGenerator.generate end end 下記のような感じで rake タスクのテストを書くこと

    Rspec で rake タスクをテストする用の gem を作った - おもしろwebサービス開発日記
  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

    正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/

  • RubyKaigi 2014, 18-20 september

    RubyKaigi is the authoritative international conference on the Ruby programming language, attracting Ruby committers and Ruby programmers from around the world to Japan, the birthplace of Ruby. Held nearly every year since 2006, RubyKaigi is a truly international event. Last year's 3-day event -- the first to include English as an official language -- welcomed over 1500 participants. The eighth in

    RubyKaigi 2014, 18-20 september
  • マスタリングNginx

    TOPICS 発行年月日 2013年10月 PRINT LENGTH 244 ISBN 978-4-87311-645-7 原書 Mastering Nginx FORMAT PDF EPUB NginxはC10K問題を解決するために開発された、高速かつ高性能なオープンソースのWebサーバです。Apacheに代わるWebサーバとして高負荷サイトを中心に急速にシェアを伸ばしてきています。Nginxの設定情報はインターネットを探せばある程度見つかりますが、断片的な情報が多く、全体像を把握することは簡単ではありません。書はNginxの全体像を機能ごとに解説した徹底ガイドです。中級以上のシステムアドミニストレータおよびシステムエンジニアを対象に、豊富な設定例、ベストプラクティス、ディレクティブのリファレンス、トラブルシューティングを示しながらNginxの細部に迫ります。Nginxのさまざまな機能

    マスタリングNginx
  • Web2.0の先にあるC10K問題 ― @IT

    個々のクライアントがサーバに要求する処理量は小さなものでハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする――。これが最近Web開発者の間で話題となっている「C10K問題」(クライアント1万台問題)だ。 プロセス番号が足りなくなる パンクするのは例えばプロセス番号だ。 Ajaxの実装として最近注目されている技術に“Comet”(コメット)と呼ばれるものがある。HTTPのセッションをあえて切断せずに、サーバとクライアント間でつなぎっぱなしにするテクニックだ。Cometを使えばクライアントからのリクエストに応えるだけでなく、サーバ側からも不定期に情報を送り出すことができる。例えば、Web上でチャットサービスを実装するには、通常はクライアント側からサーバに一定間隔でポーリングすることで、ほかのユーザーの発言分をサーバから取得して表示するが、Cometの