タグ

ブックマーク / elm200.hatenadiary.org (6)

  • Twitter 社採用面接受験記 - elm200 の日記(旧はてなダイアリー)

    1ヶ月ほどまえに、私はシリコンバレーを訪れたのだが、そのときサンフランシスコの社で Twitter の採用面接を受けてきた。結果は残念、ということだったのだが、その経緯について書いてみようと思う。 なぜ Twitter 社の面接を受けたのか。7月の終わりころ、私はシリコンバレーで働くにはどうすべきなのか、ということについて頭を悩ませていた。考えながらぼうっと Twitter のタイムラインを眺めていたのだが、Twitter が日エンジニアを求人しているという情報が飛び込んできた。おお〜、と思って軽い気持ちで職務経歴書を Twitter に送ってみたのだ。 相当数の人たちが職務経歴書を送ったはずだし、私は書類選考で落とされると高をくくっていた。ところが、数日してTwitter の人事担当者からメールがあり、電話面接をやるからいつがいいか?という。まさかの展開に私はやや慌てた。電話面接を

    Twitter 社採用面接受験記 - elm200 の日記(旧はてなダイアリー)
  • 安全なログローテーション - elm200 の日記(旧はてなダイアリー)

    ログローテーションの落とし穴 Rails でのデフォルトのロガーは、Ruby 標準添付の Logger クラスを少し変えたものである。ログのサイズが大きくなったとき、サイズやら日付やらを基準にログのアーカイブ化を行う(ログローテーション)することが多い。一番簡単な方法は Developmentモードのログを日毎にローテートする みたいなやり方だ。しかし、複数の Ruby インスタンスがひとつのログファイルを共有すると、うまく動かないのだ。典型的なのは Mongrel Cluster で複数の Rails インスタンスを運用している状況だ。ログローテーションが起こった直後から、"Status: 500 Internal Server Error" というエラーメッセージを吐いて Rails アプリが動かなくなってしまう。 これは、Logger がローテーション時に、 現行のログファイルをアー

    安全なログローテーション - elm200 の日記(旧はてなダイアリー)
  • Ruby-GetText の導入 - elm200 の日記(旧はてなダイアリー)

    趣旨 私の心はいまだに ActiveHeart にはあるものの、世の中の趨勢はどうやら Ruby-GetText に傾きつつある模様。一念発起して Ruby-GetText を使ってみた。 とりあえずやりたいことは、 フォームの Vaildation 時のエラーメッセージの日語化 (カラム名の日語化を含む) である。この目標達成に絞って考える。 Thanks to these websites ネタ元のサイトに感謝の意を表しつつ。 Rails のためのものぐさな Web アプリケーションの国際化手法 私のような怠け者にはぴったり。 Ruby-GetText ご家 包括的である分、初心者にはいささかとっつきにくいかも。 Ruby-GetText の導入 % sudo gem install gettextこれで OK。他にパッケージは特に必要ないようだ。Ruby-GetText はバイ

    Ruby-GetText の導入 - elm200 の日記(旧はてなダイアリー)
  • 現在のコンテキストで使用可能なメソッドの一覧 - elm200 の日記(旧はてなダイアリー)

    昨日も書いたけれども、Rails でコードを書いていてイヤになるのは、Ruby の動的な性格から、いま self が何で、使用可能なメソッド名は何かということがわかりずらいということである。 そんなときこんなふうにしてみるといいかもしれない。 logger.debug "self = " + self.inspect logger.debug "methods = \n" + self.methods.collect { |m| self.method(m).inspect }.sort.join("\n") (標準出力に出力するなら、logger.debug の代わりに puts でもよい) このコードをコントローラ・ビュー・テストなど、コンテキストを知りたい場所に挿入しておく。 いまテストでどんなアサーションが使えるか知りたかったので、テストコードのなかで実行してみた。すると、 sel

    現在のコンテキストで使用可能なメソッドの一覧 - elm200 の日記(旧はてなダイアリー)
  • functional test をめぐる冒険 - elm200 の日記(旧はてなダイアリー)

    趣旨 自動テストは重要だ。この主張に真っ向から異を唱えるひとは多くないだろう。 だが実際には、テストを書くのはいささか面倒だ。特にコントローラのテスト(functional test) に苦手意識を持っている人は多いのではないか。post やら get やらいろんなメソッドが前触れもなく出てくるコントローラのテストは、モデルのテスト(unit test) に比べると「ワケわからん」感が強い。そこで今日は、functional test の仕組みについてしつこく探究してみる。仕組みを理解しないと、コントローラのテストは書きづらいと思うからだ。 functional test の例 簡単なブログエンジンを作るとしよう。 Entry(ブログ記事) というモデルを考えて、それを CRUD するコントローラとビューの足場(scaffold) を作る。 % rails -d sqlite3 blog_

    functional test をめぐる冒険 - elm200 の日記(旧はてなダイアリー)
  • ログにタイムスタンプを追加する - elm200 の日記(旧はてなダイアリー)

    Rails のログ(development.log / test.log / production.log) は使いやすいが、なぜかログにタイムスタンプが吐き出されない。どうしてだろうと、つらつらと Rails のソースコードを眺めてみた。やはり ActiveSupport の clean_logger.rb でわざわざ時刻もなにも出力されないようにメソッドが上書きされていた。 そこで、タイムスタンプをログに出力するための hack。 # lib/logger_with_timestamp.rb class Logger private if method_defined?(:formatter=) def format_message_with_datetime(severity, timestamp, progname, msg) app_format_message(msg) end

    ログにタイムスタンプを追加する - elm200 の日記(旧はてなダイアリー)
  • 1