エンジニアを高める社内勉強会のススメ

gumiでは社内勉強会を毎週(週に1〜2回)行っています。
gumiで行っている勉強会は主に3つあり、

  1. 社内のエンジニアの発表/LT
  2. 社外から呼んだエンジニアの発表
  3. 社内エンジニアの手を動かすハンズオン

といったことを行っています。

なぜ3種類あるかというと、
これらは意味が違うと考えているからです。

1.では、

社内のエンジニアの発表はそのエンジニアが持っているバックグラウンドの話(例えば、趣味で作っているゲームや、触っている言語の話)、
社内で関わっているプロジェクトの振り返りを行っていますし、

2.では、

社外からは様々なエンジニアをお呼びし、
MySQL、GAE、Django、SQLAlchemyといった各分野のスペシャリストにお話をお願いしています。

3.では、

ハンズオンではPythonでのPILによる画像処理や、Pygameによる簡単なゲーム作成、
基本にかえって、DjangoのTipsなどを行ったりもしています。

それぞれ、
・共有
・啓蒙
・実践
といったような意味を持っていると考えています。


よくある話として、
「業務が忙しすぎるので」
といったことで勉強会を行っていなかったり、
「業務の役に立たないから」
という事でこういったことが認められない事もありますが、
こうした事を行っていくことがエンジニアの

意識を高めること、
モチベーションを高めること、
技術を高めること、

になると考えています。

今は勉強会ブームで様々な勉強会が常に行われていますが、
こうした効果が如実に見られる社内勉強会は本当にオススメです!

Facebookアプリ開発で知っておくべき仕様の話(基礎) gumiStudy#11開催しました

こんにちは、gumiの新居です。
遅くなりましたが、昨年12月21日、株式会社マイネット・ジャパン様と共催でgumiStudyを開催致しました。
概要はこちら http://atnd.org/events/22907


今回のテーマはFacebookアプリ勉強会。
弊社からはCTOの堀内、株式会社マイネット・ジャパン様からは伊藤さんと後藤さんに発表して頂きました。
発表資料は本記事下部にシェアさせて頂きます。


ということで、発表して頂いた内容の中から気になったポイントや重要だと思うポイントを初心者目線で簡単にまとめてみました。

具体的な実装方法などには触れていませんが、開発する上で当たり前に知っていないといけない内容だと思います。


1. オブジェクト(Objects)
Facebook上では、ユーザー、写真、アルバム、投稿など全てが「オブジェクト」という概念で扱われる。
全てのオブジェクトはidとtypeを持ち、idは同一のid空間で管理されている。
そして、idさえ分かればどんなオブジェクトにもアクセスすることができる。

伊藤さんの発表で「facebookアプリ開発者が覚えておくべき基本的な8種類のオブジェクトタイプ」として紹介されたものを以下に列挙してみました。

 1. type:user facebookを利用しているユーザー
 2. type:page 会社、学校、言語など世の中に存在するあらゆる存在
 3. type:status ユーザーによって投稿された文字だけの近況
 4. type:link ユーザーによって投稿されたURL
 5. type:photo ユーザーによって投稿された画像
 6. type:album ユーザーによって作成されたアルバム
 7. type:event ユーザーによって作成された行事
 8. type:friendlist ユーザーが作成した友達のリストなど

以上、伊藤さんの発表資料を参考にざっくり列挙してみました。(詳細は下部の発表資料へ)
これだけ覚えておけば多分大丈夫みたいです!!


2. ソーシャルプラグイン(Social Plugins)
アプリケーションやサイトにFacebookの機能を埋め込む仕組み。

 1. Like Button
 2. Send Button
 3. Subscribe Button
 4. Comments
 5. Activity Feed
 6. Recommendations
 7. Like Box
 8. Login Button
 9. Registration
 10. Facepile
 11. Live Stream

Facebookユーザーなら押したことがあるでしょう「いいね!ボタン(Like Button)」や、自分の特定の友達やグループに対して情報を共有したいときに使える「送信ボタン(Send Button)」など、自分のサイトにFacebookのソーシャル機能を簡単に実装することができます。
実装自体も簡単なHTMLを追加するだけですので、非常にシンプルで簡単に使えるプラグイン達です。


