2012-02-17
エンジニアを高める社内勉強会のススメ
gumiでは社内勉強会を毎週(週に1〜2回)行っています。
gumiで行っている勉強会は主に3つあり、
といったことを行っています。
なぜ3種類あるかというと、
これらは意味が違うと考えているからです。
1.では、
社内のエンジニアの発表はそのエンジニアが持っているバックグラウンドの話(例えば、趣味で作っているゲームや、触っている言語の話)、
社内で関わっているプロジェクトの振り返りを行っていますし、
2.では、
社外からは様々なエンジニアをお呼びし、
MySQL、GAE、Django、SQLAlchemyといった各分野のスペシャリストにお話をお願いしています。
3.では、
ハンズオンではPythonでのPILによる画像処理や、Pygameによる簡単なゲーム作成、
基本にかえって、DjangoのTipsなどを行ったりもしています。
それぞれ、
・共有
・啓蒙
・実践
といったような意味を持っていると考えています。
よくある話として、
「業務が忙しすぎるので」
といったことで勉強会を行っていなかったり、
「業務の役に立たないから」
という事でこういったことが認められない事もありますが、
こうした事を行っていくことがエンジニアの
意識を高めること、
モチベーションを高めること、
技術を高めること、
になると考えています。
今は勉強会ブームで様々な勉強会が常に行われていますが、
こうした効果が如実に見られる社内勉強会は本当にオススメです!
2012-01-08
Facebookアプリ開発で知っておくべき仕様の話(基礎) gumiStudy#11開催しました
こんにちは、gumiの新居です。
遅くなりましたが、昨年12月21日、株式会社マイネット・ジャパン様と共催でgumiStudyを開催致しました。
概要はこちら http://atnd.org/events/22907
弊社からはCTOの堀内、株式会社マイネット・ジャパン様からは伊藤さんと後藤さんに発表して頂きました。
発表資料は本記事下部にシェアさせて頂きます。
ということで、発表して頂いた内容の中から気になったポイントや重要だと思うポイントを初心者目線で簡単にまとめてみました。
具体的な実装方法などには触れていませんが、開発する上で当たり前に知っていないといけない内容だと思います。
1. オブジェクト(Objects)
Facebook上では、ユーザー、写真、アルバム、投稿など全てが「オブジェクト」という概念で扱われる。
全てのオブジェクトはidとtypeを持ち、idは同一のid空間で管理されている。
そして、idさえ分かればどんなオブジェクトにもアクセスすることができる。
伊藤さんの発表で「facebookアプリ開発者が覚えておくべき基本的な8種類のオブジェクトタイプ」として紹介されたものを以下に列挙してみました。
1. type:user facebookを利用しているユーザー
2. type:page 会社、学校、言語など世の中に存在するあらゆる存在
3. type:status ユーザーによって投稿された文字だけの近況
5. type:photo ユーザーによって投稿された画像
6. type:album ユーザーによって作成されたアルバム
7. type:event ユーザーによって作成された行事
8. type:friendlist ユーザーが作成した友達のリストなど
以上、伊藤さんの発表資料を参考にざっくり列挙してみました。(詳細は下部の発表資料へ)
これだけ覚えておけば多分大丈夫みたいです!!
アプリケーションやサイトに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を追加するだけですので、非常にシンプルで簡単に使えるプラグイン達です。
Facebookの核となる機能で、Facebook上のデータ(オブジェクト)にアクセスするためのAPI、または、オブジェクトとオブジェクト間のつながりなどの情報を提供するAPI。
Graph API Explorerを使うことでjson形式の内部データ構造を見ることができ、プログラムを組む前にGraph APIの動作を確認することができる。
また、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堀内
株式会社マイネット・ジャパン伊藤さん
株式会社マイネット・ジャパン後藤さん
2011-11-25
世界中のエンジニアが目指す企業に向けて
gumiの堀内です!
この度、海外戦略の一環としてPlayfishのエンジニアと開発を行いました。
勿論、彼らはすべて英語、
意思疎通は難しいかとも思われましたが、
そこはエンジニア、技術話に花が咲きました。
社内での取り組みや、その成果が生かされた瞬間です。
例えば、これは弊社和室(会議室)にて、
MySQLの設計やチューニングに関して、討論を交わしている様子です。
数百万DAUをさばくという英Playfishエンジニアと話すことで、
直伝のチューニング技術を弊社でも取り入れ、
さらなる大規模に対応し、世界を狙っていきます。
今まで、弊社にはいくつかのステージがありましたが、
今まさに新しいステージへと駆け上ろうとしています。
例えばAWS x Python x Django という構成、
ずっとこれで進めてきましたが、
これもまた変わろうとしています。
初めてSNSを開発した頃はこれらの技術はとても新鮮でしたが、
時代は巡り、また新しい時代が来ていることを震撼せずにはいられません。
今まで以上にスケーリングできる環境と柔軟な開発体制を整えて行ければと思っています。
世界を目指したいエンジニアは是非一緒に働きましょう!
2011-11-22
gumiStudy #10「ソーシャルゲームの解析を支える技術-Hadoop編-」開催致しました
度々登場しております、gumiの新居です。
最近勉強会報告のブログばかりとなっておりますが、また何か面白いネタがあれば書きたいなーと思いつつ業務に追われ後手後手に回っております。。。
ということで、遅くなりましたが、先日11/8(火)、【エンジニアカフェEvent×gumiStudy】ソーシャルゲームの解析を支える技術-Hadoop編-を開催致しました。
ちなみにMongoDB編はこちら↓↓↓
gumiStudy #9「ソーシャルゲームの解析を支える技術-MongoDB編-」開催致しました
弊社からは堀内と本間、そしてAmazon Web Services(AWS)を提供されているアマゾンデータサービスジャパン株式会社から大谷様をお招きし、発表を頂きました。
会場は、今回もパソナテック様にご提供頂きました。
ソーシャルゲームとデータ解析
まずは弊社CTO堀内から、開会の挨拶と「ソーシャルゲームとデータ解析」に関して発表させて頂きました。
ソーシャルゲーム業界の現状、そしてソーシャルゲームをプレイされているお客様の行動を取得し、ゲームを最適化するための弊社でのデータ解析手法などを紹介させて頂きました。
↑大量のデータを高速に処理し、改善していくことが大切!!
Amazonが提供するHadoopサービス、Elastic MapReduce
続いて、アマゾンデータサービスジャパン株式会社にてソリューションアーキテクトとして日々お客様により効果のあるシステムを提供すべく、Amazonクラウドを使ったシステム導入・アーキテクチャ設計の支援などをされております大谷様に発表を頂きました。
今回の発表では、アマゾンデータサービスジャパン株式会社様がご提供されているサービスの中から、Hadoopを利用した分散処理のサービスであるAmazon Elastic MapReduce(EMR)のご紹介を頂きました。
昨今のWebサービスやWebアプリケーションには付き物であるBigDataをどう扱うのか?という論点からHadoopを利用するメリットやデモなども行なって頂き、興味深い内容となっておりました。
↑Hadoopファミリーのロゴのくだりも面白かったです。
解析システムにおけるHadoopの事例
最後に、弊社サーバエンジニア(兼解析エンジニア)の本間が発表させて頂きました。
前回のMongoDB編に引き続き、Hadoopという視点から弊社のデータ解析手法やHadoopの導入事例などを紹介させて頂きました。
↑弊社のログ解析システムの構想!
当日の発表資料は以下SlideShareにて共有させて頂きます。
ということで、毎回簡素なレポートではありますが、更に詳しい内容などにご興味のある方は上記の資料などもご参考にして頂けると幸いです。
最後に、gumiStudy #10にご参加頂いた皆様、今回も会場をご提供頂きましたパソナテック様、有難う御座いました。
そして大谷さん有難う御座いました。
2011-11-16
【リクルートエージェント×gumiStudy@福岡】 ソーシャルゲームの解析を支える技術〜 MongoDB編〜開催いたします!!
こんにちは。エンジニアの新居です。
今日は勉強会の告知をさせて頂きます。
先日gumiの地方拠点として開設致しました、福岡オフィスのある福岡にて、11月19日(土)【リクルートエージェント×gumiStudy@福岡】 ソーシャルゲームの解析を支える技術〜 MongoDB編〜を開催いたします!!
今回のテーマであるMongoDBは、弊社の解析技術にも導入している注目のドキュメント指向データベースです。
先日開催しました東京での勉強会レポートはこちら↓↓↓
gumiStudy #9「ソーシャルゲームの解析を支える技術-MongoDB編-」開催致しました
当日は、弊社CTO堀内と、弊社サーバエンジニア(兼解析エンジニア)の本間が登壇させて頂きます。
詳細に関しては,以下を御覧ください。
皆さんの参加をお待ちしております!!
※※※ 参加お申し込みはこちら ※※※
【リクルートエージェント×gumiStudy@福岡】 ソーシャルゲームの解析を支える技術〜 MongoDB編〜
勉強会背景
Webテクノロジーで福岡を盛り上げる!gumiStudyとリクルートエージェントのコラボ勉強会
日々更新改善ができるソーシャルゲームにおいては、日々増え続ける膨大なログデータを有効に利用したアジャイルな開発・運用が必要となります。
今回は、gumiも活用している注目の技術であるMongoDBをテーマに絞って、ソーシャルゲームの解析を支える技術を学ぶ勉強会を開催します。
当日のコンテンツ
MongoDBの概要から、ソーシャルゲーム業界の状況、gumiが実際に活用した導入事例を元に、「なぜMongoDBなのか」「どういうポイントがあるのか」などを探っていきたいと思います。
また、勉強会の後は、簡単な懇親会もご用意しています。
当日ご講演いただくお二人をはじめ、福岡のWeb業界を盛り上げたいと考えている皆様が集まる場ですので、ぜひ懇親を深めていただければと思います。
ここでの出会いが、後に生活を変えるようなWebサービスの誕生に繋がるかも!?
※当日のコンテンツの参考とするため、お申し込み時にいただいたエントリー情報については個人を特定できない形でgumi社に共有させていただきます。あらかじめご了承ください。
対象
当日の内容
第一部 勉強会 ソーシャルゲーム業界の現状について:堀内康弘氏(15分)
解析システムにおけるMongoDBの事例:本間氏(40分)
第二部 懇親会(60分)
開催日時
11月19日(土)12:40受付開始
第一部 13:00〜14:00
第二部 14:00〜15:00
持ち物
筆記用具(アンケートご記入用にお持ち下さい)
名刺(受付用と名札用に2枚お持ち下さい)
参加費用
勉強会、懇親会ともに無料
※※※ 参加お申し込みはこちら ※※※











