タグ

ブックマーク / tkng.hatenablog.com (7)

  • なぜあなたがウェブサイトをHTTPS化するとサイトが遅くなってユーザーが逃げていくのか - 射撃しつつ前転 改

    完全に釣りタイトルですけど中身は真面目に書くよ。 近年、ウェブサイトのHTTPS化が流行のようになっている。私の知る限り、Googleの各種サービスやTwitter、Facebookなどが完全にHTTPSで通信を行うようになっている。HTTPS、つまりSSLによる通信の暗号化によって、ユーザにこれまでよりも安全なウェブサイトを提供できる。 しかし、あなたが作っているサイトをふと思いつきでHTTPS化してしまうと、たぶん、これまでよりもサイトが遅くなる。ここでは、HTTPSで通信する場合の問題を解説する。 なぜ遅くなるのか HTTPで通信する場合、クライアントがサーバへと接続するためにはTCP/IPの3ウェイハンドシェイクという手順が必要になる。めんどくさいのでここでは詳しくは説明しないが、要するにクライアントがリクエストを投げる前にパケットを1往復させないといけないのである。パケットの往復

    なぜあなたがウェブサイトをHTTPS化するとサイトが遅くなってユーザーが逃げていくのか - 射撃しつつ前転 改
  • 最近気になっているJSライブラリ - 射撃しつつ前転 改

    時間があったら調べたいんだけど、無いのでリストアップだけ。 EaselJS html5のcanvasだと一旦描画したオブジェクトの移動とかできないので、シーングラフを管理してくれるっぽい感じのライブラリ。 paper.js EaselJSと似たような感じ。どっちがいいのかわからない。 d3.js グラフ描画ライブラリっぽい。なんかいろんな種類のグラフが描ける。グラフがかっこいい。 now.js 複数のクライアントでデータを通信するコードを簡単に書くためのライブラリ。チャットとかがすごい簡単に作れる。

    最近気になっているJSライブラリ - 射撃しつつ前転 改
  • WEB+DB PRESS vol.64に日本語入力の記事を書いたよ - 射撃しつつ前転 改

    WEB+DB PRESS Vol.64に日本語入力についての記事を書かせていただきました。特集3の「作って学ぶ日本語入力」という奴です。 日本語入力歴史とかについて簡単に触れた後、かな漢字変換を実際に作ってみる、という構成になっています。ビタビアルゴリズムやダブル配列、構造化パーセプトロン、構造化SVMなどのテクニックを紹介しています。この特集だけ読めば、今年の3月の言語処理学会に私が出した論文(?)と同じものがたぶん作れます。日本語入力だけに限らず、教師あり機械学習を実装するときの最低限の知識、みたいなところも身につくと思いますので、WEBやDBに興味のある人だけでなく、自然言語処理に興味のある大学生の人々にもぜひ読んで欲しいと思います。データを入れ替えれば形態素解析なんかもほぼそのままで作れます。 構成的には、確率の概念について一切触れていないところが一つのポイントになっています。統

    WEB+DB PRESS vol.64に日本語入力の記事を書いたよ - 射撃しつつ前転 改
  • なぜJSONPだとクロスドメイン制約を超えられるのか? - 射撃しつつ前転 改

    なぜ通常のXMLHttpRequestにはクロスドメイン制約があるのに、JSONPではクロスドメインでリクエストを送信できるのか?不思議に感じたので、ちょっと調べてみた。 クロスドメイン制約は「ブラウザ上で実行されるJavaScriptは同じドメインにしかリクエストの送信やクッキーの編集を行えない」という制限である。 なぜこのような制限が必要になるのか。クロスドメイン制約がなかったらどうなるかを思考実験してみよう。ブラウザ上では、いくつものサイトからダウンロードしてきたJavaScriptが同時に実行されることは珍しくない。また、悪意のあるページにアクセスしてしまい、悪意あるJavaScriptを実行してしまうことも、十分に起こり得る話である。間違えて変なページにアクセスしたら致命的な問題が起きました、ではまずいので、ブラウザではJavaScriptができる事にかなりの制限を与えている。X

    なぜJSONPだとクロスドメイン制約を超えられるのか? - 射撃しつつ前転 改
  • UnicornでSinatraアプリをデプロイしてみた - 射撃しつつ前転 改

    最近は仕事でSinatraアプリを書いたりしているので、Sinatraアプリを動かすためにはどのHTTPサーバを使うのがベストなのかが気になっている。(先に結論を書いておくけれど、どれがベスト、という唯一の選択肢は今のところありません。適材適所です。) SinatraはRackの上に構築されているので、Rackに対応したHTTPサーバーを使って動かす事になるのだが、この数がやたらと多く、どれを使えばいいのか迷う。代表的なものを挙げただけでも、WebRick, Mongrel, Thin, Unicorn, Passenger(Apacheとかに組み込んで使うやつ), FastCGI, (普通の)CGI、これぐらいは選択肢がある(いくつかHTTPサーバじゃない物も混ざっているが、Rackが対応してるという点は共通している)。 WebRickはそもそもパフォーマンスに重点を置いていないし、Mo

    UnicornでSinatraアプリをデプロイしてみた - 射撃しつつ前転 改
  • Googleのトップページを開くと毎秒100回JavaScriptが実行されるよ - 射撃しつつ前転 改

    FirefoxがCPUを常に15%ぐらいうのが気になっていたので調べてみたら、Googleのトップページを開くとものすごい勢いでJavaScriptが実行されることがわかった。具体的には、var k=t.value;k!=h&&X(0);h=k というコードが毎秒100回実行されている。このせいで、自分の使っているPCだと、Googleのトップページを開くだけでCPU使用率が2%ぐらい上がっているようだ。Firefox特有の問題というよりは、ウェブページ側の作り方に依るものみたいだ。たぶん他のブラウザでも問題は変わらないだろう。 Googleのトップページの場合、コードを調べてみた限りでは、原因はどうも検索候補の自動補完用のコードみたいだ。現在の入力文字列が過去の記録と違ったら補完の提示をやり直す、みたいなことをやっているように見える。 HTMLではテキストボックス内のテキストが変更され

    Googleのトップページを開くと毎秒100回JavaScriptが実行されるよ - 射撃しつつ前転 改
  • Sinatraが使いやすいので勝手に宣伝してみる - 射撃しつつ前転 改

    これまで、ウェブアプリを作るような仕事ではRailsを使ってきたのだが、簡単なCGI、特にバックエンドサーバの設定や状態管理などを行うだけでDBが必要ないようなケースとかは、Railsではややオーバースペックである。RailsDBへのコネクタなしで動かす方法が分からなかった(たぶん存在するんだとは思いますが…)り、いちいちコントローラを分けて書くのはちっさいアプリだと面倒くさかったりして、フィットしない場合も多い。 で、Rails以外のフレームワークということで、最近はSinatraを使い始めている。開発せずともわかるメリットとして、Sinatraは Pure Rubyで動くのでインストールが楽 sinatraとrackを同梱してしまえばrubygemsなしで動くのでインストールが楽 CGIでもまともな速度で動く というようなものがある。 インストールが簡単なのは非常に重要である。インス

    Sinatraが使いやすいので勝手に宣伝してみる - 射撃しつつ前転 改
  • 1