タグ

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

  • 今さら聞けない Immutable Infrastructure - 昼メシ物語

    Immutable (不変な) Infrastructure は、サーバを一度セットアップしたら二度と変更を加えないという運用スタイルのことを指します。 クラウド環境では、必要に応じてすぐにサーバを用意し、不要になったら簡単に破棄することができます。Immutable Infrastructure は、このようなクラウドの特性を活かす運用スタイルとして、注目されつつあります。 背景 Immutable Infrastructure が提唱された背景にある技術として、 Auto Scaling や Blue-Green Deployment*1 などがあります。 Auto Scaling Auto Scaling は、負荷に応じて自動的にサーバ台数を増減させる技術で、 AWS では標準で提供されています。常に必要な台数だけ起動していればいいので、コスト削減になるというものです。 Auto S

    今さら聞けない Immutable Infrastructure - 昼メシ物語
    mitukiii
    mitukiii 2014/09/26
  • 開発合宿をする際の知見 - 昼メシ物語

    数年前から身内で時々集まって開発合宿をしていて、成功失敗あわせて知見が貯まってきたので備忘録として記事にしておきます。 なお、ここで開発合宿と言っているのは1,2部屋に1泊して済ませるような規模のもので、ホワイトボードでブレストしまくりといったものではなくて淡々とみんなでパソコンするみたいなものを想定しています。 宿選び あえてオススメの宿リストみたいなのは書きません。なぜなら開発合宿向けの宿まとめみたいな記事を真に受けて失敗したことがあるので、そのようなリソースをインターネットに増やしたくない。 開発合宿で有名な某旅館は、割安ではあるが無線LANが弱すぎ、温泉はぬるすぎ、メシもいまいちという品質なのに、開発合宿に選ばれがちである。○○旅館に行ってきましたという開発合宿レポートをみんながブログに書くから検索にヒットしてみんなそこに行くみたいになってて、負の連鎖が起こってる。 無線LANより

    開発合宿をする際の知見 - 昼メシ物語
    mitukiii
    mitukiii 2014/05/19
  • ActiveRecordが発行するSQLをフックして色々やるためのライブラリArproxyを公開しました - 昼メシ物語

    https://github.com/cookpad/arproxy http://rubygems.org/gems/arproxy これは何? Arproxyを使うと、ActiveRecordが発行したSQLDB Adapterによって実行される直前をフックすることができます。これによって、カスタマイズしたクエリログを出力したり、どこからクエリが発行されたのかをトレースしたりすることができるようになります。 Arproxyでは、DB Adapterのフック処理を以下のように定義します。これはクエリが実行されるたびにバックトレースを出力する例です。*1 class QueryTracer < Arproxy::Base def execute(sql, name=nil) Rails.logger.debug sql Rails.logger.debug caller(1).join(

    ActiveRecordが発行するSQLをフックして色々やるためのライブラリArproxyを公開しました - 昼メシ物語
    mitukiii
    mitukiii 2014/03/13
  • 1年前の自分と暮らす - 昼メシ物語

    mirakui_retro という twitter BOT を作って、かれこれ5年くらい運用している。 mirakui_retro は 、1年前の mirakui のツイートをツイートするという BOT だ。つまり、 mirakui_retro の以下の発言は、僕がその1年前に発言したものだ。 このインターネット時代に— Issei Naruta (@mirakui) January 21, 2013 ↓1年後 このインターネット時代に— mirakui_retro (@mirakui_retro) January 21, 2014 歴史 2009年頃、友達の間で Twitter BOT を作るのが流行ってて、 Ruby の勉強がてら作ったのがこの mirakui_retro だった。TwitterAPI 仕様で、遡れる発言数には制限があって、僕のツイートのペースだとだいたい3ヶ月前

    1年前の自分と暮らす - 昼メシ物語
    mitukiii
    mitukiii 2014/01/27
  • 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を探す - 昼メシ物語
    mitukiii
    mitukiii 2014/01/13
  • Passenger 4.0 beta1 の新機能解説 - 昼メシ物語

    先日、 Phusion Passenger 4.0 beta 1 が公開されました。 近年は Passenger に代わり Nginx + unicorn の構成が Rails の業界標準になりつつありますが、Passenger 4 は大きく進化したようなので、そのアップデート内容を紹介します。 なお、この記事は 10/24 に公開された Phusion 公式ブログの記事「Phusion Passenger 4.0 beta 1 is here – Phusion Corporate Blog」を要訳したものです。説明をところどころ省いているので、詳しくは原文を参照してください。 What's new? 複数のRubyバージョンのサポート 1サーバで複数のアプリケーションをホストしている場合、アプリケーション毎に違うRubyインタプリタを指定できるようになりました。 イベント駆動 I/O

    Passenger 4.0 beta1 の新機能解説 - 昼メシ物語
    mitukiii
    mitukiii 2012/10/27
  • Rails3.2からログの行が他プロセスのものと混ざるようになった件について - 昼メシ物語

    Rails 3.2.0 から、マルチプロセス環境下(Unicornなど)では、 Rails.logger によるロギングが、以下のように複数のリクエスト同士で「混ざる」ようになってしまいました。 Started GET "/search?q=blip" for 0.0.0.0 at 2012-03-12 02:20:18 -0700 Processing by SiteController#search as / Parameters: {"q"=>"blip"} Started GET "/search?q=2bxen" for 0.0.0.0 at 2012-03-12 02:20:20 -0700 Processing by SiteController#search as / Parameters: {"q"=>"2bxen"} Rendered site/foo.html.erb

    Rails3.2からログの行が他プロセスのものと混ざるようになった件について - 昼メシ物語
    mitukiii
    mitukiii 2012/09/21
  • #RubyKaigi 2011で気になったgem 13選 - 昼メシ物語

    Rubyist達の夏フェスであるところのRubyKaigiが今年も開催され、猛暑の練馬が大いに盛り上がりました。今回が最後の開催とのことで、関係者各位は素晴らしい会議を当にどうもありがとうございました。 さて、今年のRubyKaigi2011での各セッションで紹介されたgemのうち、気になったものをピックアップしてみました。 1. fakeweb fakewebは、指定したURLのHTTPレスポンスを偽装する、テスト用のライブラリ。外部サービスと連携するプログラムのテストを書くにはとても便利ですね。 Engine YardのAndy Delcambre氏による「Toggleable Mocks and Testing Strategies in a Service Oriented Architecture」という発表で紹介されました。 以下、サンプルコードです。(READMEより) F

    #RubyKaigi 2011で気になったgem 13選 - 昼メシ物語
  • 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(差分)を超簡単に調べる方法 - 昼メシ物語
  • 本当は速いImageMagick: サムネイル画像生成を10倍速くする方法 - 昼メシ物語

    一般的に ImageMagick のサムネイル画像生成は遅いとされており、パフォーマンスが求められるシーンでは Imlib2 などのより高速な画像処理ライブラリが使われることが多いです。 Imlib2 の高速さについては、以前「Imlib2でImageMagickより3倍高速かつ美しいサムネイル画像の生成 - 床のトルストイ、ゲイとするとのこと」という記事で紹介しました。この記事のベンチマークにおいて、Imlib2 によるサムネイル画像の生成は、 ImageMagick の3倍程高速でした。 しかし、 ImageMagick は Imlib2 より画質がよく、高機能で使いやすく、今も頻繁にメンテナンスされており、とてもよく出来ています。その点 Imlib2 は、2004年からメンテナンスされておらず、セキュリティホールが見つかっても、各Linuxディストリビューションがそれぞれパッチを当て

  • PosterousのCEO「Webはクソ。ブラウザはマジなんとかしろ」 - 昼メシ物語

    俺も使ってるお手軽日記サービスのPosterous。そのCEO、Sachin Agarwalが書いていた記事がなんとなく面白かったので和訳しました。 元の記事: The web sucks. Browsers need to innovate - Sachin's Space 部分的にかなり意訳したり強調したりしてます。以下文。 Webはクソ。ブラウザはマジなんとかしろ Webはダメダメなプラットフォームだけど、一方iPadは今後もどんどんすげーアプリがどんどん出てくるのは明らかだろう。 Web業界が長年かけて築いてきたWebサイト達よりもいいものを、どうしてiPadは最初のリリースにも関わらず出せてしまうんだろう? 「Webの終わり」を宣言するために、私はこの記事を先週から書き始めた。「Webは死んだ」とまでは言わない。でももう薄氷を踏んでる状態だ。 Webは静的なコンテンツを扱うには

    PosterousのCEO「Webはクソ。ブラウザはマジなんとかしろ」 - 昼メシ物語
  • 1