タグ

ブックマーク / blog.mirakui.com (8)

  • Railsで遅いMiddlewareを探す - 昼メシ物語

    AさんはRailsで書かれたある遅いコードの検証をしていました。 X-Runtimeヘッダを見ると $ curl -Is localhost:3000/hello | grep X-Runtime X-Runtime: 5.008580 5秒もかかってる。 しかしRailsのログを見ると Started HEAD "/hello" for 127.0.0.1 at Tue Apr 03 13:04:11 +0900 2012 Processing by HelloController#index as */* Rendered text template (0.0ms) Completed 200 OK in 10ms (Views: 9.7ms) こんな感じで10msで返していることになっている。なんだこれは? こういう状況で疑わしいことの一つとして、Rack等のMiddlewareのど

    Railsで遅いMiddlewareを探す - 昼メシ物語
  • 不要なメルマガ広告はspamフォルダではなく配信拒否(オプトアウト)しましょう - 昼メシ物語

    一般にspamと呼ばれる電子メールには2種類あります。オプトイン(配信承諾)して受け取ったメールと、オプトインしてないのに届いたメールです。 この記事は、インターネット全体の利益を考えるなら、オプトインして受け取ったメール広告を迷惑に感じたら、spamフォルダに入れて放置するのではなく、配信拒否(オプトアウト)するべきであることを促すものです。 (追記:なお、お肉のほうのスパムは大文字のSPAMで、迷惑メールのほうは小文字でspamと書くそうです。コメントありがとうございます) オプトインとオプトアウト あなたがメールを受け取る意思を表明することを、オプトインと呼びます。 反対に、「このメールは受けとりたくない!」という意思を表明することを、オプトアウトと呼びます。 例えば、楽天などのネットショップで買い物をした時に、「メールマガジンに登録する」というチェックボックスがあったとします。これ

    不要なメルマガ広告はspamフォルダではなく配信拒否(オプトアウト)しましょう - 昼メシ物語
  • RubyでGmailからIMAP経由で未読メールを取得する - 昼メシ物語

    twitterのフォロー通知メールとか、Amazonの発送通知メールとか、そういうメールを受け取ったらその内容に応じていろいろ処理したい時ってありますよね。 でもまあ、今時個人でメールサーバ立てるのなんて流行らないですし、自由にprocmailを仕込むわけにもいかないですよね。というわけでGmailのIMAPを使いましょう。 rubyで書くとこんな感じ。 require 'rubygems' require 'net/imap' require 'kconv' require 'pit' require 'logger' class ImapFetcher def initialize(pit_name) @pit = Pit.get( pit_name, :require=>{ 'host'=>'imap.gmail.com', 'port'=>993, 'use_ssl'=>'true

    RubyでGmailからIMAP経由で未読メールを取得する - 昼メシ物語
  • gem管理の新標準ツール"Bundler"のTips - 昼メシ物語

    Bundlerは、rubygemsのラッパーです。Rails3のgem管理に採用されています。 Bundlerを使うことで、 このgem、手元にはインストールされているのに、番環境にインストールされてない! 開発環境にgemを入れまくったら、プロジェクトにどのgemが必要なのか分からなくなった! みたいな問題を解決できます。 詳しくは公式サイトをご覧ください。 今日はそんなBundlerについて色々分かってきたので、Tipsをいくつか紹介したいと思います。 前提知識 この記事は、このへんが理解出来ていることが前提です。 Bundler: The best way to manage Ruby applications Rubygems に /usr/bin を触らせないためには gem をユーザーディレクトリで運用する++ - きたももんががきたん。 Bundlerは1.0系以降を使おう

    gem管理の新標準ツール"Bundler"のTips - 昼メシ物語
  • 2枚の画像のdiff(差分)を超簡単に調べる方法 - 昼メシ物語

    Githubで画像の差分を見られるモードが話題を呼びましたが、このように2枚の画像の差分を調べたいときって時々ありますよね。 そんなときImageMagickのコマンドラインツールを使えば、たった1行で実現できます。 $ composite -compose difference A.jpg B.jpg diff.jpg とすれば、A.jpg と B.jpg の差分画像 diff.jpg が作られます。この差分画像は以下のようになります。 さらにこの差分画像(diff.jpg)が「真っ黒な画像」かどうかも、コマンドラインで調べることができます。 # 差分がなかった場合(=diff.jpgは黒一色の画像) $ identify -format "%[mean]" diff.jpg 0 # 差分があった場合 $ identify -format "%[mean]" diff.jpg 960.8

    2枚の画像のdiff(差分)を超簡単に調べる方法 - 昼メシ物語
  • スピリチュアルエンジニアリング入門 - 昼メシ物語

    先日 hack05 というイベントで LT をしたので、そのときの資料をまとめておきます。 スピリチュアル エンジニアリングとは システム開発・運用にスピリチュアル要素を取り入れることでシステム安定化を目指します。 皆さんご存知の通り、人間の技術力には限界があり、予測不能な事故(バグ)はまさに、神の領域といえます。 そこで「ジンクス」「縁起かつぎ」「妖精さん」などの力を借りることで、人間の手ではどうしようもない事態を回避するというのがこのスピリチュアルエンジニアリングです。 スピリチュアルエンジニアリングの基原理 スピリチュアルエンジニアリングの基は「祈り」にあります。「絶対に動く」という祈りの強さがよりよいコードをもたらします。 スピリチュアルはすべてのエンジニアの身近に! 以下に当てはまる人がいたら、あなたも立派なスピリチュアルエンジニア! コーディング中に神が降りてきたと思う瞬間

    スピリチュアルエンジニアリング入門 - 昼メシ物語
  • PHPでレスポンスを出力した後に処理を続ける方法 - 昼メシ物語

    確かこんな感じ。 <?php // コネクションが切れても処理を続ける ignore_user_abort(true); $out = "\r\n"; $url = 'http://example.com/hogehoge'; // 適当なURL header('Content-Length: '.length($out)); header('Location: '.$url); echo $out; /* この時点でコネクション終了 */ // なんか適当に1000秒くらい。1000秒で以下の処理が終わらなければ中断 set_time_out(1000); /* ここに処理を書く */ ignore_user_abort(true); で、レスポンス後にも処理を続けられるようにする 適当なURLにリダイレクト←多分この辺でコネクション切れる やっちまえ!!! なんかリダイレクトしないとう

    PHPでレスポンスを出力した後に処理を続ける方法 - 昼メシ物語
    akkun_choi
    akkun_choi 2009/06/05
    またphpの無駄な知識がひとつ増えた
  • 各言語におけるtrue/falseまとめ - 昼メシ物語

    たとえば PHP で、 if ($hoge) { ... } とか書いてあったら、 $hoge がどんな値のときに if の中身が実行されるのか即答できますか。 こういう書き方は多くの言語で可能ですが、言語によって何が真で何が偽になるのかが異なるので、それぞれまとめてみました。 C言語 C言語には bool 型が無い。 0 (int) だけが偽となり、それ以外はすべて真となる。 NULL 定数は stddef.h で以下のように ((void*)0) と定義されているため、偽値として使える。 意見が分かれそうなところですが、個人的にはNULLを偽値として使用するは好きじゃないです。 #ifndef __cplsuplus #define NULL ((void*)0) #else #define NULL __null #endif C++ C++になると bool 型が出てくる。C と同

    各言語におけるtrue/falseまとめ - 昼メシ物語
  • 1