タグ

rackに関するtsuwatchのブックマーク (12)

  • Examining The Internals Of The Rails Request/Response Cycle

    Come with me on a journey through the internals of Rails, as we trace a request from the web server to the controller action method, and follow the response back again. This will give you a glimpse of how Rails works under the hood, hopefully exposing some of the “magic” of the framework. We will also get to see some of the design/architectural decisions at the core of Rails. This analysis was con

  • Rhebok, High Performance Rack Handler / Rubykaigi 2015

    This document discusses Rhebok, a high performance Rack handler written in Ruby. Rhebok uses a prefork architecture for concurrency and achieves 1.5-2x better performance than Unicorn. It implements efficient network I/O using techniques like IO timeouts, TCP_NODELAY, and writev(). Rhebok also uses the ultra-fast PicoHTTPParser for HTTP request parsing. The document provides an overview of Rhebok,

    Rhebok, High Performance Rack Handler / Rubykaigi 2015
  • ISUCON4 予選 参考解答(Redis版) : ISUCON公式Blog

    ISUCON4 予選お疲れさまでした! 予選問題の Ruby 初期実装などを担当した @sora_h です。 予選はたのしんでいただけましたでしょうか? 記事では、ざっくりとそこそこのスコアを出す解き方を紹介しようと思います。 ※@rosylillyによる、高得点を出すことを重点に置いたピーキーな解答例はこちらです 前提 一人でやる 一応8時間経過時点でスコアをとる ただし出題者であるので問題の把握などの時間は短縮されていることに注意。 Ruby の実装を利用する ある程度、現実味のあるチューニングが主 ベンチマーカーの実装を利用したりしない また、この記事で出来た実装は GitHub に掲載しています: https://github.com/sorah/isucon4-qualifier-sorah 初期スコア とりあえず立ち上げて動かした時のスコアは success:6030 fai

    ISUCON4 予選 参考解答(Redis版) : ISUCON公式Blog
  • Rackのuseとrunを紐解く - ほげほげ日記

    require "rack" # rack middleware class HogeMidWare def initialize(app) puts "init hoge" @app = app end def call(env) puts "hoge" @app.call(env) end end # rack middleware class FooMidWare def initialize(app) puts "init foo" @app = app end def call(env) puts "foo" @app.call(env) end end # rack application class HomApp def call(env) puts "hom" [200, {"Content-Type" => "text/plain"}, ["hom"]] end end

    Rackのuseとrunを紐解く - ほげほげ日記
  • RailsでAPIをつくるときのエラー処理 - Qiita

    例外を利用して実装すると便利な場合が多い この投稿では、HTTP経由でJSONを返すようなWeb APIRailsを利用して実装するとき、エラーレスポンスを返す場合の処理をどう実装するとやりやすいのか、というニッチな話題に触れる。APIでエラーを返したいとき、即ち400以上のステータスコードと共にレスポンスを返したいような場合、どう実装するのが良いか。もしリクエストの処理中にエラーが検出された場合、それ以降の処理を行わずに直ちに中断してエラーレスポンスを返したいという場合が多いため、例外を利用して実装すると便利な場合が多い。 例外を利用しない方が良い場合もある 1つのリクエストに複数の問題が含まれている場合、先に見つけた問題だけを報告するようなエラーレスポンスを返すのか、それとも問題を抱えながらも進めるところまで処理を進めて報告可能な情報を全て含むようなエラーレスポンスを返すのか、という

    RailsでAPIをつくるときのエラー処理 - Qiita
  • Rack解説 - Rackの構造とRack DSL - Qiita

    Rackとは RackはRubyによるWebアプリケーション開発のHTTP送受信処理を担当するモジュール(gem)で、Ruby on Railsを始めとする多くのWebフレームワークの一番下のレベルで利用されています。 稿ではRackの基的な部分を中心に説明します。 簡単なRackアプリケーション まず基を理解するため説明用の簡単なアプリケーションを作成します。 最初にrack gemのインストールが必要ですが、Ruby on Railsをインストールしている場合はすでに必須モジュールとして入っています。単独でインストールする場合は次を参考にして下さい。 次にconfig.ruという名前の小さなファイルを作ります。これはRackのサーバ起動コマンドrackupの設定ファイルで、中身はRubyで記述します。 class ShowEnv def call(env) [ 200, # ステ

    Rack解説 - Rackの構造とRack DSL - Qiita
  • Rack::Multiplexer - r7kamura blog

    Rack::Multiplexerという、複数のRackを束ねるものをつくった。 Plack寄せ この前Perl界隈の人達と鍋を囲む機会があって、 !!1;の話、livedoor BlogのPlack化の話、ISUCONの話、 各社古いアプリ抱えていて辛いね苦しいね頑張ろうね若者に1日で書き換えさせようといった話をして、 結局、何となくこの界隈は全体的に「Plack寄せ」が進んでいるねという話に落ち着いた。 Rack寄せ 一方Ruby界隈だと比較的皆Rackに寄っている傾向にはあると思うけど、 もっと寄せてみると面白いんじゃないかと思って、Rack::Multiplexerをつくった。既にありそう。 Rack::Multiplexerは、所謂WebアプリのRouter(=Dispatcher)の処理を行うための実装で、 メソッドやパスの規則に従って受け取ったリクエストを別のRack app

    Rack::Multiplexer - r7kamura blog
  • 橋本商会 » SinatraっぽいWAFを作る、46行で

    “Tamago”というWeb Application Frameworkを作った。 https://github.com/shokai/tamagoに置いてある。 昨日学校に行く前にメシをいながらHerokuやSqaleやらPaaSについて調べていたら、SinatraやRailsではなくRackを直接使ってPaaSで動かしている人たちが何人かいた。 sqale使ってみた – komagataとか。 で、電車の中でふとWAFを作ってみたらどうかと思って作ってみた。 最終的に学校に着く頃にこんな風に書けるのができてた。 GETやらPOSTで指定したパスへのアクセスを受け取って、Hamlのテンプレートが使えたりするDSLが使える。 get '/' do haml :index end post '/' do Time.now.to_s end get '/env' do ENV.keys.so

    橋本商会 » SinatraっぽいWAFを作る、46行で
  • 橋本商会 » Rackミドルウェアの作り方を勉強した

    今スイスにいる。 行きの飛行機の中での勉強用にこのページを保存しておいて、Rack middlewareの作り方を学んだ。 第25回 Rackとは何か(3)ミドルウェアのすすめ:Ruby Freaks Lounge|gihyo.jp … 技術評論社 というのもSinatra::RocketIOをRack::RocketIOにしたいからなんだけど、Rack Hijack APIがよくわからない。(hijackについてはそのうち書く) ソースコードはgithubに全部置いてある。 github.com/shokai/rack-plugin-study Sinatra/Rails/Padrino等のRuby製webアプリケーションフレームワークと、 webrick/thin/mongrel/unicorn等などのRuby製webサーバーを接続するしくみがRackです。 Webアプリフレームワーク

    橋本商会 » Rackミドルウェアの作り方を勉強した
  • Rackについて調べてみた - ほげほげ(仮)

    RubyRailsもド素人ですが、よくRackという言葉を聞くのでちゃんと調べてみました。 下記の記事を読みながら簡単にまとめてみました。あとは実際にコードを書いて確認しながらやってみました。ちょっと記事が古いせいか一部うまく動かないコードは修正してみました。 第23回 Rackとは何か(1)Rackの生まれた背景:Ruby Freaks Lounge|gihyo.jp … 技術評論社 第24回 Rackとは何か(2)Rackの使い方:Ruby Freaks Lounge|gihyo.jp … 技術評論社 第25回 Rackとは何か(3)ミドルウェアのすすめ:Ruby Freaks Lounge|gihyo.jp … 技術評論社 試した時の環境 Mac OS X Mountain Lion Ruby 1.9.3 rack 1.5.2 アプリケーションフレームワーク Sinatra Ram

    Rackについて調べてみた - ほげほげ(仮)
  • ちょっとわかるrack

    初心者向けrackの簡単な紹介 ・rackとは何か ・rackアプリの作り方 ・rack middlewareの作り方・使い方 ※2012/5/14の会社内LTで使用した資料

    ちょっとわかるrack
  • 第23回 Rackとは何か(1)Rackの生まれた背景 | gihyo.jp

    はじめに SinatraやRamazeといったRubyのWebアプケーションフレームワークに興味をお持ちの方であれば、Rackという名前をしばしば目にしているかもしれません。どうやら様々なフレームワークに使われているらしいのだけど、そいつが一体なんなのかよくわからない、そんなあなたのために今日はそのRackをご紹介したいと思います。 様々なフレームワーク、様々なアプリケーションサーバ しばらく前なら、Ruby on Railsブームの真っ只中、Rubyと言えばRails、Webアプリケーションを作るならRails、といったイメージを持たれていた方も多かったと思います。実際にWebアプリケーションを作ったり、Rubyに触れたりしたきっかけがRailsだったという方も多いでしょう。 しかし最近は、RubyのWebアプケーションフレームワークと一口に言っても、非常に簡単にアプリケーションが書けて

    第23回 Rackとは何か(1)Rackの生まれた背景 | gihyo.jp
  • 1