3. グラフAPI(Graph API
Facebookの核となる機能で、Facebook上のデータ(オブジェクト)にアクセスするためのAPI、または、オブジェクトとオブジェクト間のつながりなどの情報を提供するAPI
Graph API Explorerを使うことでjson形式の内部データ構造を見ることができ、プログラムを組む前にGraph APIの動作を確認することができる。
Graph API Explorer

また、Facebookは非常にシンプルなURL構造となっており、http://www.facebook.com/xxxの×××をオブジェクト(ユーザー、写真など)のusernameやidにするとそのオブジェクトにアクセスすることができる。

こちらのhttps://graph.facebook.com/xxxの×××をオブジェクトのusernameやidにしてアクセスすると、そのオブジェクトが持っている要素にアクセスすることができる。

  • サンプル

gumiのfacebookページのusernameはgu3.co.jpですので、これを使ってアクセスしてみると、、、
https://graph.facebook.com/gu3.co.jp

{
"id": "141730815839028",
"name": "gumi Inc",
"picture": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/187859_141730815839028_1468866018_s.jpg",
"link": "http://www.facebook.com/gu3.co.jp",
"likes": 90,
"category": "Internet/software",
"website": "http://gu3.co.jp/",
"username": "gu3.co.jp",
"founded": "June 13, 2007",
"company_overview": "gumi Inc offers a variety of games on multiple social networks in Japan, including Mixi, Mobage, and GREE. gumi`s game library includes The Kamikaze Detective, Tokyo Night Life WARS, The End of Samurai, Hunters, Tokyo Kawaii Model and Yakuza Wars among others.",
"mission": "Changing the World through Innovations in Entertainment and Technology ",
"products": "Social Gaming Applications",
"location": {
"street": "\u897f\u65b0\u5bbf4-15-7 ",
"city": "Shinjuku-ku",
"country": "Japan",
"zip": "160-0023"
},
"can_post": true,
"talking_about_count": 2
}

このオブジェクト(この場合はFacebookページ)の持つ要素にアクセスすることができました。
グラフAPIについて簡単に紹介してみましたが、当然ながら奥が深いです。
公式サイト→ http://developers.facebook.com/docs/reference/api/


4. オープングラフプロトコル(Open Graph Protocol)
Facebookに対してアプリケーションやサイトの情報を伝えるための仕組み。
もっと詳しく言うと、自分があるサイトのいいね!ボタンをクリックしたときに、このオープングラフプロトコルを実装していないサイトの場合「〇〇さんが×××についていいね!と言っています」という表示になる(×××とは、そのサイトのリンク)。
しかし、このオープングラフプロトコルを実装しているサイトの場合、追加情報としてサムネイルやページタイトル、説明を追加することができる(Facebookを見たときに注意して見てみると理解できると思います)。
「いいね!」されたときや「いいね!」したときに少しでも多くの情報を共有することができるので、開発者にとっても、「いいね!」を押して情報を友達に共有したいユーザーにとってもメリットの多い仕様だと思います。


また、実装方法も簡単で、HTMLにmetaタグを追加するだけで実装できるようです。
HTMLがさわれる人なら誰でも実装できそうですね!!簡単!!

  • 基本形
 <meta property="属性" content="内容"/>
  • サンプル

前の記事「世界中のエンジニアが目指す企業に向けて」のソースを表示してみるとheadタグの中にありました。

 <head>
    ...
    <meta property="og:type" content="article">
    <meta property="og:title" content="世界中のエンジニアが目指す企業に向けて - gumi Engineer’s Diary">
    <meta property="og:image" content="http://cdn-ak.f.st-hatena.com/images/fotolife/g/gumilab/20111125/20111125183622.jpg">
    <meta property="og:url" content="http://d.hatena.ne.jp/gumilab/20111125/1322219434">
    <meta property="og:description" content="gumiの堀内です! この度、海外戦略の一環としてPlayfishのエンジニアと開発を行いました。 勿論、彼らはす..">
    <meta property="og:site_name" content="はてなダイアリー">
    ...
  </head>

こうやって見るととても分かりやすいと思います。

  • Object type

また、使用できるObject typeもたくさん用意されています(Object typeとは meta property="og:×××" の×××の部分)。
中には cafe(カフェ!?) とか locality(場所) などいろいろあります。
公式サイトへいくといろいろ見れますよ→ http://developers.facebook.com/docs/opengraph/




以上、超導入編みたいなまとめになってしまいました。
シェアさせて頂いた発表資料には、わかりやすいグラフィックや詳しい内容、この記事には書いてないこともありますので、ぜひ発表資料を参考にしてみてください。


最後に、gumiStudyに参加して頂きました皆様、共催させて頂きました株式会社マイネット・ジャパン様、伊藤さん、後藤さん、ありがとうございました。

次回は「gumiStudy#12 x ニューフォリア HTML5勉強会」を開催いたします!!!!
登録はこちら http://atnd.org/events/23875

たくさんの方々のご参加お待ちしております。


弊社CTO堀内


株式会社マイネット・ジャパン伊藤さん


株式会社マイネット・ジャパン後藤さん

世界中のエンジニアが目指す企業に向けて

gumiの堀内です!

この度、海外戦略の一環としてPlayfishのエンジニアと開発を行いました。
勿論、彼らはすべて英語、
意思疎通は難しいかとも思われましたが、
そこはエンジニア、技術話に花が咲きました。
*1
社内での取り組みや、その成果が生かされた瞬間です。

例えば、これは弊社和室(会議室)にて、
MySQLの設計やチューニングに関して、討論を交わしている様子です。


数百万DAUをさばくという英Playfishエンジニアと話すことで、
直伝のチューニング技術を弊社でも取り入れ、
さらなる大規模に対応し、世界を狙っていきます。


今まで、弊社にはいくつかのステージがありましたが、
今まさに新しいステージへと駆け上ろうとしています。


例えばAWS x Python x Django という構成、
ずっとこれで進めてきましたが、
これもまた変わろうとしています。


初めてSNSを開発した頃はこれらの技術はとても新鮮でしたが、
時代は巡り、また新しい時代が来ていることを震撼せずにはいられません。


今まで以上にスケーリングできる環境と柔軟な開発体制を整えて行ければと思っています。
世界を目指したいエンジニアは是非一緒に働きましょう!

*1:弊社では海外戦略の一貫として英会話の講師を招いて社内授業も行っています。

gumiStudy #10「ソーシャルゲームの解析を支える技術-Hadoop編-」開催致しました

度々登場しております、gumiの新居です。
最近勉強会報告のブログばかりとなっておりますが、また何か面白いネタがあれば書きたいなーと思いつつ業務に追われ後手後手に回っております。。。


ということで、遅くなりましたが、先日11/8(火)、【エンジニアカフェEvent×gumiStudy】ソーシャルゲームの解析を支える技術-Hadoop編-を開催致しました。

ちなみにMongoDB編はこちら↓↓↓
gumiStudy #9「ソーシャルゲームの解析を支える技術-MongoDB編-」開催致しました

弊社からは堀内と本間、そしてAmazon Web ServicesAWS)を提供されているアマゾンデータサービスジャパン株式会社から大谷様をお招きし、発表を頂きました。



