タグ

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

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

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

    なぜあなたがウェブサイトをHTTPS化するとサイトが遅くなってユーザーが逃げていくのか - 射撃しつつ前転 改
    teppeis
    teppeis 2013/01/14
    「SSLを使うと通信が始まるまで、HTTPの場合と比べ、最低でも120ms程度の遅延が発生する」
  • なぜNetflixはNetflix Prizeで優勝したアルゴリズムを実用化していないのか? - 射撃しつつ前転 改

    ダヌシカさんのツイート経由で、以下のURLから。 Why Netflix Never Implemented The Algorithm That Won The Netflix $1 Million Challenge Netflix Recommendations: Beyond the 5 stars (Part 1) 超簡単に要約しておく。詳しく知りたい人は上記のリンク先を読んで下さい。 Netflix Prizeの優勝アルゴリズムでは多くのアルゴリズムが混合されていた。そのうちSVDとRBMは今でも使ってる。 100万件のデータに使えるものであっても、1億件で利用可能なようにスケールさせるのは大変だった。 スケールさせるのが大変なので、Grand Prizeで用いられた数百のアルゴリズムの混合は、Netflixでは使ってない。 Netflix Prizeの成果を使ってない理由とし

    なぜNetflixはNetflix Prizeで優勝したアルゴリズムを実用化していないのか? - 射撃しつつ前転 改
    teppeis
    teppeis 2012/05/17
    スケーラビリティ、リアルタイム性、多様性、ビジネスモデルの変化(DVDからストリーム配信へ)
  • 日本語入力を支える技術という本を書きました - 射撃しつつ前転 改

    (追記):「このに書かれていないこと」という項を追加しました。 以前も告知しましたが、日本語入力を支える技術というを書きました。技術評論社から2012年2月8日に発売されます。(私の知っている限りでは、ジュンク堂池袋店、有隣堂AKIBA店、丸善丸の内店、書泉ブックタワーでは既に先行販売しているよう…でしたが、ジュンク堂池袋店、有隣堂AKIBA店、書泉ブックタワーは先行販売分は売り切れの模様です。)どんななのか、目次などについては公式ページを参照していただくとして、以下ではどんななのか宣伝したいと思います。 こののキーワードは「実装」と「初心者向け」です。初心者でも実装ができるようにサンプルコードを多用し、また数式が出てくる部分に関してはちょっとしつこいぐらいに説明を加えました。私自身の経験からすると、を読んだで理解したと思っていても、大抵の場合、細かいところはわかっていないもの

    日本語入力を支える技術という本を書きました - 射撃しつつ前転 改
    teppeis
    teppeis 2012/02/04
  • 最近気になっているJSライブラリ - 射撃しつつ前転 改

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

    最近気になっているJSライブラリ - 射撃しつつ前転 改
  • Firefoxからsshのダイナミック転送を使って非公開サーバへアクセスする - 射撃しつつ前転 改

    sshにはダイナミック転送という機能がある。この機能を使うと、sshはアプリケーション側にはSOCKSプロクシとして振る舞うが、そこからsshの接続先までは暗号化された状態で通信が行われる。 これだけだと通常のトンネリングとどう違うのかよくわからないかもしれないが、ダイナミック転送の場合は転送ポートを指定する必要がない。ここがダイナミックと表現される所以だろう。 例えば、オフィスAにある開発サーバdev1にオフィス外からアクセスしたいとする。しかし、dev1はオフィス外には公開されておらず、踏み台サーバladd1を経由してしかアクセスするしかない。ladd1はsshのみが動いており、これまではsshのトンネリング機能を使ってアクセスしてきたのだが、ウェブアプリケーションをデバッグする際はいちいちウェブアプリケーションのポート毎にトンネルを掘るのが面倒くさい。オフィスに限らずデータセンターへ

    Firefoxからsshのダイナミック転送を使って非公開サーバへアクセスする - 射撃しつつ前転 改
  • SVMのマージン最大化についてしつこく考えてみる - 射撃しつつ前転 改

    SVMの説明というと、よく出てくるのはマージンの最大化である。しかし、実装を行う場合には、どちらかというと目的関数をどうやって最小化しようかな、というところの方が重要(注:主形式を勾配法で最適化する場合の話です)で、この間にある微妙なギャップを超えるのは微妙ながらも大変なような気がしている。このギャップをどうやったら埋められるのかというところを考えてみたい。考えながら書いてきちんと推敲しておりませんのでご注意ください。 SVMってなに、という説明でよくあるパターンは、線形識別器(というか、SVM)の学習というのはパラメーターをいじって分離(超)平面をいい感じに引くことですよ、というところから始まり、いい感じってなんだろうか、マージンが最大化されるように引くといいっぽいよね、けど分離不可能な場合はマージンの値が負になることがあるよね、そこでソフトマージンというものを定義して、マージンが負にな

    SVMのマージン最大化についてしつこく考えてみる - 射撃しつつ前転 改
  • 【Firefox】JSONViewは神拡張【Google Chrome】 - 射撃しつつ前転 改

    JSONViewを知らない人が社内でいっぱいいたので、これは宣伝すると他にも幸せになれる人がたくさん居るだろう、ということで宣伝してみる。 近年、JSON形式でウェブAPIを作成する機会が増えてきた。しかし、JSONで出力された場合、日語の文字列はエスケープされる実装が多く(仕様的にはエスケープしてもしなくてもどっちでもいい)、結果を目視で確認することができなくて困るということがよくある。 そのため、JSON APIをたたいてパースして出力するだけのスクリプトをわざわざRubyで書く、というようなことを繰り返していた(前に書いたスクリプトを探すよりも新しく書いたほうが早いのだが、それでもAPIを調べ直したりで3分ぐらいはかかる)のだが、JSONViewという拡張を使うことで、ブラウザ上でのJSONを、XML風に見やすく整形してくれることがわかった。以下のスクリーンショットに、JSONVi

    【Firefox】JSONViewは神拡張【Google Chrome】 - 射撃しつつ前転 改
    teppeis
    teppeis 2011/02/11
    アンエスケープは便利過ぎる!
  • ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改

    ディレクトリの中にある大量のファイルを高速に読み込む方法が知りたかったので、実験してみた。想定しているシチュエーションは、一つ一つのファイルは数KB程度だが数が多い、という場合である。適当な順番でアクセスすると、ランダムアクセスになってしまいとても時間がかかる。個々のファイルを読み込む順番はどうでも良く、すべてのファイルを処理することさえできればいいので、原理的にはシーケンシャルアクセスで処理できてしかるべきである。 まず、ファイルシステムについて。HDDやSSDなどのハードウェアにアクセスする際には、ファイル名などという概念はもちろん存在しない。ファイル名と実際のディスク上の対応を管理するのがファイルシステムの主な役割である。ファイルシステムは、ファイル名からそのファイルに対応するブロック番号(メモリアドレスみたいなもんだな)を調べて、そのブロック番号を指定してHDDやSSDにアクセスす

    ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改
  • ディスクキャッシュを簡単にクリアする - 射撃しつつ前転 改

    3年前にディスクキャッシュをクリアするためにはunmountしてからmountしなおせば良いという事を知ったが、これは自由に取り外しができるパーティションがないと使えない。強制的にキャッシュをクリアする方法を知ったのでメモしておく。 sudo sysctl -w vm.drop_caches=3; sudo sysctl -w vm.drop_caches=0; 参考:ext3の dir_indexを試す 追記: sudo sysctl -w vm.drop_caches=3 だけでOKだとkosakiさんからコメントで教えてもらいました。

    ディスクキャッシュを簡単にクリアする - 射撃しつつ前転 改
    teppeis
    teppeis 2009/07/27
    sudo sysctl -w vm.drop_caches=3; sudo sysctl -w vm.drop_caches=0;
  • 新はてなブックマークでも使われてるComplement Naive Bayesを解説するよ - 射撃しつつ前転 改

    新はてブ正式リリース記念ということで。もうリリースから何週間も経っちゃったけど。 新はてなブックマークではブックマークエントリをカテゴリへと自動で分類しているが、このカテゴリ分類に使われているアルゴリズムはComplement Naive Bayesらしい。今日はこのアルゴリズムについて紹介してみる。 Complement Naive Bayesは2003年のICMLでJ. Rennieらが提案した手法である。ICMLというのは、機械学習に関する(たぶん)最難関の学会で、採択率はここ数年は30%を切っている。2003は119/371で、32.1%の採択率だったようだ。 Complement Naive Bayesの位置づけは 実装が簡単 学習時間が短い 性能もそこそこよい という感じで、2003年段階にあっても、絶対的な性能ではSVMに負けていた。しかし、学習が早いというのは実アプリケーシ

    新はてなブックマークでも使われてるComplement Naive Bayesを解説するよ - 射撃しつつ前転 改
    teppeis
    teppeis 2009/02/02
    complement=補集合を使って学習するNaive Bayes
  • 1