タグ

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

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

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

    なぜあなたがウェブサイトをHTTPS化するとサイトが遅くなってユーザーが逃げていくのか - 射撃しつつ前転 改
    ryshinoz
    ryshinoz 2013/01/09
  • 日本語入力を支える技術 振り返り、もしくは技術書を書きたい人へ - 射撃しつつ前転 改

    を書いてからこっち、年度末で忙しかったり、体調がずっと悪かったりしていますが、そろそろ気出します。正誤表も大幅にアップデートします。今書いてる。 今日は、を書いてみてどうだったか、ということをふり返る。たぶんこれでについて触れるのは最後かな。宣伝はたまにすると思いますが。 ※思いがけず大量にアクセスがあったから、最後に追記を書いたので、そっちも読んでね! を書いたきっかけ 会社の方でPFIセミナーという勉強会のようなものをやっており、なぜかそれがUStreamでインターネットに中継されているのだが、そこで日本語入力の話をしたら「書かない?」って話が来た。編集さんとは、その前年に会社に来たWEB+DB Pressの記事執筆依頼で記事を書いた際に知り合ったので、そういう意味では貪欲にチャンスを掴みに行った結果であると言えなくもない。 PFIセミナーがUSTで中継されるようになったの

    日本語入力を支える技術 振り返り、もしくは技術書を書きたい人へ - 射撃しつつ前転 改
    ryshinoz
    ryshinoz 2012/06/10
  • sshを使いこなすための7つの設定 - 射撃しつつ前転 改

    五月病が抜け切らないIT系新入社員に贈るシリーズ第1段。 ~/.ssh/configにはいろいろな設定が書けるが、周囲を見渡した限り、あまり活用されているようには見受けられない。そこで、今回は便利な設定をいくつか集めてみた。 長いホスト名に短い名前をつける Host exp1 HostName verrrryyy.looooong.hostname.example.jp ssh verrrryyy.looooong.hostname.example.jpの代わりにssh exp1でログインできるようになる。 ちなみに、zshの場合、configファイルに登録されたホスト名はsshコマンドを打つときに補完されるので更に便利。 特定のホストへログインするときのユーザ名や鍵をカスタマイズする Host github.com User tkng IdentityFile ~/.ssh/id_rsa

    sshを使いこなすための7つの設定 - 射撃しつつ前転 改
    ryshinoz
    ryshinoz 2011/09/07
  • WEB+DB PRESS vol.64に日本語入力の記事を書いたよ - 射撃しつつ前転 改

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

    WEB+DB PRESS vol.64に日本語入力の記事を書いたよ - 射撃しつつ前転 改
    ryshinoz
    ryshinoz 2011/08/24
  • clangでソフトウェアをビルドしC++を知る - 射撃しつつ前転 改

    clangというのはllvm向けのC/C++/Obj-Cのためのフロントエンドで、最近はGoogle ChromeとかFirefoxもコンパイルできるレベルにまで成熟してきているらしい。 いくつかのブログで紹介されているのを見ても、ふーん、ぐらいにしか思っていなかったのだが、あんな大規模なソフトウェアがコンパイルできるというのは、考えてみるとすごいことである。大事なことなので強調しておくが、すごいことである。十分に実用的なレベルに到達していることだ。ビルドも早いし生成されたコードもg++と同程度には速いというし、試してみる必要がある。 という訳で、いくつか実際にソフトウェアをビルドしてみた。試してみた限りでは、 libstdc++のtr1/unordered_mapがビルドできない C++のコーナーケースで、clangが許容しないものが多い といった問題があったが、割とどれもすんなりとコン

    clangでソフトウェアをビルドしC++を知る - 射撃しつつ前転 改
    ryshinoz
    ryshinoz 2011/04/19
  • 【Firefox】JSONViewは神拡張【Google Chrome】 - 射撃しつつ前転 改

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

    【Firefox】JSONViewは神拡張【Google Chrome】 - 射撃しつつ前転 改
    ryshinoz
    ryshinoz 2011/02/21
  • 劣微分を使った最適化手法を紹介しました - 射撃しつつ前転 改

    新年明けましておめでとうございます、というのもはばかられるような時期になってしまいましたが、今年もこんな感じでのんびりとやっていきたいと思います。よろしくお願いします。 会社ブログの方で、劣微分を使った最適化手法として、FOBOSを紹介しました。線形識別器とは、というところから話を始めたら、実際の論文紹介にたどり着くまでに4回もかかってしまいましたが、何も知らないところからFOBOSでSVMが書けるというところまで、早足ですが一応一通り紹介したつもりなので、FOBOSに興味があるけどまだ論文読んでない、という人はぜひチェックしてもらえればと思います。使えるカーネルは線形カーネルか多項式カーネルぐらいに制限されてしまいますが、実用的なSVMが簡単に作れるというのは結構大きいですよ。ちなみに、FOBOSのところではSVMしか説明していませんが、第2回ではロジスティック回帰をSGDで最適化、とい

    劣微分を使った最適化手法を紹介しました - 射撃しつつ前転 改
    ryshinoz
    ryshinoz 2011/02/21
  • C++で例外を使ったプログラムをうまく書くにはどうすればいいのか - 射撃しつつ前転 改

    C++とはできるだけ離れた人生を送りたいと願ってきた。しかし、なかなかそうもいかず、最近はだんだんとC++の知識を学びつつある。今更C++を勉強するなんてちょっと出遅れすぎてるんじゃないかという気もするが、もうすぐ新規格であるC++0xもリリースされるはずであるし、意外とC++を学ぶにはいいタイミングかもしれない。 プログラムの品質はエラー処理をどこまで丁寧に書くかで決まる。エラー処理の書き方には、 エラーコードを返す(エラーコードを返せるように設計しておく) エラー時に例外を投げる の2種類があるが、今悩んでいるのはそのC++の例外についてである。 例えば、機械学習のツールを書くことを考える。このようなツールではデータをパースする部分を書く必要が出てくるだろう。1行に1つのデータが以下のような形式で書かれているものをパースしたい。 1 2:1 4:2 5:1 このデータをパースするコード

    C++で例外を使ったプログラムをうまく書くにはどうすればいいのか - 射撃しつつ前転 改
    ryshinoz
    ryshinoz 2010/07/24
  • ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改

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

    ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改
  • Firefoxからsshのダイナミック転送を使って非公開サーバへアクセスする - 射撃しつつ前転 改

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

    Firefoxからsshのダイナミック転送を使って非公開サーバへアクセスする - 射撃しつつ前転 改
    ryshinoz
    ryshinoz 2009/06/21
  • 1