会場は、今回もパソナテック様にご提供頂きました。



ソーシャルゲームとデータ解析

まずは弊社CTO堀内から、開会の挨拶と「ソーシャルゲームとデータ解析」に関して発表させて頂きました。
ソーシャルゲーム業界の現状、そしてソーシャルゲームをプレイされているお客様の行動を取得し、ゲームを最適化するための弊社でのデータ解析手法などを紹介させて頂きました。


↑大量のデータを高速に処理し、改善していくことが大切!!



Amazonが提供するHadoopサービス、Elastic MapReduce

続いて、アマゾンデータサービスジャパン株式会社にてソリューションアーキテクトとして日々お客様により効果のあるシステムを提供すべく、Amazonクラウドを使ったシステム導入・アーキテクチャ設計の支援などをされております大谷様に発表を頂きました。

今回の発表では、アマゾンデータサービスジャパン株式会社様がご提供されているサービスの中から、Hadoopを利用した分散処理のサービスであるAmazon Elastic MapReduce(EMR)のご紹介を頂きました。

昨今のWebサービスやWebアプリケーションには付き物であるBigDataをどう扱うのか?という論点からHadoopを利用するメリットやデモなども行なって頂き、興味深い内容となっておりました。



Hadoopファミリーのロゴのくだりも面白かったです。



解析システムにおけるHadoopの事例

最後に、弊社サーバエンジニア(兼解析エンジニア)の本間が発表させて頂きました。
前回のMongoDB編に引き続き、Hadoopという視点から弊社のデータ解析手法やHadoopの導入事例などを紹介させて頂きました。


↑弊社のログ解析システムの構想!

当日の発表資料は以下SlideShareにて共有させて頂きます。



ということで、毎回簡素なレポートではありますが、更に詳しい内容などにご興味のある方は上記の資料などもご参考にして頂けると幸いです。

最後に、gumiStudy #10にご参加頂いた皆様、今回も会場をご提供頂きましたパソナテック様、有難う御座いました。
そして大谷さん有難う御座いました。

【リクルートエージェント×gumiStudy@福岡】 ソーシャルゲームの解析を支える技術〜 MongoDB編〜開催いたします!!

こんにちは。エンジニアの新居です。
今日は勉強会の告知をさせて頂きます。

