タグ

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

  • 私がクックパッドの画像配信野郎です - 昼メシ物語

    一年ほど前にヤフーを退職した私ですが、その後なにをやっているかというと、クックパッドに入社して画像配信をしています。私が入社する前から動いていた画像配信の仕組みは設計が古くてなにかと困っていたので、より良いシステムを開発してリプレースというのをやっています。前職ではなかなかこういう基盤システムを一人でイチから作って運用までするという体験はできなかったので、でかい仕事をできるチャンスに恵まれて大変充実した毎日です。 入社当初はサービス開発の担当だったんですが、開発に必要な基盤システムを作り始めたらどんどんエンジニアリングのレイヤーが下がってきて、気づけばインフラチームに所属していました。 まあそんな話はさておき、この画像配信関連の成果をいくつかの勉強会で発表したので、その資料を紹介します。 サイバーエージェントxクックパッド合同勉強会(amepad) 弊社オフィスで開催された、サイバーエージ

    私がクックパッドの画像配信野郎です - 昼メシ物語
  • 今さら聞けない Immutable Infrastructure - 昼メシ物語

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

    今さら聞けない Immutable Infrastructure - 昼メシ物語
  • 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 - 昼メシ物語
  • 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を探す - 昼メシ物語
  • S3のダウンロード速度を1.5〜4.5倍高速化する怪しげな方法 - 昼メシ物語

    バケットのIPアドレスを適切なものに固定することで、期待値でいうと1.5倍、最大で4.5倍程度高速にダウンロードできます。 この方法は非常に効果が高いですが、非公式なものであり、ある日突然破綻する可能性もありますので自己責任でお願いします。 S3のバケットとエンドポイント まずは前提知識として、S3の名前解決について説明します。 S3のバケット "mybucket" というバケットを東京リージョンに持っているとします。するとそのバケットのドメイン名は mybucket.s3.amazonaws.comになります。これをエンドポイントと呼びます。このバケットの中にあるファイル "hello.txt" にアクセスする場合には、 http(s)://mybucket.s3.amazonaws.com/hello.txtというようなURLを用います。*1 エンドポイントのIPアドレス この myb

    S3のダウンロード速度を1.5〜4.5倍高速化する怪しげな方法 - 昼メシ物語
  • 各言語における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まとめ - 昼メシ物語
  • 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はクソ。ブラウザはマジなんとかしろ」 - 昼メシ物語
  • 本当は速いImageMagick: サムネイル画像生成を10倍速くする方法 - 昼メシ物語

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

  • 1