タグ

ブックマーク / www.cyberagent.co.jp (18)

  • Riot.js と Atomic Design ではじめるテクニカルクリエイター|Technical Creator Hub

    紫竹佑騎 2010年新卒入社。アメーバのサービスやソーシャルゲーム数タイトルのサーバーサイドを担当。著書に「Web制作者のためのGitHubの教科書」。BaPA1期生。 7月頃リリースされた AMESTAGE の Web 版を担当している 紫竹 です。 AMESTAGE は"芸能人とあそべる生放送"と銘打ったサービスでして、芸能人の放送する番組に対してコメントしたりギフトを贈ったり、クイズなどのコーナーに回答して一緒にあそんだりできます!!是非放送を見てみてくださいね^^ AMESTAGE 今回はこの AMESTAGE で利用した Riot.js というライブラリを使って、Web 開発しやすいコンポーネントをデザインの時点からワンストップで行うことができる手法をご紹介したいと思います。 俺がテクニカルクリエイターだ! ↑これは言ってみたかっただけなんですが簡単に自己紹介をすると、僕は

  • 東京Node学園祭2015 | 株式会社サイバーエージェント

    昨年に引き続き、今年も東京Node学園祭が当社セミナールームにて開催されました。 第5回目となる 東京Node学園祭2015 では ECMAScript の仕様化、Promise を仕様にしたことでも有名な Domenic Denicola 氏 io.js のリリースオーサーであり、NAN というネイティブモジュール作成用のライブラリを開発している Rod Vagg 氏 NodeUp のオーガナイザーであり、企業向けの Node.js にも詳しい Dan Show 氏 npm の開発者である Kat Marchan 氏 など豪華ゲストが登壇し、Node.js日ユーザグループ主催のもと昨年より更に盛況ななか無事終了しました。 レポートでは、その模様を資料と動画を添えてお届け致します。 イベント詳細 日時

  • 「Ameba Ownd」開発 “可読性”がGo言語採用の決め手|Go Lang in CyberAgent

    Javaの置き換えでソースコードを半分に サイバーエージェントに入社して最初の2年間は、アメーバピグの負荷対策を行っていました。その後、ブラウザゲームのサーバサイドの新規立ち上げに携わりました。アメーバ内でユーザー数の多いゲームを参考にして別のゲームを立ち上げる流れがあったのですが、そのままのシステム構成だとセキュリティ的な問題や開発効率が上がらないという懸念があったため、フレームワークをSpringMVCに置き換えました。SpringMVCにすることでソースコードの行数が半分になり、元のフレームワークが抱えていたセキュリティ上の問題も解消することができました。 その後、2014年の7月頃から、Webサイト無料制作サービス「Ameba Ownd」の立ち上げに関わり、2015年3月にリリース、現在は日々改善を行いながら運用しています。 ちょうどその当時、Go言語がインフラ界隈でトレンドが

  • Go言語を採用して感じた 「硬派」さと可能性|Go Lang in CyberAgent

    技術判断は事例と実践 2004年に入社してから、様々なプロジェクトに関わってきました。8~9割のプロジェクトが新規立ち上げで、1年以内で次のプロジェクトに移っています。最近では音楽配信アプリ「AWA」の立ち上げに携わりました。 「AWA」では最初、サイバーエージェントでこれまで実績のあったJavaとNode.jsを検討していました。 同時期に海外ではDockerTerraformなど、インフラ周りのツールにGo言語が使われる事例が増えており、Go言語に注目をしていました。「AWA」の開発を担当している若いエンジニアの意欲も高かったことから、サーバサイドでGo言語を採用することに決めました。 この段階では実際に作ってみてダメだった場合、他の言語を採用することも視野に入れていました。ただ、海外の事例や「AWA」のアーキテクチャを考えた場合、Go言語で問題なく実装できる自信はありました。

  • Go Lang in CyberAgent|株式会社サイバーエージェント

    現在、サイバーエージェントで活躍するエンジニアは約900名 ※1。 コミュニティサービスや音楽配信サービス、ゲームといったユーザー向けサービスからアドテクノロジーまで、幅広い分野において、技術で事業を支えています。 サイバーエージェントエンジニアの裁量が大きく、サービスの技術選定エンジニアに任されており、新たな技術にチャレンジできる環境があります。 また、事業の変化スピードが速いサイバーエージェントだからこそ、技術トレンドを踏まえ、柔軟に新しい流れに対応することがエンジニアに求められています。 常に新しいチャレンジを続けるエンジニアたち。 今回、2009年にgoogle社より発表されたプログラミング言語であるGo言語を新たに採用したエンジニアに、インタビューをいたしました。 ※1 連結社員、2015年6月末現在

  • メンテナブルCSS | 株式会社サイバーエージェント

    1. 序論 CSSは記述ルールが簡素であり、少しの学習コストですぐに記述ができる手軽なツールです。 しかし、大規模なアプリケーションで複数人で開発するケース等では、見栄えだけしか考えずに身勝手にコーディングしてしまうと、 非常にメンテナンスコストがかかる負の遺産が作られてしまいます。 そのためCSSの品質を保つために様々なプロジェクトで、CSSの定義ルールが決められています。 稿では一般的なCSSの定義ルールと、そのルールがなぜ作られたのかを合せて報告致します。 また、CSSのルールを適用するにあたって、手動・目視でルールの適用をチェックするのは非常にコストが高い作業です。 これらルールの適用を補助するツール群を、合せて報告致します。

  • Golangで画像合成 | 株式会社サイバーエージェント

    執筆者 執筆者:古谷薫 所属部署:アメーバ統括部 ピグセクション 業務経歴:PC版「アメーバピグ」の機能開発リーダーとして、認証、通知システムなど、アメーバピグ関連サービスが横断的に利用するシステムの開発に従事。現在は、Android/iPhone向けの「ピグパーティ」アプリの開発に立ちあげから携わっています。 概要 モバイル端末などの通信が不安定環境において、大量の画像ファイルを効率よく転送するためにGo(Golang)を用いた画像合成システムを開発し利用した。 レポートでは、これらの詳細をレポートする。  目次 1.アプリの概要と課題 今回開発したシステムは、スマホアプリ版のピグである「ピグパーティ」で利用している。 ピグパーティでは、ライブ型アバターコミュニケーションサービスということもあり、動きのあるアバターや、大量のアイテムが配置されるエリアを細分化された複数の画像ファイル

  • Dockerによる開発環境から本番環境までの一貫した管理 | 株式会社サイバーエージェント

    業務経歴: 2012年株式会社サイバーエージェント入社。プライベートクラウドの監視システムや自動化などのDevOpsを担当。現在はクラウドシステムのUI刷新とPaaS検証に従事。 概要 開発環境から番環境までを Docker にて一貫性のある管理が可能であるかを検証しました。 尚、レポートは Docker 管理に CoreOS を利用しております。 目次 1.タイトルについて 1-1.Docker DockerLinux Container技術のhigh levelツールです。VMはマシン仮想化に対してLinux Containerはプロセスの仮想化。 2013年3月にopen sourceしてから今や明らかにデベロッパコミュニティのスパースターになっています: githubdockerのstar数: 13256, Fork数: 2315(2014年6月30日) githubのse

  • Node.jsのためのフロー制御モジュールの比較 | 株式会社サイバーエージェント

    業務経歴: 2013年株式会社サイバーエージェント新卒入社。入社後、サーバサイドエンジニアとしてNode.jsを利用したゲーム開発・運用に従事、現在はスマートフォンゲーム「スクールファンファーレ」の開発に携わる。 概要 Node.jsでプログラミングを行う上で、フロー制御を行うモジュールの利用は必須であるが、選択肢は1つではなく、どれを使うかにより開発効率に大きく影響すると考えられる。 レポートでは、複数のフロー制御モジュールを比較し、それぞれの長所・短所を論じる。 なお、読者はNode.jsの基的なプログラミング方法を既に知っていることを想定している。 目次 1.序論 Node.jsはシングルスレッド・イベントループモデルを軸に据えており、関数のコールバックを使うことでこれを文法的に実現している。これを素の状態でコードを書くと、直列的なフローではいわゆる「コールバック地獄」になり、ま

  • 【CyberAgent】技術情報/TechReport - テックレポート/MongoDBの運用について | 株式会社サイバーエージェント

    ■はじめに 弊社でも、ピグライフをはじめとしてモバイルゲームなどのサービスでMongoDBを使い始めています。 運用に関してはMySQL等にはまだノウハウ的にはかなわないものの、NoSQLのジャンルの中では有用なプロダクトであるといえるかと思います。 ですが、運用に関しての共有ができておらず、有効な使い方ができていないパターンも多いです、そのため運用に関してノウハウを共有するための資料を作成しました。 ■概要/特徴 MongoDBには以下のような特徴がある ●      BSONによる、JSONによるスキーマレスなデータ運用 これにより、柔軟なデータ構造をわかりやすく表現できる。 加えてスキーマレスなため、データの構成を柔軟に帰ることが出来る ●      レプリカセットによる冗長化対応 MySQLでも、マスタを冗長化するためには、MySQLCluster、MHAなどのプロダクトがあ

  • MySQL to HBase Heterogeneous Replication【実装編】 | 株式会社サイバーエージェント

    業務経歴: アメーバピグ開発運用などを経て、2010年よりHadoop/Hiveを用いたログ解析基盤開発・運用に従事。2011年よりAmeba Technology Laboratory研究室長。 概要 Hadoopを用いたログ集計基盤は次第に整備されつつあるが,集計にはユーザなどのいわゆるマスタデータ(会員登録情報,プロフィール情報など)とのJOINが必要とされることが多い. しかしながら,(特にAmebaサービスでは)マスタデータはMySQLに保存されていることが多く,さらにHDFSには追記処理しかできない(特定行の削除などができない)ためマスタデータをMySQLからダンプコマンドにより全データ取得し,HDFS上のファイルを置き換えるという非効率な処理に陥りがちである. そこで,MySQLからHadoop(HDFS)をベースとしながら,ランダムリード/ライトが可能なHBaseにデータ

    MySQL to HBase Heterogeneous Replication【実装編】 | 株式会社サイバーエージェント
  • Socket.IO, Redisを使用し各ゲーム間でプッシュ通知するシステム | 株式会社サイバーエージェント

    2. システム概要 homingは、アメーバピグ関連サービスのいずれかにログインしているユーザに対して、各サービスの通知情報を横断的にプッシュ通知します。 システムの構成は以下の通りです。 図2-1. システム概要 2-1. APIサーバ ユーザへの通知要求を受け付けるREST fullなAPIを備えたWebサーバです。 Node.jsのClusterによる、master/worker構成で稼働します。 通知要求はワーカプロセスで処理します。 図2-2. APIサーバ 2-2. Redisサーバ(データストア用) 一時的なデータをストアするためのRedisサーバです。 sentinelプロセスによる、master/slave構成で稼働します。 ストアされたデータはメモリ上のみで管理し、ディスクへの書き込みは行いません。 以下の情報を管理します。 ユーザのオンライン情報 ユーザIDの索

    Socket.IO, Redisを使用し各ゲーム間でプッシュ通知するシステム | 株式会社サイバーエージェント
  • Socket.IO, Redisを使用し各ゲーム間でプッシュ通知するシステム | 株式会社サイバーエージェント

    2. システム概要 homingは、アメーバピグ関連サービスのいずれかにログインしているユーザに対して、各サービスの通知情報を横断的にプッシュ通知します。 システムの構成は以下の通りです。 図2-1. システム概要 2-1. APIサーバ ユーザへの通知要求を受け付けるREST fullなAPIを備えたWebサーバです。 Node.jsのClusterによる、master/worker構成で稼働します。 通知要求はワーカプロセスで処理します。 図2-2. APIサーバ 2-2. Redisサーバ(データストア用) 一時的なデータをストアするためのRedisサーバです。 sentinelプロセスによる、master/slave構成で稼働します。 ストアされたデータはメモリ上のみで管理し、ディスクへの書き込みは行いません。 以下の情報を管理します。 ユーザのオンライン情報 ユーザIDの索

  • Chef実践入門 ~コードによるインフラ構成の自動化 | 株式会社サイバーエージェント

    書は、サーバ構築自動化・構成管理ソフトウェアであるChefの解説書です。まずはスタンドアロンで利用できるChef Soloを利用し、設定ファイルとなるクックブックの書き方を解説します。そして、現場でよく利用する環境をChefを使って構築するためのノウハウや、クックブックのテスト、継続的インテグレーションなど実践的な解説も行います。後半では、つまずきがちなポイントや、Chef Serverを利用した大規模環境の構築・運用方法を解説しています。コードを出しながら解説しているので、すぐに役立つ知識が身に付くはずです。 著者の1人、並河 祐貴が当社社員です。 出版社 技術評論社 発行年 2014年 著者 吉羽 龍太郎, 安藤 祐介, 伊藤 直也, 菅井 祐太朗, 並河 祐貴 形式 単行(ソフトカバー) 金額 2992円(税込)

  • 【CyberAgent】技術情報/TechReport - テックレポート/MongoDBの運用について | 株式会社サイバーエージェント

    ■はじめに 弊社でも、ピグライフをはじめとしてモバイルゲームなどのサービスでMongoDBを使い始めています。 運用に関してはMySQL等にはまだノウハウ的にはかなわないものの、NoSQLのジャンルの中では有用なプロダクトであるといえるかと思います。 ですが、運用に関しての共有ができておらず、有効な使い方ができていないパターンも多いです、そのため運用に関してノウハウを共有するための資料を作成しました。 ■概要/特徴 MongoDBには以下のような特徴がある ●      BSONによる、JSONによるスキーマレスなデータ運用 これにより、柔軟なデータ構造をわかりやすく表現できる。 加えてスキーマレスなため、データの構成を柔軟に帰ることが出来る ●      レプリカセットによる冗長化対応 MySQLでも、マスタを冗長化するためには、MySQLCluster、MHAなどのプロダクトがあ

  • メンテナブルCSS

    概要 メンテナブルなCSSを目指し、定義された一般的なCSSルールの紹介と、それらのルールを適用するにあたって活用できるツールを報告します。 1. 序論 CSSは記述ルールが簡素であり、少しの学習コストですぐに記述ができる手軽なツールです。 しかし、大規模なアプリケーションで複数人で開発するケース等では、見栄えだけしか考えずに身勝手にコーディングしてしまうと、 非常にメンテナンスコストがかかる負の遺産が作られてしまいます。 そのためCSSの品質を保つために様々なプロジェクトで、CSSの定義ルールが決められています。 稿では一般的なCSSの定義ルールと、そのルールがなぜ作られたのかを合せて報告致します。 また、CSSのルールを適用するにあたって、手動・目視でルールの適用をチェックするのは非常にコストが高い作業です。 これらルールの適用を補助するツール群を、合せて報告致します。

  • 【CyberAgent】技術情報/TechReport - テックレポート/Amazon Web Servicesについて | 株式会社サイバーエージェント

    概要 既存のインフラを利用しないで、「Amazon Web Services」(以後AWS)のみを利用し新規でサービス展開を行う場合に必要な情報、知識をまとめる。 注意 基的な利用方法を除外し、実際の構築時に必要なトピックスに焦点をあてドキュメントを作成しました。 特にオープンに公開されている情報については割愛(Web及び書籍で多数公開されている情報)しています。 補足 ドキュメントは、2012/08時点でのAWSで提供されているサービスを元に記述されています。AWSは日々新機能がリリースされていますので、利用する際は最新の情報を取得してください。 目次 概要 注意 補足 目次 序論 クラウドのメリット クラウドのデメリット AWSの製品・サービス構成 内容 アカウント管理 Consolidated Billing(一括決済) 使用例 作成手順 補足 AWS Support 補足 A

  • アルゴリズムを読み解く能力のみ・面接なしで内定を決定する採用方法「アルゴリズム採用」を開始します | 株式会社サイバーエージェント

    2012年9月28日 アルゴリズムを読み解く能力のみ・面接なしで内定を決定する採用方法「アルゴリズム採用」を開始します サイバーエージェントはアルゴリズムを解く能力によって内定を決定する採用方法「アルゴリズム採用」を開始します。 「アルゴリズム採用」は新卒採用のエンジニア職のみを対象とし、アルゴリズムを読み解く力のみで合否を決定します。 バラバラになったプログラムからアルゴリズムを読み取り、意味のあるプログラムを完成させていただきます。 主なプログラミング言語であるC、C++、C#、Obj-C、JavaPythonJavaScript、Fortranの8つから好きなものを1つ選択し挑戦することができます。 日程 11月中旬 ※詳細は後日マイページよりご連絡いたします。 まずはマイページにご登録ください。 実施内容 1次選考では学生数名がチームとなってプログラムからアルゴリズムを読み解き

  • 1