先日gumiの地方拠点として開設致しました、福岡オフィスのある福岡にて、11月19日(土)【リクルートエージェント×gumiStudy@福岡】 ソーシャルゲームの解析を支える技術〜 MongoDB編〜を開催いたします!!


今回のテーマであるMongoDBは、弊社の解析技術にも導入している注目のドキュメント指向データベースです。
先日開催しました東京での勉強会レポートはこちら↓↓↓
gumiStudy #9「ソーシャルゲームの解析を支える技術-MongoDB編-」開催致しました


当日は、弊社CTO堀内と、弊社サーバエンジニア(兼解析エンジニア)の本間が登壇させて頂きます。
詳細に関しては,以下を御覧ください。
皆さんの参加をお待ちしております!!


※※※ 参加お申し込みはこちら ※※※
【リクルートエージェント×gumiStudy@福岡】 ソーシャルゲームの解析を支える技術〜 MongoDB編〜



勉強会背景

Webテクノロジーで福岡を盛り上げる!gumiStudyとリクルートエージェントのコラボ勉強会

日々更新改善ができるソーシャルゲームにおいては、日々増え続ける膨大なログデータを有効に利用したアジャイルな開発・運用が必要となります。
今回は、gumiも活用している注目の技術であるMongoDBをテーマに絞って、ソーシャルゲームの解析を支える技術を学ぶ勉強会を開催します。

当日のコンテンツ

MongoDBの概要から、ソーシャルゲーム業界の状況、gumiが実際に活用した導入事例を元に、「なぜMongoDBなのか」「どういうポイントがあるのか」などを探っていきたいと思います。

また、勉強会の後は、簡単な懇親会もご用意しています。
当日ご講演いただくお二人をはじめ、福岡のWeb業界を盛り上げたいと考えている皆様が集まる場ですので、ぜひ懇親を深めていただければと思います。
ここでの出会いが、後に生活を変えるようなWebサービスの誕生に繋がるかも!?

※本企画は、転職セミナーではございません。
※当日のコンテンツの参考とするため、お申し込み時にいただいたエントリー情報については個人を特定できない形でgumi社に共有させていただきます。あらかじめご了承ください。



対象
Webテクノロジーにご興味をお持ちのエンジニアの方



当日の内容
第一部 勉強会 ソーシャルゲーム業界の現状について:堀内康弘氏(15分)
        解析システムにおけるMongoDBの事例:本間氏(40分)
第二部 懇親会(60分)



開催日時
11月19日(土)12:40受付開始
第一部 13:00〜14:00
第二部 14:00〜15:00



持ち物
筆記用具(アンケートご記入用にお持ち下さい)
名刺(受付用と名札用に2枚お持ち下さい)



参加費用
勉強会、懇親会ともに無料



※※※ 参加お申し込みはこちら ※※※
【リクルートエージェント×gumiStudy@福岡】 ソーシャルゲームの解析を支える技術〜 MongoDB編〜

AWS × gumi 合同勉強会

gumiエンジニアの新居です。

少々遅くなりましたが、10/28(金)、Amazon Web Services (AWS)を提供されているアマゾンデータサービスジャパン株式会社様との社内合同勉強会を開催させて頂きました。
簡単にではありますが、今回も勉強会の報告をさせて頂きます。
(今回は写真ばっかりですがw)




今回はgumi大会議室にて開催。
アマゾンデータサービスジャパン株式会社の皆様にお越し頂きました。


アマゾンデータサービスジャパン株式会社様からは、荒木様、片山様、大谷様、玉川様に発表を頂きました。
弊社からは、インフラエンジニアの石川と本間が発表させて頂きました。


荒木様

クラウドでエンジニアの幅を広げよう アマゾンクラウドを使ったセルフトレーニングのススメ」


片山様

「CloudFormationのお話」


大谷様


ハロウィーンに贈るちょっとした小話」
ちょうどハロウィーンパーティーがあったようで、その時の仮装姿なども!!


弊社インフラエンジニア 石川


「OnAWS」
弊社のサーバ構成や障害の歴史など、私も知らないことがたくさんでした。


弊社インフラエンジニア 本間

ソーシャルゲームログ解析のHadoop活用状況 ~gumiさん、象さんと戯れる~」
MongoDB、Hadoopなどを使用した弊社の解析システムの現状について発表させて頂きました。


玉川様

「HPC Clusterを10分間で作ろう!」
弊社CTO堀内とモンハン仲間だったという玉川様。
実際にHPC Clusterのデモをして頂きました!!!!



勉強会の内容、詳細に関しては割愛させて頂きましたが、雰囲気伝わりましたでしょうか。


