タグ

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

  • Spotify: virtualenvのパワーをDebianパッケージに取り込む - ワザノバ | wazanova.jp

    http://labs.spotify.com/2013/10/10/packaging-in-your-packaging-dh-virtualenv/ Spotifyのエンジニアブログで、virtualenvのサンドボックス生成パワーをDebainパッケージに取り込んだdh-virtualenvを紹介しています。 1) 背景 Spotifyでは、DebianパッケージでPythonのソフトをアップしている。sbuildのあるCIシステムで自動的にアップできるようになっている。puppetを利用して、このシステムは問題なく稼働しているが、面倒なところもあった。まず、Debian Pythonパッケージのバージョンが古かったり、機能が足りない場合があり、内部のDebianレポジトリに新しいパッケージを入れる必要があった。さらに、新しい社員の場合は、Debianパッケージの中でPython

  • 規模の大きい本番システムをGo言語で書き直した感想 - ワザノバ | wazanova.jp

    http://matt-welsh.blogspot.com.au/2013/08/rewriting-large-production-system-in-go.html Go言語の4周年をテーマにしたgolang.orgのブログで紹介されていた、GoogleのMobile Web Performanceチームに所属するMatt Welshのブログです。大規模な番システムの作り直しにGo言語を採用した経験を語っています。 1) 背景 C++のオリジナルのコードベースは問題なく作動していたが、何年も複数の目的の違うプロジェクトで共有されていたため、スピーディーに改修するのが難しくなっていた。(何のシステムなのか具体的に書いてないのは残念。。) イメージフォーマットをトランスコードするライブラリはC++で完璧に動作していたので、そのまま残し、それ以外を全てGo言語で書き直した。 元のコード

    syanbi
    syanbi 2013/11/11
  • Facebook: ペタバイトのデータに対応した分散クエリエンジンをオープンソースで提供 - ワザノバ | wazanova.jp

    https://www.facebook.com/notes/facebook-engineering/presto-interacting-with-petabytes-of-data-at-facebook/10151786197628920 Facebookがエンジニアブログで、ペタバイト級のデータを効率よくクエリするエンジンPrestoを紹介しています。 1) Background Facebookは世界有数の300ペタバイトのデータウェアハウスをもち、そのデータはバッチ処理、ソーシャルグラフ分析、機械学習、リアルタイムインタラクティブ分析など様々な用途に使われている。 そのデータは、いくつかの大きなHadoop/HDFSベースのクラスターにある。Hadoop/MapReduce/Hiveは、大規模で信頼性の高い計算処理、全体システムスループット最適化という特性がある。しかし、ペタ

    syanbi
    syanbi 2013/11/07
    トレジャーデータさんが対応したら面白そう
  • 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は当然揃っていて、ウェルカムランチをへて、必ず初日に番アップまで経験できるような仕組みになってたと記憶してます。事業の成功を担保するためのせっかくの新戦力なので、優先順位は

    syanbi
    syanbi 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ユーザが増える

  • PythonプログラマがGo言語を使った感想 - ワザノバ | wazanova.jp

    https://medium.com/p/3228b624c946 PythonプログラマのBrett CannonがプライベートのプロジェクトGo言語を使ってバックエンドを開発してみた感想をシェアしてます。 Go言語のポイントは生産性をあげるためにある程度のコントロールを諦めることにあるが、C++支持派は、そのコントロールを諦めたくないので、Go言語には移らない。しかし、Python/Rubyの開発者は、生産性のためにローレベルのコントロールを諦めることに慣れてるので、ローレベルのスピードを上げるために、ハイレベルのconstructを諦めることは気にしないのではないか。 個人的には、トレードオフというのは好きでないので、Pythonを使う選択肢があるときは、スピードを優先するためにPythonを諦めてその柔軟性に頼れなくなる前に、PyPyとの比較をしたいころ。とはいえ、Go言語にもア

  • Capturing: レスポンシブデザインにおけるパフォーマンスを向上させる - ワザノバ | wazanova.jp

    https://hacks.mozilla.org/2013/03/capturing-improving-performance-of-the-adaptive-web/ 先日紹介した、WebRTC: サーバのない世界でwebをつくり直す [Realtime Conf. 2013Real] の中でFeross Aboukhadijehが”Super Crazy Hack”と絶賛していたのがCapturing。Capturingは、Mobify.jsの主要機能で、リソースの読み込み前にDOMをコントロールできるクライアントAPIです。 基的な仕組みとしては、 <plaintext>タグをファイルの頭において、ブラウザがリソースをダウンロードしないようにする。<plaintext>タグをクローズしないので、その後に続くHTMLはplain textとして解析される。 リソースのダウンロード

    syanbi
    syanbi 2013/11/04
  • WebRTC: サーバのない世界でwebをつくり直す [Realtime Conf. 2013Real] - ワザノバ | wazanova.jp

    [Video] http://2013.realtimeconf.com/video/ [Slide] https://speakerdeck.com/feross/webrtc-data-black-magic しかし、23歳にして既にこのレジュメにあるようなアウトプットを連発しているFeross Aboukhadijehはすごいですね。その彼が、Realtime Conf. 2013で、WebRTCの現状と自らの新しいプロジェクトについて語っています。 1) 概要 Video/音声/データをブラウザ間のpeer-to-peerで直接やりとりできる プラグインのインストールは不要 WebSocketスタイルのシンプルなAPI 2) 利用事例 リアルタイムチャット、ファイルシェア、遅延のないマルチプレーヤー対戦型ゲーム、分散DB、ダークweb?(p-to-pコミュニティ)、CDN Mozi

  • 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ページが軽くなったのとの相乗効果。 同じトラッフィクに対してハードウェアが削減できた。 チーム間の依存関係が少なくなったので、新機能リリースのペースが早くなった 同じ機能を複数の国にそれぞれ導入するような冗長さが

    syanbi
    syanbi 2013/10/31
    機能別に分けるの正解だと思う...
  • Go言語で苦労したポイントの事例 - ワザノバ | wazanova.jp

    http://da-data.blogspot.jp/2013/10/experience-with-epaxos-systems-research.html Go言語についての記事をまとめていて困るのが、特にHacker Newsでは熱狂的な賛成派と執拗な反対派が感情的に戦っていて、Go言語の何がいいのかはわかるが、まだ改善すべき余地のあることが実際どれほどの支障になるのかについては、議論からは判別しづらいことです。 カーネギーメロン大のDavid Andersonが、分散アルゴリズムEPaxosをGo言語でインプリしたときの経験について”Huge Positive” “It proved a huge win” としていながら、苦労したポイントを挙げています。このような具体的な事例がもった蓄積していくと参考になるのではないかと思います。 Go言語による開発で苦労したのは、Zookeep

    syanbi
    syanbi 2013/10/29
    "Goroutineがうまくスケジュールされる(されない)によって、説明できないパフォーマンスのアップ/ダウンがあった。"
  • 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に置

  • Facebook: 1兆インデックスの投稿検索 - ワザノバ | wazanova.jp

    https://www.facebook.com/notes/facebook-engineering/under-the-hood-building-posts-search/10151755593228920 Facebookがエンジニアブログで、2年間に渡って開発した投稿検索機能について紹介しています。投稿10億件/日、投稿インデックス1兆件で数百テラバイトのデータをリアルタイム処理する機能とはすごいですね。 1) データの収集 一番の大きなチャレンジは、データスキーマの変更に都度対応しながら、時間/場所/タグ(ウォール投稿、写真、チェックインで仕様がバラバラ)でソートできる検索システムを構築しなければいけなかったこと。Facebookのカルチャーとして、必要なものはどんどん変更されていくのだが、投稿検索で利用しているデータは約70種。その多くは、特定のタイプの投稿に紐づいている。か

  • Netflixは休暇取り放題がポリシーなわけではない - ワザノバ | wazanova.jp

    http://www.danieljacobson.com/blog/285 NetflixエンジニアリングディレクターのDanile Jacobsonが、同社の人事制度が「休暇取り放題」という報道で誤った認識をされてることに対して、ブログでNetflixカルチャーの質を改めて説明しています。 Neflixのカルチャー、組織運営ポリシーの詳細については、「 Netflix Culture: Freedom & Responsibilityを読み直す 」のシリーズを参照ください。 最近、休暇取り放題のポリシーを採用する会社が増えているが、休暇取得のメリットだけをいじっても、期待する効果はでないと思う。Netflixは、自主性と責任のカルチャーをあらゆる制度に反映させている。 皆が大人として振る舞うことが前提で、大人として振る舞えない人は、そもそもNetflixでは働けない。Netflix

    syanbi
    syanbi 2013/10/28
    "事業戦略の方向性については、公開情報となる前に、全員の社員にシェアされる。" やっぱ信頼重要
  • 猿が暴れてクラウドの障害に強くなるNetflixのシステム - ワザノバ | wazanova.jp

    http://techblog.netflix.com/2013/10/introducing-chaos-to-c.html歴史上の有名な開発プロジェクトからまなぶべきこと」をまとめていたときに、Videoの中で、ある大型ロケットエンジンの開発において、信頼性テストのために小型爆弾をエンジンの噴射口辺りで爆発させて耐性を調べた云々のエピソードが紹介されていて、更に続いて「ネット業界で同じようなことをやってるのはNetflixぐらいだ。」という説明がありました。その時は何のことだかよくわからなかったのでブログでは取り上げなかったのですが、今回見つけました。 以前紹介したように、北米のインターネットトラフィックの30%以上を占めるNeflixはインフラをAmazonに全面的に移行しています。クラウドに移行した後の学びとして、 自社データセンターの時は、個別のハードウェアインスタンスが障害

  • Node.js: Issac Schlueterの語るオープンソースとリーダーシップ - ワザノバ | wazanova.jp

    [Video] https://www.youtube.com/watch?v=PSv7GIX-XQ0 [Video] http://vimeo.com/77289729 コミュニケーションが大事だというのは月並みな言葉ですが、世界の複数の地域にまたがるオフィスに、事業の方向性 / アクションプランの意味付け / 優先順位 / 担ってもらう役割を、限られた時間の中でいかに簡潔にわかりやすく伝えるのかについて苦労した経験があります。世界中のメンバが参加する大きなオープンソースプロジェクトでは、それにもましてオフィスもないわけですから、メンバをうまく動かしていくには、相当な努力がいるかと。 Node.jsのリーダーであるIssac Schlueterのプレゼンテーション / podcastはいくつか聞いてみましたが、Node.jsが盛り上がってるのは、彼のリーダーシップによるところが大きいんだ

    syanbi
    syanbi 2013/10/28
    "「自分は理由があって行動しているが、他人は何もわかってない、考えてなくてやっている。」ではなく、「他人も自身の考え、思い、感情、必要性があって行動をしている。」と理解しようとすること。"
  • ダブル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はロジカルに話をまとめてます。 スライドを

  • 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レイヤ、バックエンドエン

  • MongoDBの$150M調達で色々考えさせられたこと - ワザノバ | wazanova.jp

    http://www.bloomberg.com/news/2013-10-04/mongodb-becomes-king-of-nyc-startups-with-1-2-billion-valuation.html 10genが社名もMongoDBに変えてたことは知りませんでした。さて、同社が$1.2BのValuation (企業価値)で$150M調達ということですが、昨年、Githubが$750Mのvaluationで$100M調達したのに続き、オープンソースがベースになってる会社で大型資金調達が成功する事例が続いてますね。  MongoDBはHacker Newsで取り上げられる度に驚くほどネガティブコメントを集めてるのですが、今回も例にもれず、この資金調達のニュースには219件のコメントがつき、トップに掲載されてる(おそらく掲載順ロジックはUpvoteの数なので、一番人気のコメン

  • EtsyのCI : LXCで14,000件/日のテストをこなす - ワザノバ | wazanova.jp

    http://codeascraft.com/2013/09/23/lxc-running-14000-tests-per-day-and-beyond-part-1/ EtsyのエンジニアブログでLXCによる仮想化でCIを効率化した事例が紹介されてます。 1日65件の番アップ。それぞれに30のテスト(単体テスト、結合テスト、機能テスト、スモークテスト etc.)をする。30 x 65  = 1,950/日 全員がroot権限をもって仮想マシンに何でもインストールできるので、仮想環境が番と同一かどうかは限らない。そこでエンジニアがdiffをJenkinsサーバに送ると、最新のマスターブランチに対してテストを実施してくれる tryライブラリを使っている。同時に10人のエンジニアがtryライブラリを利用でき、これにより更に13,700/日のテストが実施される。 同一のJenkinsワ

    syanbi
    syanbi 2013/10/06
    LXC活用事例
  • Issac Schlueterが語るNode.js v1.0へのロードマップ - ワザノバ | wazanova.jp

    http://www.youtube.com/watch?v=82hJbjqbIt4 Node.jsのコアチームのリーダであるIssac SchlueterがSan FranciscoのMeetupで、Node.js v1.0にむけての現状アップデートをシェアしてます。 Stream2のステータス 相当リファクタリングした 99%後方互換性 npmの計画 githubログイン、githubレポジトリとの統合 レコメンデーションエンジン モジュールランキング: CPAN Kwaliteeっぽいものにしたい Node.jsは成長した APIが壊れるなんて過去のこと。我々は大人になった。 今動くコードは来年も動く Node.jsがたった4年半でここまで成熟するとは皆思わなかったはず。 だからNode.jsコアは小さなサイズをキープしたい Node  v0.12 TLS (Transport La