タグ

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

  • ISUCON5本選で2位でした(白金動物園) - 昼メシ物語

    白金動物園、2位いただきました #isucon @sora_h @rosylilly と3人でチーム「白金動物園」として ISUCON 5 に参加し、選で2位を獲得しました。 主な分担としては sorah と rosylilly の2人が実装をして、僕はインフラまわりの整備と、ログ分析や指示出し、あと二人が喧嘩したら仲裁をするという分担でした。今年は二人が喧嘩しなかったので仲裁役は必要なくて良かったです。 (追記 2015/11/02 14:14)2人の記事が揃ったので以下にリンクしておきます。HTTP/2 まわりのチャレンジなどは彼らの記事に詳しいです。 sorah: ISUCON5 で準優勝してきた #isucon - diary.sorah rosylilly: ISUCON5 で準優勝しました - 鳩舎 やったこと 今回の問題はマイクロサービスがテーマになっていて、運営側が用意し

    ISUCON5本選で2位でした(白金動物園) - 昼メシ物語
    pcod
    pcod 2015/11/02
  • 開発合宿をする際の知見 - 昼メシ物語

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

    開発合宿をする際の知見 - 昼メシ物語
    pcod
    pcod 2014/05/18
  • 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年前の自分と暮らす - 昼メシ物語
    pcod
    pcod 2014/01/26
  • 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を探す - 昼メシ物語
  • 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ディストリビューションがそれぞれパッチを当て

  • Amazon EC2インスタンスに簡単にSSHできるようになるツールec2sshを公開しました - 昼メシ物語

    みんなが大好きなクラウドホスティングサービスのAmazon EC2ですが、インスタンスをバンバン立てたり落としたりしていると、ホスト名の管理が面倒になってきますよね。たとえば「さっき立てたインスタンスにSSHしたい!」と思ったら、consoleをひらいて、「ec2-xxx-xxx-xxx-xxx.compute.us-west-1.compute.amazonaws.com」なPublicDNSをターミナルにコピペして…みたいな面倒な事をやってしまいがちです。 これを避けるためには、~/.ssh/configをマメに更新したりするといいのですが、これはなかなか面倒な作業です。インスタンスは一旦StopしてRunし直すと、IPが変わってしまいますからね。 そこでec2sshの登場です ec2sshは、インスタンスのNameタグからホスト名を生成して、~/.ssh/configに書きこむツール

    Amazon EC2インスタンスに簡単にSSHできるようになるツールec2sshを公開しました - 昼メシ物語
    pcod
    pcod 2010/12/05
  • query_trace: SQLが発行されたファイルと行番号を調べる - 昼メシ物語

    Railsで、ActiveRecordがSQLのログを吐いてくれるんですが、これだとどのクエリがどこから呼ばれたのか分からなくて、デバッグがしにくい。 Schedule Load (0.023687) SELECT * FROM schedules WHERE (schedules.id = 3) LIMIT 1 Resource Load (0.001076) SELECT * FROM resources WHERE (resources.id = 328) LIMIT 1 Schedule Load (0.011488) SELECT * FROM schedules WHERE (schedules.id = 3) LIMIT 1 Resource Load (0.022471) SELECT * FROM resources WHERE (resources.id = 328)

    query_trace: SQLが発行されたファイルと行番号を調べる - 昼メシ物語
  • ruby-profとKCacheGrindでプロファイル野郎になる - 昼メシ物語

    速さが足りない!!!!! そんな時はプロファイリングの時間ですね。 Rubyには標準添付ライブラリとして profile というプロファイラがついてくる。でもこのライブラリはあまりに遅すぎて実用に耐えないから、多分誰も使っていない。ほとんどのRubyistは ruby-prof を使っていることだろう。 今回はこの ruby-prof を使って Ruby プログラムのプロファイリングする方法を紹介する。 計測する(ruby-prof) ruby-profはrubygemsで簡単に入る。 $ gem install ruby-profruby-profというコマンドラインツールがインストールされる。これを使うと、プログラムを変更することなく手軽にプロファイリングを行うことができる。ruby-profコマンドのusageは以下のとおり。 ruby_prof 0.9.2 Usage: ruby_

    ruby-profとKCacheGrindでプロファイル野郎になる - 昼メシ物語
  • Imlib2でImageMagickより3倍高速かつ美しいサムネイル画像の生成 - 昼メシ物語

    この記事の概要 Imlib2を使って画像のサムネイルを生成してみたところ、ImageMagickより3倍速かった。 また一般的には、Imlib2の方が画質が悪いとされているが、パラメータを調整することで、十分に美しいサムネイル画像を得ることができた。 はじめに Imlib2は画像処理ライブラリ。mixiの発表資料大規模画像配信とPerl によれば、mixiは高速に高品質なサムネイルを生成するために、ImageMagickでなくImlib2を選んでいる。 上記資料の中では、以下のように説明されている。 速度 Epeg > Imlib2 > Imager >>> ImageMagick 画質 ImageMagick > Imlib2 >>> EpegImlibの画質は多少ImageMagickに劣るが、速度は十分に速い、とのこと。 一方で、404 Not Foundという記事では、ImageM

  • 転職しました - 昼メシ物語

    2008年4月の入社以来2年間勤めてきたヤフー株式会社を退職いたしました。 たった2年間で何が分かるのかと思われるかもしれませんが、この2年間は自分にとって大変に刺激的で、人生の中でもとても重要な体験をすることができた2年間でした。 来ならその経験を、それを施してくれた会社に還元していかなければならないことは理解しています。ですが、僕の思ったよりもずっとずっと早く、時が来てしまいました。 会社では、多くの人に出会い、知り合うことができました。先輩方、後輩たち、同期たち、そして僕の所属していたチームの皆さん。多くの皆さんと触れ合ったことで、エンジニアとして、そして人間として、一皮も二皮もむけて成長することができたと感じています。 僕は会社を辞めてしまいますが、今後も飲み会で、勉強会で、合宿で、僕の愛してやまない皆さんと会えると信じています。 お昼に会社を後にし、夜に控える送別会を六

    転職しました - 昼メシ物語
  • 掃除屋歴7年の俺がしつこい汚れの落し方を教えるよ - 床のトルストイ、ゲイとするとのこと

    (2009/12/31 追記あり) 学生時代にホームクリーニングのバイトを7年間やっていたので、大抵の汚れなら落し方分かります。このあいだ #pandacleaning というハッシュタグで掃除の仕方を淡々とつぶやいていたら評判がよかったので、ここらでまとめておくよ。 参考: mirakui によるパンダ掃除相談室 #pandacleaning - Togetter 掃除のために絶対に用意しなければならないもの 雑巾 すべての掃除に雑巾は必須です。雑巾はいくらあってもいいです。買ってくる必要はなくて、ボロくなったタオルを使うと良いです。縫ったりする必要はないです。ちなみに、プロの間では、上級者ほど雑巾の使い方がうまいです。雑巾が汚れる→交換する→時間のロス につながるので、ベテランの職人ほど一枚の雑巾で沢山の汚れを見事に拭き取ります。 バケツ 雑巾とバケツは常にセットです。バケツなしに水拭

    掃除屋歴7年の俺がしつこい汚れの落し方を教えるよ - 床のトルストイ、ゲイとするとのこと
    pcod
    pcod 2009/12/31
  • 各言語における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まとめ - 昼メシ物語
    pcod
    pcod 2009/06/06
    phpやばい
  • 1