弊社ソーシャルゲームAWSを利用して運用しており、AWSユーザーとして技術の共有やAWS関連の高度な技術の共有等々させて頂きました。


(以下、弊社での導入事例などの記載もございますので、ご参考までに)
導入事例 株式会社gumi: Amazon Web Services



私は業務ではアプリケーション側の開発をやっているので、高度な内容で難しい部分も多々ありましたが、とても有意義なお時間を共有させて頂くことが出来ました。

アマゾンデータサービスジャパン株式会社の皆様、貴重なお話をして頂きまして、本当に有難う御座いました。
今後も社内社外問わず積極的に勉強会などを開催していきたいと思っております。


(以下、直近開催予定の勉強会です)
【AWS×エンジニアカフェ×gumi】Facebookモバイルアプリ on AWSクラウド アイデアソン&ハッカソン



また弊社では、現在エンジニア積極採用中でございますので、弊社にご興味のある方やソーシャルゲーム開発にご興味のある方は、どしどしご応募ください!!
一緒にソーシャルゲームを作りましょう!!
http://gu3.co.jp/recruit.html

gumiStudy #9「ソーシャルゲームの解析を支える技術-MongoDB編-」開催致しました

こんにちは、gumiの新居です。

先日10/24(月)、祝gumiStudy復活ということで、約11ヶ月ぶりのgumiStudy #9
【エンジニアカフェEvent×gumiStudy】ソーシャルゲームの解析を支える技術-MongoDB編-
を、パソナテック様に会場をご提供頂き、開催致しました。


今回は、ドキュメント指向データベースで注目されているMongoDBをテーマとし、MongoDBの概要や弊社での導入事例などを発表して頂きました。
弊社からは、堀内、本間が発表させて頂きました。


ソーシャルゲーム業界の現状

弊社取締役CTOの堀内です。
ソーシャルゲーム業界の現状や弊社での取り組みについて、発表させて頂きました。

ソーシャルゲーム開発の概要や、膨大なトラフィック・膨大なログデータを扱うという技術的にも課題の多い領域で、チャレンジできる喜びや楽しさを説明して頂きました。

日々更新改善ができるソーシャルゲームにおいては、日々増え続ける膨大なログデータを有効に利用したアジャイルな開発・運用が必要となります。それを実現させるべく弊社ではMongoDBを導入しています。

Ustream http://www.ustream.tv/recorded/18081475



MongoDBの特徴と活用方法

ソーシャルアプリの解析基盤をはじめWebアプリ開発やコンサルを中心に現在フリーランスとして活動されている宮内氏をお迎えし、「MongoDBの特徴と活用方法」という内容で発表を頂きました。

MongoDBの前に「解析とは?」という視点の説明から入り、「解析とは、砂漠の中から砂金を探すようなもの、データを分析し行動を変え結果を向上させる継続的活動」という表現をされていたり、解析無知の私にも解析の難しさや大変さがイメージできる内容で、とても勉強になりました。

そして解析という前提のお話の後に、たっぷりとMongoDBのお話をして頂きました。
スライドも共有させて頂きましたので、合わせてチェックしてみてください。


Ustream http://www.ustream.tv/recorded/18081556



解析システムにおけるMongoDBの事例

弊社サーバエンジニア(兼解析エンジニア)の本間です。
「解析システムにおけるMongoDBの事例」ということで、弊社でのログ解析の現状やこれからの取組みについて発表させて頂きました。

これまでのgumiでは、ユーザの行動詳細や各アプリにおけるイベントがどのように遊ばれたかなどを解析する共通の仕組みがありませんでした。膨大に蓄積されていくログデータを前にして、ログデータを有効利用したイベントの施策がなされていないことは大きな課題でもあります。この点で、現場のゲーム開発者やディレクターは勿論、経営陣やカスタマーサポートにおいて共通のログデータ解析システムを構築し、有効なデータを共有し活用する仕組み作りは必須となります。

そこでMongoDBと次回gumiStudyのテーマでもあるHadoopなどを用いて解析システムの構築を行なっております。
発表後半では、現在のシステム構成などの技術的なお話もありましたので、以下のスライドで詳細をチェックしてみてください。


Ustream http://www.ustream.tv/recorded/18082185




勉強会は↑↑↑こんな感じでした。

久々のgumiStudyではありましたが、ご参加頂いた皆様有難う御座いました。
今回会場をご提供頂きましたパソナテック様、有難う御座いました。
そして宮内さん有難う御座いました。


次回は11月8日19時〜21時です。
登録、詳細はこちら↓↓↓
【エンジニアカフェEvent×gumiStudy】ソーシャルゲームの解析を支える技術-Hadoop編-