タグ

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

  • Goでのゲーム開発 - ワザノバ | wazanova

    http://www.j15r.com/blog/2015/01/25/Game_Development_in_Go 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 Minecraft的なものをGo言語で試してみた経験をまとめたブログのエントリー。専用のツール / ライブラリ / エンジンなどはまだ充実はしてない中で、Goゲームづくりにどこまで使えそうかと考えるうえでの参考になればと思います。 採用のポイントとしては、 アウトプットスピードがCと同じでなくても、近づきつつある。 Cとのインターフェースが簡単。 メモリレイアウトの操作のしやすさ。 ガベッジコレクションにおいて、メモリモデルを利用してガベージを安易に増やさない工夫ができる。 概ね安全に書ける。 コンパイルが早い。 オーバーヘッドがほぼか

  • Prometheus: Go言語で書かれたモニタリングシステム - ワザノバ | wazanova

    https://developers.soundcloud.com/blog/prometheus-monitoring-at-soundcloud 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Prometheusは、SoundCloudが中心となって開発を進めているオープンソースのプロジェクトDockerの社内でもメインのモニタリングシステムとして利用されているようです。 各社のブログのエントリーから、その特徴をまとめると。 多元データモデルとそれを活かす柔軟なクエリ言語 全てのデータにタイムスタンプのある、OpenTSDBに準じたデータモデル。 http_response_500_totalやhttp_response_403_totalなどHTTPレスポンスのステータスごとに用意しなくても

  • Java: 本番環境でのデバッグスキルを磨く - ワザノバ | wazanova

    https://www.youtube.com/watch?v=7KS4L-mA_-c 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Takipi のFounderであるTalWeissのSan Francisco Java User Groupミートアップでの講演。番環境で役に立つデバッグテクニックの紹介です。 1. スレッド名の活用 スレッド名はmutable(EJB除く)である。コードのコンテキストにあわせて、Thread.currentThread().setName(Context, TID, Params, Time,...);のようにすれば、トランザクションID、Serveletパラメータ、キューメッセージID、起動時間など、スタックトレースに役に立つ情報を表示できるようになる。 J

  • 開発現場における並行処理の留意点 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=RR62KqHEVfM 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Squareが主催した並行処理システムに関するパネルディスカッション。 まずは、並行処理理論で博士号を取得し、Sqaureで分析システムを担当するGian Perroneがハイレベルでの留意点を挙げています。 システム全体で起きていることを自分の頭で完璧に把握しようという姿勢は、正確な並行処理システムをつくる妨げになる。テクノロジーやツールをうまく利用すべき。 並行処理システムを漏れなくテストするというのは相当難しい。 自分で考えて、注意深く対処するというのでは不十分。うまく抽象化に頼るべき。 続いて同社のTamir Dubersteinが、以前データセンタを移行させ

  • 気づかぬうちに増える仕事を減らす取組み - ワザノバ | wazanova

    https://codeascraft.com/2014/12/22/engineering-rotation/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 「このタスク、思ったより時間がかかったな。」となるのはよくあることですが、仲間と仕事をするということは皆で大きなことを成し遂げているということなのだというそもそものメリットは空気のように忘れがちで、ある程度の非効率は避け難く生じるし、それが目につくのでストレスの元。どう解消するか? 元Quoraのリードエンジニアで、現在Quipに勤務するEdmond Lauは、"Hidden costs that engineers ignore”"と題したブログのエントリーにおいて、 コードの修正だけでなく、別のメンバへの説明の時間はかかる。 単純に分量で

  • Googleのテスト自動化の進化 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=6ZvCU0dht50 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Google Test Automation Conferenceが今年はSeattleで開催されたようです。その中で興味深いと感じた話題をいくつか拾ってみました。 1) 成長を続けるGoogle 会社の規模が大きくなり、歴史を重ねてくると、何事も非効率になりがちですが、Ankit Mehtaが紹介してくれた数字によると、Googleの開発ペースは依然として右肩あがりのようです。 コードのコミットは、1日3万チェックイン。約3秒に1回。グラフを目測した限りでは昨年から約20%増。 リリース数もこの1年でほぼ倍増。 2) テストクローラーを利用してのモバイル実機テストの

  • iOSアプリ開発にチームで取組むチャレンジ - ワザノバ | wazanova

    http://vimeo.com/109624121 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 Michele Titoloについて取り上げるのは、 「モバイルAPIデザインのまとめ」 「Ruby RoguesメンバとiOSエンジニアAPI議論」 に続いて三回目ですが、今回はiOSアプリづくりにおけるチーム内の連携がテーマ。 彼女は現在、redditのiOSチームのリーダーをしながら、Objective-Cプロジェクトの依存関係の管理をしてくれるCocoaPodsの開発と、非営利団体 Women Who CodeのCEOを兼務しています。 redditはwebで大量のトラフィックとユーザを抱えてますが、スマホのアプリに注力しはじめ、切り口を変えた複数のreddit閲覧アプリづくりにチームで取組

  • 急成長するサービスのサーバインフラ - ワザノバ | wazanova

    サービスを一から立ち上げる場合も、成功したサービスが更に拡大する場合も、いずれもスケールさせるのは一苦労ですが、今回は、Dropboxの初期の取組みと、Facebookの最近の動きを取り上げてみます。 まずは、DropboxのKevin Modzelewskiが、創業当初のサーバインフラの進化を時系列で紹介している講演から。 Dropboxのデータの特徴 書込みボリューム大: 通常のサービスはコンテンツをつくるより消費するボリュームが圧倒的に多いので、read/write比率が、100:1とか1000:1であるのが典型だが、Dropboxはユーザの全端末がコピーを持つ構造なので、その比率が約1:1になる。つまり、同じサーバに対して、他社よりも100倍、1000倍書込みの役割が大きくなる構造。 ACID特性の要件をしっかり守る必要がある。ユーザの情報を預かるのだから、原子性について、「大きな

  • APIの後方互換性を保つ工夫 - ワザノバ | wazanova

    Stripeの決済サービスの成長は、APIが使いやすいというエンジニアの間での評判がかなり寄与したと記憶しています。 同社のAPIは現在、 エンドポイント: 106 バージョン: 65 APIクライアント: 6 ユーザ企業を煩わせることなく後方互換性をしっかり担保したいという方針を守るための工夫を、Amber Fengが紹介してくれています。 1) ユーザが利用するバージョン情報の把握 ユーザ企業が最初にAPIコールをしたときのバージョン情報をStripe側で保管している。それ以降、ユーザ企業はバージョンのことを意識することなく、最初のバージョンのAPIを利用し続けることができるようにしている。ユーザ企業側でバージョンの変更をしたい場合は、ダッシュボードでの設定や、リクエストヘッダーに情報を付加することで可能。 2) バージョンと機能の整合性 YAMLファイルでバージョンとその振舞いの情報

  • Reactを実際に使ってみた話が増えてきた - ワザノバ | wazanova

    http://youtu.be/uwnjDXtJufs 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 44分前 コンポーネントベースのviewレイヤのライブラリであるReactを、実際に使ってみた感想についての発信が増えてきているので、まとめてみました。(4)はFluxの話も入ってます。) 1) Reactとは? E4E Developer Conf 2014の講演でFacebookのBen Andersonは、Reactを採用しているサービスを挙げています。 Facebook / Instagram / GitHub (Atom) / Khan Academy (with Backbone.js) / Mozilla Firefox (for Paneis) / NY Times / Reddit (stor

  • クラウドのOSを狙うMesos - ワザノバ | wazanova

    https://www.youtube.com/watch?v=r7qN8QwGv2w 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約6時間前 MesosConのキーノートスピーチを紹介します。 まずは、Apache MesosのProgram Chairを務めるTwitterのBenjamin Hindmanが、Mesosの目指す立ち位置について、 現代において「他のコンピュータ」と形容すると、データセンターを指すケースが多い。 アプリを動かすコンピュータという見地からは、PC / タブレット / スマホ / サーバにOSがあるように、データセンターにもOSが必要。 Mesosは、データセンターのOSである。つまり、分散システムにおけるkernelの役割を担う。 そのエコシステムの広がりは、 Mesosとつ

  • コードを引継いでどこから手をつけるか - ワザノバ | wazanova

    http://www.se-radio.net/2009/11/episode-148-software-archaeology-with-dave-thomas/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 他人から引継いだコードを把握するのにどこから着手するかというテーマで、たまたまいくつかのエントリーを見かけました。「コードを読み切れないほど膨大にある。」「前任者、経緯のわかる人がいる/いない。」「ドキュメントがある/ない。」など様々な事情が想定されますが、全部まとめて主な声を拾ってみました。 謙虚な姿勢で臨むこと。そのコードベースがわかりづらいのは、書き方が悪いコードだからかもしれないが、自分がその専門領域の知識がなかったり、ベースにあるアルゴリズムが当に複雑な場合もありうる。それを、全

  • Rustのあれこれ - ワザノバ | wazanova

    https://air.mozilla.org/bay-area-rust-meetup-august-2014/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約3時間前 Bjorn Tiplingが各プログラミング言語を武器に例えた、"If programming languages were weapons" というエントリーが秀逸ですね。公平に、どの言語も褒めていないところがよいです。どれも面白いので全部眺めていただければと思いますが、その中でRustは、 "Rust is a 3D printed gun. It may work some day." と紹介されています。 とはいえ最近、 Rustに関する発信をよく見かけるようになったと思ったら、バージョン 1.0が近いのですね。"work some

    slay-t
    slay-t 2014/09/02
  • CodePen: CSSの構成と方針 - ワザノバ | wazanova

    http://codepen.io/chriscoyier/blog/codepens-css 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約5時間前 GitHubやLonely Planetに触発されて、この手のエントリーが続いています。今回は、CodePenのChris Coyierのブログ。 Overview SCSS Autoprefixer RailsのAsset Pipeline スタイルの方針はあるが、目的はほぼ見た目の整合性をとるため 「classを多用する」以外に、アーキテクチャは採用していない ページ当たり、2-3個のCSSファイル media queryの@mixinを使うが、.scssファイルごとにオンオフできるようにしている コメントを残すのには賛成派 Preprocessing S

  • Dockerのメリットと可能性 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=mVN7aTqr550 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Code ClimateのBryan HelmkampのRedDotRuby 2014での講演です。ビデオの前半の30分は、Docker + Rubyアプリのユースケースの場合の、概要/ツール紹介/デモです。ここでは、後半に語られているDockerのバリューについて、まとめてみます。 デリバリーの単位 Rubyエンジニアとして、デリバリーするときの単位という概念が今まではなかった(が、Dockerで実現できた)。かつて、JRubyでしばらく開発していたときがあって、その際は、jarファイルの中身がなんであれ、テストして問題なければ、DevOpsチームに渡すだけ。ある意

  • Dockerイメージの最適化 - ワザノバ | wazanova

    http://www.centurylinklabs.com/optimizing-docker-images/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 米国キャリアのリサーチ部門であるCenturyLink Labsが、 Dockerイメージは1Gを超えることがよくあって、ローカルで実験しているうちはよいが、ネットワークを介して頻繁にやり取りしはじめると、サイズが問題になる。 ということで、dockerイメージのサイズを減らす取り組みについて、ブログで紹介しています。 Layers レイヤの構成の詳細については、Dockerのドキュメントを参照されたし。議論のポイントとして理解しておかなくてはいけないのは、Dockerfileでの各操作の結果、新しいイメージのレイヤが順次生成されるというこ

  • Flickr: Redis Sentinelの導入 - ワザノバ | wazanova

    http://code.flickr.net/2014/07/31/redis-sentinel-at-flickr/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 36分前 Flickrエンジニアブログで、Redisのマスター障害復旧を自動化するためにRedis Sentinelを導入した経験を紹介しています。 Redisのユースケース 番サービスに影響を与えないように、写真のアップロード / ユーザ通知 / メタデータの編集などの重たいタスクは、Redisのキューに送られて、非同期でオフライン処理されている。 クリティカルなタスクなので、99.9999%が処理(100万件のうち1件以下)され、99.995%の時間は稼働(月に停止が2分を超えない)させる必要がある。 もし、マスターが落ちると、復旧は手動対

  • 大規模分散システムのレスポンスを向上させる工夫 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=1-3Ahy7Fxsc 1 comment | 1 point | by WazanovaNews ■ comment by Jshiike | 約2時間前 GoogleのJeff Dean(Senior Fellow, システム & インフラグループ)による、Velocity Conference 2014のキーノートスピーチです。 Jeffは、オブジェクト指向言語によるプログラムの最適化で博士号を取得。DEC/Compaqの研究所の勤務をへて、1999年にGoogleに入社。以降、BigTable / MapReduce / Spanner / Google Translate / Google Brainなど、同社の大規模分散システムの構築に一貫して携わってきています。 例えば、検索結果のレスポンスを向上させるには、そ

  • Gilt: Playフレームワークの活用 - ワザノバ | wazanova

    https://www.youtube.com/watch?v=WliXLG2Yo5k 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約3時間前 GiltにおいてPlayフレームワークをどのように活用しているのか、Giancarlo Silverstrinが紹介してくれています。 単一のRailsアプリからマイクロサービスに切り替える過程で、JVM + Java -> JVM + Scalaと開発基盤を変遷。現在、番環境には、250+サービス。 マイクロサービスへの展開時には、バックエンドのRailsアプリは残すかたちで既存の資産の有効活用。webレイヤでには75+個のアプリ(コード約7万行)がある。リソースとUIテーストを共有したアプリの組み合わせで、Giltのサイトは構成されている。 フラッシュセール(毎

  • Go言語のcontextパッケージについてのやりとり - ワザノバ | wazanova

    https://news.ycombinator.com/item?id=8103128 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 The Go Blogにおける、 Goサーバにおいては、goroutineが受取ったリクエストに対応する。request handlerは、DBやRPCサービスなどバックエンドにアクセスするために、複数のgoroutineを起動させることがよくある。それらのgoroutineは、ユーザのアイデンティティ / 認証トークン / リクエストの期限など、そのリクエストのスコープ内の変数にアクセスする必要がある。また、リクエストがキャンセルになったり、タイムアウトすれば、一連のgoroutineは直ちにexitして、システム側がリソースを確保できるようにする必要がある。 G