タグ

ブックマーク / wazanova.jp (81)

  • Githubの組織が成長する過程で変えたことと変えなかったこと - ワザノバ | wazanova

    GithubのZach Holmanが語るGithubの組織戦略です。まず最初に、 Step #1: ロックスターエンジニアを雇う Step #2: ものすごく透明性のある経営をする Step #3: ブログ/ソーシャルメディアなどでテクノノロジーについて発信する Step #4: カンファレンスで会社について話す Step #5: カネに余裕ができる Step #6: 社員を大勢雇う Step #7: 会社のことを話さなくなる Step #8: コミュニティを無視する Step #9: 創業者が株を売って儲ける Step #10: 別の会社をはじめる という事例を挙げて、Githubは組織が成長する中で、このようなパターンに陥らないように、コミュニケーション及び仕事の進め方をどのように進化させてきたかについて紹介してます。 Dunbar's numberとしてよく知られるとおり、人間が良

    ryshinoz
    ryshinoz 2013/11/20
  • Steve Sounders: webを快適にするためのPrebrowsing - ワザノバ | wazanova.jp

    http://www.stevesouders.com/blog/2013/11/07/prebrowsing/ Steve Soundersが自らのブログで、Prebrowsing (= Predictive browsing: 予想するブラウジング)を有効に活用する方法を紹介しています。 1) なぜPrebrowsingが必要になるのか? キャッシュを頼りにできないパターンはそれなりにある。 同じサイトに連続してアクセスしたときはキャッシュできるが、最初にアクセスしたときはキャッシュされない。 アンチウイルスソフトやブラウザのバグでキャッシュはクリアーされる。 他のサイトにアクセスしたとき、そのリソースが場所を確保するために、既存のキャッシュデータを消す場合がある。 69%のサイトはキャッシュヘッダーがないか、1日以内にキャッシュが無効になる。 次に同じサイトに訪問したときにはサイトが

    ryshinoz
    ryshinoz 2013/11/11
  • Valve: ハンドブックで新入社員を迎える - ワザノバ | wazanova.jp

    http://www.valvesoftware.com/company/Valve_Handbook_LowRes.pdf Valveは、PCゲームプラットフォームSteamを運営し、先日、TV向けのゲームコントローラ(紹介ビデオ)も発表して話題になってました。 昨日のエントリー「Treehouse: 当にフラット、つまりマネージャーがいなくなった会社。そして個の時代がくるのか?」で、TreehouseのCEOのRyan Carsonがフラットカンパニーのコンセプトを導入するにあたり参考としたという、Valveの新入社員向けのハンドブックを一読してみました。 …Valve is flat…..we don’t have any management, and nobody ” reports to” anybody else…..we do have a Founder/Preside

    ryshinoz
    ryshinoz 2013/11/09
  • AngularJSのチューニング - ワザノバ | wazanova.jp

    http://blog.scalyr.com/2013/10/31/angularjs-1200ms-to-35ms/ モニタリング/ログ分析ツールのScalyrがそのブログで、AngularJSをチューニングしてページの更新時間を短縮した事例を紹介してます。成果は近日中にオープンソースとして提供される予定です。 1) 背景 Scalyr Logsアプリにおいて、DBクエリは数十 msで処理できるが、ページの読み込み時間で数秒かかってしまう状況であった。シングルページアプリを実現するためのフレームワークとしてAngularJSを採用。”fail fast” (失敗するなら早めに)の方針のもと、難易度の高いログビューからつくることにした。 Scalyr Logsのページに表示されたログデータのどの単語をクリックしても、その検索結果を表示。(サンプル画面 / デモ画面)次ページのログデータも事

    ryshinoz
    ryshinoz 2013/11/06
  • Airbnb: Chefをどう使いこなしているか - ワザノバ | wazanova.jp

    http://nerds.airbnb.com/making-breakfast-chef-airbnb/ Airbnbが社内でのchefの利用事例について、かなり細かめに紹介してくれてます。 1) 背景 Airbnbは動的なコード環境にある。Amazon EC2のバーチャルマシン上で動くサービスが組み合わさってサイトが構成されている。 昨年、EC2のインスタンスを立上げ & 設定をするCloudMakerをオープンソースで提供し、従前の手動作業からは相当効率化したが、YAMLの設定を全て希望するかたちにはできなかったので、S3に複雑なバージョンのシェルスクリプトツリーができて、メンテナンスが難しくなった。 そこで、2012年2月からChefへの統合を開始。OpscodeのホスティングChefを利用し、数週間で共通設定項目についての移行が完了し、番稼働した。しかし、Chefユーザが増える

    ryshinoz
    ryshinoz 2013/11/06
  • Quora: 新しい社員の迎え方について - ワザノバ | wazanova.jp

    http://www.quora.com/Quora-company/What-is-the-on-boarding-process-for-new-engineers-at-Quora スタートアップだと新しい社員を採用したときに、面接までで手一杯で、受け入れ態勢を当日までに用意するのが大変だったりします。「xxさんは今週から入社じゃない?」と気づき、大慌てでPCやソフトの準備をすることもままありました。そして間に合わないという失態もしました。。 数年前の話しですが、Quoraはまだ創業間もないのに、新しい社員を迎え入れる体制がしっかりしていて、エンジニアは、ロゴ入りグッズもらって、hardware/softwareは当然揃っていて、ウェルカムランチをへて、必ず初日に番アップまで経験できるような仕組みになってたと記憶してます。事業の成功を担保するためのせっかくの新戦力なので、優先順位は

    ryshinoz
    ryshinoz 2013/11/06
  • Twilio: HTTPリクエストを磨く - ワザノバ | wazanova.jp

    https://www.twilio.com/engineering/2013/11/04/http-client スマホアプリ <-> サーバ間や、サーバ <-> 3rd partyツール間でHTTPリクエストを送ることは一般化してますが、その性能をあげるための工夫を、Twilioがエンジニアブログで紹介してます。 サーバの様々なHTTPポートに接続し、エラーパターンをシミュレートして、クライアント側が適切にハンドリングしているかどうか確認するライブラリが、Githubで公開されてます。 1) コネクションエラー サーバが遠隔にあるマシンに接続できない場合、HTTPリクエストが完了しないのでConnectionErrorが返ってくるだけで具体的な理由はわからない。 ここでまずできることは、タイムアウトの設定。connect () は通常即座に完了するか、失敗するかのどちらか。Twilio

    ryshinoz
    ryshinoz 2013/11/05
  • 関数型プログラミング言語のまとめ - ワザノバ | wazanova.jp

    http://funceng.com/2013/11/03/review-of-functional-languages/ Kevin Buellがブログの一連のエントリーで関数型プログラミング言語の概要をまとめています。 1) Haskell ラテン語がわかる人には親しみやすい。 [Background] 遅延評価の研究成果をとりまとめる委員会が1990年にHaskell 1.0の仕様をつくった。コンパイラはGlasgow Haskell Compiler (GHC)が最も有名。Haskellに関する研究はMicrosoft Researchで盛ん。.NETのための関数型言語であるF#もMicrosoft Researchの成果であるが、別の研究者グループの手により後年世にでてきた。 その他の項目は原文参照ください。 [Comparative Description] [Syntax H

    ryshinoz
    ryshinoz 2013/11/04
  • Groupon: 単一のRailsアプリから複数のNode.jsアプリへの移行 - ワザノバ | wazanova.jp

    https://engineering.groupon.com/2013/misc/i-tier-dismantling-the-monoliths/ Grouponのビジネス自体はかつての盛り上がりはないですが、シンプルなRailsアプリが、事業の成長 & グローバル化に従って、アーキテクチャを変えていった過程をエンジニアブログで紹介してるので、参考になればと。 1) まとめ Grouponは、Railsのシングルコードベースを独立した20個のNode.jsアプリにアーキテクチャを変更した。 ページの読み込み時間が概ね50%改善。これはテクノロジーの効果とコードの書き直しでwebページが軽くなったのとの相乗効果。 同じトラッフィクに対してハードウェアが削減できた。 チーム間の依存関係が少なくなったので、新機能リリースのペースが早くなった 同じ機能を複数の国にそれぞれ導入するような冗長さが

    ryshinoz
    ryshinoz 2013/10/31
  • RubyとPythonの違いからガベージコレクタを理解する - ワザノバ | wazanova.jp

    http://patshaughnessy.net/2013/10/24/visualizing-garbage-collection-in-ruby-and-python Pat Shaughnessyが、ブタペストで開催されたRUPY2013でのプレゼンの前半を自らのブログで紹介しています。 ガベージコレクタは、「ゴミを集める」という行為だけでなく、「新しいオブジェクトのためにメモリをあてがう。」「不要なオブジェクトを見つける」「不要なオブジェクトからメモリを取り戻す。」という、人間の心臓が血液を浄化するような働きをしている。 この簡単なコードサンプルを見ると、RubyPythonの記述はよく似ているが、それぞれの言語の内部でのインプリの仕組みは違う。 1) Rubyのメモリ Rubyは、コードが実行される前に、数千のオブジェクトを先につくり、それをリンクされたfree listに置

    ryshinoz
    ryshinoz 2013/10/28
  • Facebook: MySQL Pool Scannerでの徹底した自動化 - ワザノバ | wazanova.jp

    https://www.facebook.com/notes/facebook-engineering/under-the-hood-mysql-pool-scanner-mps/10151750529723920 Facebookがエンジニアブログで、MySQLの運用を自動化している事例を紹介しています。このレベルまでくると、意思をもった大規模なロボット群みたいで、すごいですね。前半はマスタ/スレーブの基的な自動化の話ですが、後半ではオペレーションの自動化ロジックをどのように自動化して増やすかという手法まで言及してます。 FacebookのMySQL DBクラスタは、2つの大陸にまたがる複数のデータセンタにある数千台のサーバで構成されている。通常、DBアドミンが担当するルーティーンワークは、MySQL Pool Scanner (MPS) で自動化されている。 1) DBノードを詳しく

    ryshinoz
    ryshinoz 2013/10/23
  • Flickr: RedisをMySQLのセカンダリインデックスにする - ワザノバ | wazanova.jp

    http://code.flickr.net/2013/03/26/using-redis-as-a-secondary-index-for-mysql/ Flickrエンジニアブログで、Redisを利用したDBクエリ最適化の事例を紹介しています。 1) 背景 Yahoo.comのサイトの右側に、直近でアクティブなFlickrコンタクトの写真が10枚掲載 [例] されます。 Yahoo.comのトップページのサイトパフォーマンスを担保するため、このAPIはかなり厳しめのSLA (Service Leve Agreement) が課せられてます。直近に写真をアップロードしたアクティブなユーザのリスト作成の際、コンタクト数が多いユーザが存在すると、SLAを守るパフォーマンスがだせないため、クエリとMySQLのインデックスを改善する必要がでてきた。 2) 最初の試み 直近のコンタクトデータを非

    ryshinoz
    ryshinoz 2013/10/23
  • Karma: JavaScriptテスト実行ツール - ワザノバ | wazanova.jp

    http://www.youtube.com/watch?v=MVw8N3hTfCI 「AngularJSの設計思想」の元ネタVideoの中で、GoogleのBrad GreenがJavaScriptのTest実行ツールKarmaを絶賛していたので、調べてみました。 Node.jsで開発されたJavaScriptテスト実行ツール テストの実行スピードが早い。また、ファイルがセーブされたり、変更があったりすれば、Karmaが検知して自動でテストを実行する。テキストエディタとブラウザをいったりきたりする必要がない。 実機ブラウザもしくはヘッドレスブラウザPhantomJSでテストできる。一度に複数のクライアントで実行できる。ブラウザを立上げ、キャプチャをとり、閉じるまで全て自動。結果をまとめて開発者に知らせてくれる。 コマンドラインもしくはIDEで操作 Jasmine, Mocha, QUni

    ryshinoz
    ryshinoz 2013/10/17
  • RubyプログラマーがRubyのためにできるのは他の言語を学んで戻ってくること [GoGaRuCo 2013] - ワザノバ | wazanova.jp

    [Video] http://www.youtube.com/watch?v=tlSFBGCaAwM Sarah Meiの講演の原題は、「なぜRubyは勝てないのか?」ですが、結論としては他の言語を学ぶ重要性を説いてます。 Rails1.0以降、Rubyに対する不安はHacker Newsのネタに随分なってきた。Hacker Newsのコメントは単に汚らしいものが多いから無視するとしても、どうすればRubyを使うように皆を説得できるだろうか? エンジニアが新しいプログラミング言語を評価するときは、無意識に既に使っている言語と同じふるまいを期待している。自分自身もJavaからRubyに転向したときには、最初の1ヶ月、loopを使ってJavaコードのようなRubyを書いていた。 それ以外にも、どれだけ多くの人のそのプログラミング言語を使っているかという影響が大きい。SmallTalkが言語とし

    ryshinoz
    ryshinoz 2013/10/16
  • Etsy: サイトパフォーマンスの定期報告 - ワザノバ | wazanova.jp

    http://codeascraft.com/2013/10/14/september-2013-site-performance-report/ Etsyが四半期に一度のサイトパフォーマンスのレポートを発表してます。 1) サーバサイドパフォーマンス [グラフ] 9/18時点での主要各ページにおけるログインユーザのロード時間の中央値と、下位5%に位置する(もし全員で100人の場合は95人目)ユーザの値です。 データに大きな変化はなし。中央値が、62ms〜334msと、そこそこ良い水準にあるので、数値が悪化させないことだけに注力し、若干のコード変更をしたのみ。 2) シミュレーション基準のフロントエンドパフォーマンス [グラフ] WebPageTestのプライベートインスタンスを利用して計測。DSLコネクションで、IE8 / IE9 / Firefox / Chromeが対象。24時間計測

    ryshinoz
    ryshinoz 2013/10/16
  • ダブルMVCの意味するところ [GoGaRuCo 2013] - ワザノバ | wazanova.jp

    [Video] http://www.youtube.com/watch?v=s1dhXamEAKQ TildのYehuda KatzのGolden Gate Ruby Conference 2013での講演。 Ruby on RailsのクリエーターであるDavid Heinemeier Hanssonが、「JavaScript勢はダブルMVCで苦しんでいる。サーバとクライアント両方にMVCが必要で複雑すぎる。」とTwitterで発言したのに対して、Yehudaは、それでは誤解を与えると危惧し、GUIプログラミングが歴史的にどのようにMVCに発展してきたかを紹介することで、ダブルMVCが当に意味するところを解説しています。 DHHの発言は、盛り上がってきたMeteor / Node.js勢に対する単なる批判っぽいですが、それに対してYehudaはロジカルに話をまとめてます。 スライドを

    ryshinoz
    ryshinoz 2013/10/15
  • AngularJSの設計思想 [Google I/O 2013] - ワザノバ | wazanova.jp

    [Video] https://www.youtube.com/watch?v=HCR7i5F5L8c AngularJSのHype (盛り上がり感)があるようなので、GoogleのMisko HeveryとBrad GreenがGoogle I/O 2013でAngularJSの設計思想について語っているのを紹介します。 アプリ開発は、雛形構文(ボイラープレート)を利用しながらデータをブラウザとDBの間でやりとりさせるのが中心で、気づいてみると同じ雛形構文を書く作業をかなり繰り返している。コードを書いてる時間よりもコードを読んでいる方に時間がとられることも多い。この雛形構文を使った作業を極力減らして、アプリに付加価値をもたらすコーディング作業だけを抽出したいと思った。 コーディング作業が効率的になる構造が欲しかった。 フレームワークにテストを組み込むが、フレームワーク自身をきっちりテスト

    ryshinoz
    ryshinoz 2013/10/15
  • Discourse : パフォーマンス向上に注力したRubyアプリづくり [GoGaRuCo 2013] - ワザノバ | wazanova.jp

    [Video] http://www.youtube.com/watch?v=LWyEWUD-ztQ Discourseは、StackoverflowのFounderであり、ブログCoding Horrorで知られるJeff Atwoodの新しいプロジェクトです。.NETベースのStackoverflowをつくったJeffがはじめてRubyのカンファレンスに登場です。冒頭の5分だけ出演していて、相変わらず面白い内容ですが、ちょっと文字にするのがはばかられる内容もあるので、Videoの方をご覧ください。 Jeffに続いて、Sam Saffron (同じくStackoverflow -> Discourse) が、RubyベースのディスカッションフォーラムのオープンソースプロジェクトであるDiscourseでの実例をもとに、エンジニアはアプリのパフォーマンスチューニングにもっと注力しようと語っ

    ryshinoz
    ryshinoz 2013/10/11
  • Node.jsをサーバサイドのUIレイヤに限定するのか? - ワザノバ | wazanova.jp

    http://www.nczonline.net/blog/2013/10/07/node-js-and-the-new-web-front-end/ Nicholas ZakasはYahoo出身で現在Boxに勤めるフロントエンジニアで、JavaScriptに関する複数のオライリーの著者でもあります。彼が自身のブログで、Node.jsをサーバサイドUIレイヤのみで活用することを提言してます。 JavaScriptエンジニアフロントエンドのコントロールはできるが、サーバサイドのUIレイヤはバックエンドエンジニアの領域で、それがフロント(JavaScriptエンジニアとバックエンドエンジニア双方のストレスであった。(参照図1) Node.jsの登場で、サーバサイドのUIレイヤをサーバサイドのビジネスロジックから分離し、フロントエンジニアはブラウザ & サーバのUIレイヤ、バックエンドエン

    ryshinoz
    ryshinoz 2013/10/08
  • スケール可能なTwitterの負荷テストの仕組み [GTAC 2013] - ワザノバ | wazanova.jp

    [Video] http://www.youtube.com/watch?v=99RABfKNfcY [Slide] http://goo.gl/9VY2b TwitterのJames Waldropが、オープンソースのロードジェネレータライブラリlagoと、スケールが可能な負荷テストの仕組みについてGTAC (Google Test Automation Conference) 2013で語ってます。Twitterには番トラフィックの一部を利用したテストもありますが、講演ではテスト環境でのロードジェネレータを話題にしてます。 FacebookからTwitter転職し、lagoをつくった理由は、 ありあわせのツールをもってきて使ってもだめで、エンジニアであれば何か開発しないと他のエンジニアから尊敬されない。 Scalaで書いてみたかった。 既存のロードジェネレータはどれも役に立たない

    ryshinoz
    ryshinoz 2013/10/03