タグ

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

  • Sinatraで自作before_filterを使った場合と使わない場合でコードがどれぐらい変わるか? - 射撃しつつ前転 改

    もはや誰も望んでいなさそうなSinatraの細かいネタですがねちねちと続けます。 今回は、前回作った自作のbefore_filterを使った場合と、使わずに直接beforeメソッドを使った場合とで、コードがどう変わるか、簡単に比較してみる。 まずは使わない場合から。 before do if request.path_info =~ /^\/admin\// if not login_as_admin? throw :halt, "required admin privilege." end end end まぁこんなもんかなぁという感じ。個人的には/^\/admin\//という正規表現はあまり読みやすいとは思えないけど、他の部分は特に文句はない。request.path_infoにパス情報が入っているので、それを正規表現でチェックして、フィルタ対象のURLである場合にはさらにadmin権

    Sinatraで自作before_filterを使った場合と使わない場合でコードがどれぐらい変わるか? - 射撃しつつ前転 改
  • Sinatra向けにRailsのbefore_filterみたいなのを作ってみた - 射撃しつつ前転 改

    一つ前のエントリでは「また来週」とか書いちゃったけど、実装始めると意外と楽しかったので作っちゃった。 まずは実際のコードから。これがbefore_filter.rb。これをrequireするとbefore_fitlerというメソッドが使えるようになる。 def before_filter path, &filter_proc BeforeFilter.before_filter(path, &filter_proc) end module BeforeFilter @@filters = [] def self.before_filter path, &filter_proc pattern, keys = Sinatra::Base.send(:compile, path) Sinatra::Base::send(:define_method, "filter_method #{path

    Sinatra向けにRailsのbefore_filterみたいなのを作ってみた - 射撃しつつ前転 改
  • Railsのbefore_filterみたいなのをSinatraで実現できるか - 射撃しつつ前転 改

    Railsは便利だとは思ったがフレームワークとしてとくに好きではなかった(別に嫌いでもない)。それに対してSinatraはなんだかよくできてる感があって気に入っている。この差がどこからくるのかはよくわからないが。 そんなSinatraとRailsであるが、比較してみると、フィルタまわりは圧倒的にRailsの方が高機能である。Sinatraのフィルタはbeforeという一種類で、しかも共通処理を書けるだけである。こんな感じ。 before do if not logged_in? redirect '/' end endRailsと比べると 呼ぶタイミングがbeforeしかない。Railsだとbefore_filter, after_filter, around_filterの3種類のフィルタがある。 どのメソッドに対してフィルタ処理を行うかを制御できない。Railsはbefore_filt

    Railsのbefore_filterみたいなのを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