タグ

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

  • サルでも分かる多段ssh - 射撃しつつ前転 改

    仕事をしていると、お客さんの環境にログインするため、 踏み台マシンを経由する必要がある 踏み台マシンへのログインすら、特定範囲のIPアドレスからしか受け付けてくれない といった厳しい条件を満たさなければならない場合があり、多段にsshをしなければいけないことがある。しかし、単純な多段sshには、 毎回順繰りに多段ログインするのは結構めんどくさい scpでいちいち中継サーバーにコピーしていく必要があり、中間サーバーのディスク容量が足りない場合に大きなファイルがコピーできない といった問題がある。 実は、sshには設定ファイルがあり、設定を行うことで、間に何台のサーバーを挟んでいようとも、あたかも直接アクセスしているかのように接続することができるのであるが、世間的にはあまり知られていないようだ。知らないのは非常にもったいないので、簡単に説明しておく。 設定ファイルは~/.ssh/configに

    サルでも分かる多段ssh - 射撃しつつ前転 改
    s5ot
    s5ot 2011/02/28
  • 【Firefox】JSONViewは神拡張【Google Chrome】 - 射撃しつつ前転 改

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

    【Firefox】JSONViewは神拡張【Google Chrome】 - 射撃しつつ前転 改
    s5ot
    s5ot 2011/02/10
  • 言語処理のための機械学習入門を読んだ - 射撃しつつ前転 改

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

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

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

    UnicornでSinatraアプリをデプロイしてみた - 射撃しつつ前転 改
    s5ot
    s5ot 2010/07/08
  • 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で実現できるか - 射撃しつつ前転 改
    s5ot
    s5ot 2010/03/31
  • ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改

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

    ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改
    s5ot
    s5ot 2009/07/28
  • Apacheのmod_proxy_balancerを使うときはretryを設定すべき - 射撃しつつ前転

    今作っているサービスは、Apacheのmod_proxy_balancerを使ってロードバランシングしている。しかし、バックエンドのサービスサーバを一旦落としてから復帰させると、コネクションがしばらくつながらないという問題に悩んでいた。1分ぐらい放置するとつながるようになるんだけど、1分は結構長い。 よくわからないのでソースを読んでみたところ、mod_proxy_balancer.cを眺めた感じ、ap_proxy_retry_workerという関数がコネクションの再確立をしているのではないかと思えた。しかし、関数の定義を眺めてみると、現在時刻がエラー発生時刻とworker->retryを足した数字よりも大きければworkerのstatusからPROXY_WORKER_IN_ERRORのビットを下ろしているだけで、コネクションの確立がどうのこうのなんて関数はまったく呼ばれてない。ここでなにが

    Apacheのmod_proxy_balancerを使うときはretryを設定すべき - 射撃しつつ前転
  • 1