タグ

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

  • 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が実行されるよ - 射撃しつつ前転 改
  • 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つの設定 - 射撃しつつ前転 改
  • 言語処理のための機械学習入門を読んだ - 射撃しつつ前転 改

    言語処理のための機械学習入門というが出版される、という話はtwitterで知っていたのだが、8月ぐらいに出るのだろうとばかり思っていたら、なんかもう発売されているらしい。Amazonでは早速売り切れていたので、某大学生協の書籍部まで行って購入してきた。おかげで、この週末は280円で過ごすハメになってしまった。 まだざっと眺めただけだが、 ラベルを人手でつけるのに隠れマルコフモデルと言うのは来はちょっとおかしいんだけどNLPの分野だとそう表現する事が多いよ 対数線形モデルと最大エントロピーモデルは同じものだよ 出力変数の間に依存関係がなければCRFではなく対数線形モデルとか最大エントロピーモデルと表現するべきだよ といった、これまでの教科書にはあまり載っていなかったような事が載っているのはとても良いと感じた。こういった情報は、これまではどこかの大学の研究室で学ぶか、もしくはウェブ上の資料

    言語処理のための機械学習入門を読んだ - 射撃しつつ前転 改
  • UnicornでSinatraアプリをデプロイしてみた - 射撃しつつ前転 改

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

    UnicornでSinatraアプリをデプロイしてみた - 射撃しつつ前転 改
  • Sinatraが使いやすいので勝手に宣伝してみる - 射撃しつつ前転 改

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

    Sinatraが使いやすいので勝手に宣伝してみる - 射撃しつつ前転 改
  • Firefoxからsshのダイナミック転送を使って非公開サーバへアクセスする - 射撃しつつ前転 改

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

    Firefoxからsshのダイナミック転送を使って非公開サーバへアクセスする - 射撃しつつ前転 改
  • 新はてなブックマークでも使われてる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を解説するよ - 射撃しつつ前転 改
  • 1