You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Do you have 5 minutes? Do you want to decrease the “over the wire” size of your Rails app by 80%? Sure you do! I added Rack::Deflate to CodeTriage.com, the best way to get started in Open Source, and went from a page size of 85,523 bytes to 15,568 bytes (over the wire). You can verify with this retro looking web based compression tool. First up, what does Rack Deflate do and why do we want to use
Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
内容は Rhebokの概要 Hot Deployの仕組み ベンチマーク rackの基本 高速なRackサーバの作り方とRhebokで使っている技術 prefork_engine による prefork io timeout の戦略 PicoHTTPParser による高速なHTTP処理 TCPの最適化 となります。わりと盛りだくさんに喋りました。 Rhebokはもちろん、アーキテクチャや使っている技術にも興味をもって貰えたらうれしいです。YAPC::Asia 2013でMonocerosについて喋ったときの資料を一部使っているのはここだけの秘密 RubyKaigiのスタッフの皆さん、通訳の方、参加者の皆さんありがとうございました。金曜日土曜日と帰るのが遅くなったので家族にも感謝。 \n\n内容は\n\n- Rhebokの概要\n- Hot Deployの仕組み\n- ベンチマーク\n- r
RubyKaigi 2014行った。良い発表がいろいろ聞けたんだけど、最近ISUCONに向けてwebアプリのチューニングに興味があったので特にfinal keynoteが興味深かった。 その中で紹介されていたtmm1/rblineprofが行ごとの実行時間を表示してくれるのでとても便利そうだったんだけど、GitHubではpeek/peek-rblineprofというRails用のプラグインでrblineprofを活用しているので、ISUCONでおそらく使用されるであろうsinatraでどうやって使うか考えていた。 kainosnoema/rack-lineprofというgemがその用途に便利そうだったので紹介したい。 使い方 rack-lineprofはRack middlewareで、まず以下のようにuseする必要がある。 require 'rack-lineprof' class My
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
前3回(1回2回3回)の投稿を通して、僕は「Rackは棚ではなく、マトリョーシカである」ということを悟りました。つまりRackにおいて、Webアプリは一または複数のmiddlewareに多層的にラップされ、1つの#call呼び出しに対して内側から外側に向けて順に#callの実行を伝搬させるのだと知りました。そして僕はこのような呼び出し伝搬を「マトリョーシカ呼び出し」と名付けました。 マトリョーシカ呼び出しは、僕に惑星からの巨大エネルギー放出を連想させます。 巨大な惑星の外縁に与えた小さな力が、それを構成する各層の外側から内側に順に伝搬していき、そのコアに到達する。コアに到達した小さな力はそこで小さな爆発を誘引し、今度は内側から外側に向けてその各層において連鎖的な爆発を順に誘引し、最後には巨大な爆発エネルギーを惑星外に放出するのです。 僕はすっかりこのマトリョーシカ呼び出しの虜になりました。
前回の記事「エラーメッセージから学ぶRack - 最初の一歩」の続きです。 噂によるとRackにはMiddlewareなる魔法があるそうです。そしてRack古文書にはMiddlewareについて次のようにあります。 useの呪文を唱えよ。さすれば扉は開かれん 準備 前回作った、なんちゃってWebフレームワーク「draque」を継続して使います。config.ruが少し長くなったので、Webアプリの本体を別ファイルdraque.rbに移します。 #draque.rb module Draque @@routes = { get:{} } def draque(env) path = env['PATH_INFO'] if res = @@routes[:get][path] res.call(env) else [ 404, headers, not_found ] end end def
(追記:2012-12-25) 本記事およびこれに続くRackの記事(全4本)をまとめて電子書籍化しました。「Gumroad」を通して100円にて販売しています。内容についての追加・変更はありませんが、誤記の修正およびメディア向けの調整を行っています。 電子書籍「エラーメッセージから学ぶRack」EPUB版 このリンクはGumroadにおける商品購入リンクになっています。クリックすると、オーバーレイ・ウインドウが立ち上がって、この場でクレジットカード決済による購入が可能です。購入にはクレジット情報およびメールアドレスの入力が必要になります。購入すると、入力したメールアドレスにコンテンツのDLリンクが送られてきます。 詳細は以下を参照して下さい。 電子書籍「エラーメッセージから学ぶRack」EPUB版をGumroadから出版しました! 購入ご検討のほどよろしくお願いしますm(__)m Rac
Sinatraとか、Sinatraで実装されているLokkaとか触ってるときに、そもそもRackってなんだ?って思って調べました。 前回のSinatra触ってると出てくるRackって何? - ギークを夢見るじょーぶん男子の続きです。 RackとRackで実現できること .rb勉強会資料 - はじめる! Ruby de Web 開発 Rackとは?Rackで実現できることがスライドにまとまっていてわかりやすかった これだけで、BASIC認証ができる! use Rack::Auth::Basic do |user, pass| user == ENV['BASIC_USER'] && pass == ENV['BASIC_PASS'] end Route 477 - Rack日本語リファレンス Rackリファレンス Route 477 - 5分でわかるRack , シュレーディンガーの猫たち
Rails アプリケーションで IP アドレス制限が必要になった際には、基本的に上位のリバースプロキシ(Apache とか Nginx とか)で行うことが多いと思いますが、一方で Rails 本体で制限をかけなければならないこともあります(Heroku だとか) でもそれを Rails の controller 層とかで実装するのはちょっと嫌ですよね。特にビジネスロジックではないことが多いですし。 というわけで、IP アドレス制限を Rack Middleware 層で実装した Rack::Access というモジュールを使ってみました。これは GitHub - rack/rack-contrib: Contributed Rack Middleware and Utilities に含まれています。使い方は Gemfile に書いて bundle して config/applicatio
前回の記事では、Rackとは何かについてを、Rackが生まれた背景を交えてご紹介しました。今回は、Rackを実際に使ってみるにはどうすればいいのかを実際に作りながら解説します。 rackupとRack::Builder 前回の記事の最後で、アプリケーションの他にconfig.ruというファイルを用意し、rackupといういうコマンドを使ってアプリケーションを起動しましたが、これについてもう少し詳しく説明したいと思います。 実は、単にRackアプリケーションを起動するためだけであれば、config.ru(rackupファイルと呼びます。拡張子のruはおそらくrackupの略でしょう)は必要ありません。Rackの入門記事等で目にしたことのある方もいるかもしれませんが、以下のようなコードをファイルの末尾に書き加えるとsimple_app.rb単体でアプリケーションを起動することができます。 if
rack-logo posted by (C)komagata komagataです。 仕事でも使う必要が出てきたのでRubyの勉強をしています。WebアプリケーションでRubyを使おうとしていきなり躓いたのがApache、WEBrick、Mongrel等、実行環境毎の設定やAPIの違いです。 Rubyを普段使っている人には常識過ぎるのか情報が少なく、FastCGIで単に「Hello, World」を表示させるのにも一苦労でした。(Railsでは簡単に動くのが悔しい) そんな実行環境毎のAPIの差を吸収してくれるRackというライブラリを知ったので試してみました。 RackはRuby版WSGIと呼ばれているそうです。WSGIとはWeb Server Gateway Interfaceの略でWeb ServerとWeb Applicationの間のInterfaceを定めたPython界の仕
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く