タグ

ブックマーク / codezine.jp (56)

  • 秒間100万クエリ・8万リクエストの「グラブル」安定稼働を支える、Cygames「3つの取り組み」【デブサミ2017】

    リアルタイム通信の高速化とタグシステムによる運用効率化 続いて佐藤氏はリアルタイム通信高速化の取り組みを紹介。チャットやマルチバトルのパラメータ反映などで利用されるのが双方向リアルタイム通信だ。CygamesではWebSocketプロトコルを使って双方向リアルタイム通信を実装。サーバはNode.jsで、WebSocket通信とデータ送受信を実装している。 リアルタイム通信の基的な仕組みとして、クライアントはRoomという単位でグループ化され、同じRoomIDを持ったクライアント同士でメッセージを共有する。大規模環境の場合はサーバを分散する必要があり、一般的によく使われているのがPub/Subメッセージングモデルだ。グラブルでも当初はRedisのPub/Sub機能を使って、このモデルを採用していたという。しかし、アクセス数の増加とともにRedis Pub/Sub(メッセージキュー)がボトル

    秒間100万クエリ・8万リクエストの「グラブル」安定稼働を支える、Cygames「3つの取り組み」【デブサミ2017】
  • 11062

    「Chainer」は、Preferred Networks(PFN)が開発した深層学習(ディープラーニング)フレームワーク。ニューラルネットワークのモデルがPythonで簡単に記述できるので利用している人も多い。GoogleAIフレームワークである「TensorFlow」とともに機械学習、深層学習の定番ともいえる。 もちろんPFNもChainerを使って、さまざまなAIモデルを研究、開発している。同社はOSSミドルウェアや内製ツールを駆使して、オンプレミス環境にChainerクラスターによるAI開発プラットフォームを構築していると言う。その詳細はあまり語られることがないが、「July Tech Festa 2018」の基調講演で、PFNのエンジニアである大村伸吾氏がその概要を紹介した。大村氏は、PFNでAI開発のためのChainerクラスタの開発・運用を手掛けている人だ。 Engine

    11062
    dann
    dann 2020/09/01
  • 正しいものを正しくつくるための「仮説検証型アジャイル開発」とは? 市谷聡啓氏が語るPOの戦略

    ProductZine Day&オンラインセミナーは、プロダクト開発にフォーカスし、最新情報をお届けしているWebメディア「ProductZine(プロダクトジン)」が主催する読者向けイベントです。現場の最前線で活躍されているゲストの方をお招きし、日々のプロダクト開発のヒントとなるような内容を、講演とディスカッションを通してお伝えしていきます。

    正しいものを正しくつくるための「仮説検証型アジャイル開発」とは? 市谷聡啓氏が語るPOの戦略
  • 課題が山積みだったモンストのデータ分析は、ディメンショナル・モデリングでどう変わったのか?【デブサミ2018 夏】

    世界累計利用者数4500万人を突破した大人気スマートフォンゲーム「モンスターストライク(以下、モンスト)」。ゲームを提供しているのが株式会社ミクシィ XFLAG スタジオだ。かつて同社はデータ分析において大きな課題を抱えていた。その状態を解決すべく、データウェアハウスの設計手法 ディメンショナル・モデリングを導入したのだという。セッションではXFLAG スタジオが取り組んだ分析基盤改善の軌跡を、データエンジニアの生島光氏が語った。 講演資料:データウェアハウスの設計手法『ディメンショナル・モデリング』のすすめ 株式会社ミクシィ XFLAG スタジオ モンスト事業ゲーム運営部 解析グループ 解析チーム データエンジニア 生島光氏 データ分析の作業が、とにかく非効率的になっていた かつて、XFLAG スタジオではAmazon Redshift(AWSが提供するデータウェアハウスサービ

    課題が山積みだったモンストのデータ分析は、ディメンショナル・モデリングでどう変わったのか?【デブサミ2018 夏】
  • ハイパフォーマンスなWebを実現するasm.js/WebAssemblyとは――Mozillaのルーク・ワグナー氏に聞く

    Mozilla主催のフロントエンド開発者のためのカンファレンス「ViewSource Conference」が、北米・オレゴン州ポートランドにて11月2~4日に開催された。セッションのみならず、次世代Webに関するディスカッションも実施された。WebAssemblyの開発を担当し、ディスカッションのホストを務めたMozillaのルーク・ワグナー氏に、WebAssemblyasm.jsの開発の目的について聞いた。 聞き手:近藤佑子(編集部)、矢倉眞隆氏 協力:清水智公氏(Mozilla Japan)、浅井智也氏(同) ルーク・ワグナー(Luke Wagner)氏 WebAssemblyに関するディスカッション情報「Discussion: WebAssembly」 ルーク・ワグナー氏のブログ パフォーマンス向上の他、JavaScriptでできない機能を実現するWebAssembly ――ルー

    ハイパフォーマンスなWebを実現するasm.js/WebAssemblyとは――Mozillaのルーク・ワグナー氏に聞く
    dann
    dann 2015/11/16
  • モダンPerl入門増補改訂版(仮)

    ページは『モダンPerl入門 増補改訂版(仮)』の特設サイトです。商品紹介のほか、電子書籍版の早期ディスカウント販売(β版を先行提供)などを予定しています。今後の更新情報は「CodeZine Books」のFacebookページなどで配信していきます。 書の内容 書は、Perl言語でプログラミングする上で、筆者の経験を基に日々の仕事で使えそうなティップスやベストプラクティスを集めたです。基礎知識は身につけている読者を想定して、Perlの基文法やプログラミングの基は意図的にカバーしていないため、プログラミング初心者にとって書は難解かもしれません。 2009年に刊行した初版では、いまだに根強い「PerlCGI」「Perl=オブジェクト指向ができない」「Perl=開発が止まっている」といった間違った思い込みを正したいという当時の筆者の思いから、筆者が使っている最新ツールやモジュ

    dann
    dann 2013/09/18
  • 普及目前! 10Gigabit Ethernetの世界を知る

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    普及目前! 10Gigabit Ethernetの世界を知る
    dann
    dann 2013/07/13
    vnstat, pktgen
  • データベース設計の煩雑な作業を自動化する「ERMaster」

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

  • デブサミ2013、講演関連資料まとめ

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    デブサミ2013、講演関連資料まとめ
    dann
    dann 2013/02/26
  • C++でWebアプリケーションを開発できる ~ 高性能フレームワーク「TreeFrog Framework」

    稿では「C++でも簡単にWebアプリケーションを開発したい!」という声にお応えして、C++によるフルスタックのWebフレームワーク「TreeFrog Framework」を紹介します。C++で開発する最大のメリットは、アプリケーションが高速かつ少ないメモリ使用量で動作することです。Webアプリケーション自体がさらに高速に動作すれば、より少ない数のサーバで多くのリクエストを処理することが可能になるでしょう。 はじめに Webアプリケーションの開発案件をみると、使われている言語はJavaPHPが特に多いように思います。C++のものはまず聞きません。C++プログラマがWebアプリケーションの開発プロジェクトに参画するとなると、新たに別の言語を習得しなければならないのが現実です。TIOBE Programming Community Indexというプログラミング言語の人気度調査において、C+

    dann
    dann 2012/09/30
  • 大規模ソーシャルゲーム「ドラゴンコレクション」運営の最前線で得られたノウハウ ~チューニングと運用、18のポイント~

    大規模ゲーム運営のポイント:データベースのチューニング データベースのチューニングについて、正延氏は次の7つのポイントを挙げました。 1:net_slave_timeoutは短くする スレーブサーバでは、しばしばレプリケーションが行われなくなっていることがあります。これは何らかの原因でマスターとスレーブ間のコネクションが失われたためですが、MySQLはこのことを認識しません。しかも、レプリケーション通信が行われない場合のコネクション再接続時間が、標準で3,600秒と非常に長く実質的ではありません。net_slave_timeoutの時間を短くすることで、レプリケーションが止まってもすぐに再開できるようになります。 2:max_binlog_sizeは小さくする max_binlog_sizeはバイナリログがローテーションされるサイズのしきい値を指定しますが、標準で1GBが設定されています。

    大規模ソーシャルゲーム「ドラゴンコレクション」運営の最前線で得られたノウハウ ~チューニングと運用、18のポイント~
    dann
    dann 2011/12/21
    slave_compressed_protocol
  • 大規模ソーシャルゲーム「ドラゴンコレクション」運営の最前線で得られたノウハウ ~チューニングと運用、18のポイント~

    大規模ゲーム運営のポイント:オープンソースコードのチューニング オープンソースコードのチューニングについては、GREEやmobageでゲームが大ヒットすると通信レスポンスがシビアになるため、特に対策が必要になります。そのポイントは「5秒ルール」への対応(2種類)と、「原因不明のエラー画面」への対応です。 1:SYN再送を短く固定 SNSプラットフォームでは、5秒以内に応答を返さなければならないというルールがあり、5秒を超えてしまうとサービスが止められてしまいます。アクセスの増加によって、ドラゴンコレクションのネットワーク内でパケットロスが発生しました。SYN再送が繰り返される際に、1回目の再送で3秒使ってしまい、プラットフォームの5秒ルールに抵触したのです。ドラゴンコレクションのアクセス規模では、一瞬にして1000エラーをカウントしてしまい、プラットフォーム側でシステム障害と判定され、メン

    大規模ソーシャルゲーム「ドラゴンコレクション」運営の最前線で得られたノウハウ ~チューニングと運用、18のポイント~
  • C#で始めるテスト駆動開発 ~TDDBC横浜の課題をやってみよう

    はじめに 各地でTDD Boot Camp(TDDBC)が開催されるようになり、このところTDD(テスト駆動開発)が注目を浴びています。ただ、自分でも試してみようと思った時に目につく書籍や記事などは、JavaRubyPHPといった、いわゆるオープンソース系の言語ばかり。.NET Framework(Windows)で開発の仕事をしているとTDDは関係ないんだろうか、…とさえ思えてくるかもしれません。 しかし、そんなことはありません。.NET FrameworkでのTDDに必須のユニットテストフレームワークとして有名なNUnitの最初のバージョンは、Visual Studio .NET 2002がリリースされる以前の2001年に公開されています。.NET Frameworkは、生まれたときからTDDと共にあると言っても過言ではないでしょう。 この記事では、TDDとTDDBCについて簡単に

    C#で始めるテスト駆動開発 ~TDDBC横浜の課題をやってみよう
    dann
    dann 2011/12/13
  • Hadoop、hBaseで構築する大規模分散データ処理システム

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Hadoop、hBaseで構築する大規模分散データ処理システム
  • マルチコア時代の定番チューニングツール 「インテルParallel Studio 2011」

    Parallel Composer 2011の新機能 Parallel Composer 2011は、高性能なコードを出力するインテルC++コンパイラーとデバッガ、並列化のための各種ライブラリを含み、並列化アプリケーション実装の中心となる製品です。 今回のバージョンでは、以下のような新機能が追加されています。 インテルC++コンパイラーがC++の次期標準であるC++0xのサポートを拡大 並列化のためのC/C++言語拡張であるインテルCilk Plus(シルクプラス) 並列化ライブラリであるArray Building Blocks(ベータ版) 記事では、注目株のインテルCilk Plus(以下、Cilk Plus)を解説します。 Cilk Plus Cilk Plusは並列化処理のためのC/C++言語拡張です(綴りはClickやClikではなくCilkなのでタイプミスに注意)。 シンプル

    マルチコア時代の定番チューニングツール 「インテルParallel Studio 2011」
  • ファイルディスクリプタについて(6) ~多重I/Oの性能とC10K問題

    はじめに 前回は、複数のファイルディスクリプタを一元管理する「多重I/O」機能について紹介しました。今回は、多重I/Oの性能と問題点について検証していきます。 連載概要 第1回:ディスクリプタの概要 第2回:イベント用ディスクリプタ「eventfd」の特徴 第3回:タイマー用ディスクリプタ「timerfd」の特徴 第4回:シグナル用ディスクリプタ「signalfd」の特徴 第5回:多重I/O「Multiplex I/O」の種類の特徴、使い方 第6回:多重I/Oの性能とC10K問題 第7回:シグナル駆動I/Oの特徴、使い方 第8回:非同期I/O「Asynchronous I/O」の使い方と性能差 第9回:ファイルディスクリプタパッシングの特徴、使い方 サンプルプログラムは100行前後程度までは画面に記載します。全プログラムは圧縮してページ上部よりダウンロード可能にしています。makeコマンド

    ファイルディスクリプタについて(6) ~多重I/Oの性能とC10K問題
  • レイアウトの作成手順をマスターする! ~速習! Androidアプリケーション開発(3)~

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    レイアウトの作成手順をマスターする! ~速習! Androidアプリケーション開発(3)~
    dann
    dann 2010/03/02
  • ファイルディスクリプタについて(2) ~イベント用ファイルディスクリプタ「eventfd」の特徴

    ファイルディスクリプタは、プログラムの外部との入出力を行う抽象的なインタフェースです。Unix/Linuxのファイルディスクリプタは、一般的なファイルだけでなくデバイスやソケットやパイプも対象としています。当連載は、ファイルディスクリプタの機能や管理方法などを提示します。第2回は、イベント用ファイルディスクリプタ「eventfd」を紹介します。 はじめに 前回は、ファイルディスクリプタの概要について解説しました。今回は、新たに追加された3個のファイルディスクリプタの中から、イベント用ファイルディスクリプタ「eventfd」を取り上げ、使用法や特徴、既存のファイルディスクリプタとの違いについて、説明していきたいと思います。 連載概要 この連載は、次のような内容について述べていく予定です。 連載目次 第1回:ファイルディスクリプタの概要 第2回:イベント用ディスクリプタ「eventfd」の特徴

    ファイルディスクリプタについて(2) ~イベント用ファイルディスクリプタ「eventfd」の特徴
  • Javaで軽快に使える「軽量フレームワーク」特集 ~本格的なRoRスタイルフレームワーク「Play!」(3)

    はじめに MVCのごく基的なことが分かったら、次に見たいのは、格的な開発で必要となる機能がどのような形で実装されているか、ということでしょう。今回は「1対多」「多対1」による複数モデルの連携処理についてと、JUnitを使ったアプリケーションのテストについてです。どちらも、実際に開発に利用する際には必要となる機能と言えます。これらがPlay!ではどのような形で作られているのかを考えていきましょう。 対象読者 Javaで手ごろなフレームワークを探している技術者 最近のフレームワークをごくざっと理解しておきたい方 Web開発の手法がどうも気に入らない、と常々考えているJavaプログラマ モデルの連携を考える 前回、モデルの基について説明をしましたが、単純に1つのモデルを作って動かすだけなら、非常に簡単に使用できることが分かりました。では、複数のモデルと連携する場合はどうなるのでしょうか。実

    Javaで軽快に使える「軽量フレームワーク」特集 ~本格的なRoRスタイルフレームワーク「Play!」(3)
    dann
    dann 2010/02/05
  • はじめてのActionScript 3~ライフゲームを作ってみる

    3. 画像ファイルの埋め込み 次に、画像ファイルを表示する方法を見ていきましょう。ActionScript 3では、外部の画像ファイルをその時々で動的に読み込んで表示することもできますが、素材となる画像ファイルをSWFファイルの中に埋め込んで表示することもできます。 ここでは、画像ファイル「panda.png」をSWFファイルに埋め込んで、これを表示してみます。 // EmbedTest package { import flash.display.*; import flash.events.*; public class EmbedTest extends Sprite { // *1 埋め込みイメージの指定 [Embed(source='panda.png')] private static const ImagePanda: Class; public function Embed

    はじめてのActionScript 3~ライフゲームを作ってみる