タグ

ブックマーク / memo.yomukaku.net (8)

  • 2012年末に観ておきたいJavaScript20選: githubでwatch数の多い200件から - memo.yomukaku.net

    GithubJavaScriptのコードとして分類されており、現時点でwatch数の多い200件の中で、実際に使ったことがあり便利または面白いと感じた20件をまとめてみました。 backbone-boilerplate、requirejs、yeoman、lodashのような定番になってきているものから、TimelineJSのような全く汎用性のないものまであります。 d3.js Data-Driven Documents。サンプル集を観るのが手っ取り早いと思います。 pdf.js JavaScriptだけでPDFをレンダリングできる時代です。1年半ほど前にくらべると、かなりPDF製作者の期待通りにレンダリングできるようになってきています。 backbone-boilerplate Backbone.jsを使ったアプリの骨格構造。サーバー側でいわゆるMVC2のアプリを作っている人にはB

  • Rubyで相対URLを絶対URLに変換する方法 - URI.join(base, relative_url).to_s - memo.yomukaku.net

    Rubyで/barや../fooのような相対URLをhttp://example.com/foo/barのような基準のURLと比較してhttp://example.com/barのような絶対URLに変換する方法を書きます。Rubyで相対URLを絶対URLに変換するにはURIのjoinメソッドを使用します。 URI.join(base, relative_url).to_sのように使います。 以下に例として、http://www.example.com/foo/barを基準としてさまざまな相対URLを絶対URLに変換するコードを書きます。 require 'uri' page_url = 'http://www.example.com/foo/bar' hrefs = %w[ http://example.com/ http://puu.example.com/ http://www.exa

    kamipo
    kamipo 2012/11/26
  • Addressable::URIで日本語ドメイン名を含むRFC3986準拠のURIを扱う - YomuKaku Memo

    管理しているアプリのログの例外をチェックしていたところ、 http://www.お名前.com/ のような日語ドメイン名のURIのデータを取得して処理する部分で URI::InvalidURIError が出ているのを見つけました。 処理対象のデータを取得するにあたり、open-uriを使用していましたが、open-uriは日語を含むURIを扱うことができません。 ところで、RFCによれば、URIの定義は2つあります。 ひとつは1998年に発行されたRFC 2396 もうひとつは2005年に発行されたRFC 3986 日語ドメイン名も含めて、RFC 3986の定義によるより広範なURIを扱うことができるaddressableを使用して対処することにしました。 まず、標準ライブラリのURIとopen-uriを使用して日語を含むURLを扱うとどんな例外が発生するか? という内容を確認し

  • Railsのsession_idの決定方法を知る

    Railsで作られたサイトにアクセスすると、_xxxxxxのような名前で中身が18ed7a9d5d10a4c25ac06be5254a9e6dのようなcookieを貰うと思います(剥き出しのクッキーが使われて無い限り)。この18ed7a9d5d10a4c25ac06be5254a9e6dのようなランダムな文字列がsession_idで、この値を元にActiveRecord Storeやその他のキーバリューストアの中に永続化したデータとユーザーがひもづけられています。Railsはこの18ed7a9d5d10a4c25ac06be5254a9e6dのような文字列をどのようにして決めているのでしょうか? Rails以外のフレームワークでもRailsと肌合いの似たsession_idを出力してみるために、Railssession_idの決定方法を調べてみました。 Rails体の中では、どこでs

    kamipo
    kamipo 2011/12/19
  • NginxでWebSocketをリバースプロキシする方法

    Nginxをリバースプロキシとして動かし、その後ろでSocket.IOを動作させる方法。nginx_tcp_proxy_moduleを使用。 WebSocketのサーバーををリバースプロキシサーバーの後ろで動作させるためには、そのリバースプロキシサーバーがHTTP 1.1のUpgradeを適切に扱ってくれる必要があります(捨てたりしないこと)。Nginxはしばしばリバースプロキシとして使用されますが、nginxのproxy_passディレクティブはそのままではwebsocketの接続を期待通りに扱ってくれません。yaoweibinさんが一般的なtcp接続をリバースプロキシするためのモジュール、nginx_tcp_proxy_moduleを作成してくださっています。このnginx_tcp_proxy_moduleを使用してnginxでwebsocketサーバーをリバースプロキシできるようにし

    kamipo
    kamipo 2011/08/23
  • Railsの各種サーバーの速度ベンチマーク: Pound、Varnish、Nginx、Unicorn、Mongrel

    Railsの各種サーバーの速度ベンチマーク: Pound、Varnish、Nginx、Unicorn、Mongrel RailsのアプリをPound、Varnish、Nginx、Unicorn、Mongrelを使用して動かした際の速度ベンチマーク。以下の構成での同一Railsアプリをhttperfでベンチマークした結果をまとめます。 Pound -> Varnish -> Nginx -> Unicorn * 2 Varnish -> Nginx -> Unicorn * 2 Nginx -> Unicorn * 2 Mongrel (Rails.env == 'development') node.js (Express + Socket.IO) 全体の構成Poundを80番ポートを公開し、Varnishを81番ポート、nginxを8080番ポート、Unicornの2プロセスをsocke

    kamipo
    kamipo 2011/08/11
  • powを使ってdevelopment環境で複数のrailsアプリを同時に動かす

    37signalsが公開されたpowを使用するとdevelopment環境でも複数のrailsアプリ(rackアプリ)を同時に動かすことができます。ローカルでhttp://sample-app.dev/のようなURLを使用して開発を行うこともでき、マルチテナントのアプリの開発等でも便利になります。 インストールpowのインストールは簡単で、以下のようにpow.cxのサイトからシェルスクリプトを動作させるだけです。$ curl get.pow.cx | shインストール用のシェルスクリプトを動作させると、以下のように起動用のplistや、devというドメイン名を使用するための/etc/resolver/devが作成されます。curl get.pow.ctune66:~ foo$ curl get.pow.cx | sh % Total % Received % Xferd Average S

    kamipo
    kamipo 2011/08/04
  • Node.jsのために知っておくべきJavaScriptの基本3選

    node.js上でコードを書くため、JavaScriptをしっかり復習したりnode.jsの制御フローを知るための読むべきページのリストです。 JavaScriptそのものの復習http://ejohn.org/apps/learn/John Resigさんの書かれたチュートリアルがわかり易いと思います。 JavaRubyなどの言語を普段使っている方で、JavaScriptのプロトタイプベースのオブジェクト指向に親しみのない方は一読です。またJavaScriptに詳しい方も、GoogleのClosureでコードの最適化を行う際に問題を起こしにくいinheritanceを書くために、Michael Bolinさんの「Inheritance Pattern in JavaScript」を読んでみることをすすめます。http://www.bolinfest.com/javascript/inh

  • 1