タグ

ブックマーク / labs.gree.jp (252)

  • イケててヤバいGit入門 | GREE Engineering

    この投稿はGREE Advent Calendar 2013 20日目の記事です。 プロデューサーの皆さん、みりっほー。進捗どうですか?私はダメです。ごめんなさい。(´・ω・`) WG事業部の二宮です。今日はアイマス駆動開発の話をしようかと思ったのですが、急遽Gitの使い方の話に変更しました(Inspired by 堀口先生)。 アイマス駆動開発の話が気になる方は、是非一緒に飲みに行きましょうw ※この記事では、ツールにGitGitHubを利用することを想定しております。 Gitをスマートに使いたい グリーでは、基的にA successful Git branching model(有志の方による日語訳)にのっとって開発しています。 Gitについて基的な考え方の部分は堀口さんの記事で言及されているので、私は現場で具体的にどのような使い方をしているのかについて書きたいと思います。 と

    イケててヤバいGit入門 | GREE Engineering
  • GREE Tech Talk #4 ご来場ありがとうございました | GREE Engineering

    開発企画室のimagireです。 GREE Advent Calendar を楽しんでいただいている方々には申し訳ございませんが、こちらは、Advent Calendar のエントリーではございません。 はじめに みなさま、12/5に開催された第4回 GREE Tech Talk にご参加いただき、ありがとうございました。 当日は、ゆったりとしていただけるように会場を広く準備させていただきました。参加者の中にはスーツ姿のかたもちらほら見え、セッション中も熱心にメモを取られたりと、テストというテーマの固さがうかがえました。 セッション概要 軽くですが、セッションについて紹介させていただきます。 『モバイルテスティング・クロニクル』 松木 晋祐(株式会社ACCESS) 最初は、松木さんにお話しいただきました。 ここ最近の変化として、「Joel on Softwareの時代には、「パッケージ、イ

    GREE Tech Talk #4 ご来場ありがとうございました | GREE Engineering
  • グリーのネットワークエンジニアの日常 | GREE Engineering

    自己紹介 インフラストラクチャ部の黒河内です。 グリーにて主にゲームやPlatformのネットワークの設計・構築・運用を主に担当しております。 この話が来た際に何を話そうかなーと悩んだのですが、 今回はよく外の人から頂く、以下の質問に対して答えていこうと思います。 "グリーでネットワークエンジニアって実際になにやってるんですか?" ということで、きょうは私どもが、日頃にどういったことに取り組んでいるかを ご紹介させて頂きたいと思います。 "ネットワーク"といっても、大きくわけて2つの種類がありますので、それぞれご紹介をして参ります。 バックボーンネットワーク こちらは主にインターネットへの接続及びデータセンター同士を接続するネットワークとなります。 ここが無いとグリーはインターネットに接続できません。 またグリーはAS番号という番号をもっており、独自のネットワークを運用しております。 こ

    グリーのネットワークエンジニアの日常 | GREE Engineering
  • Scalaコードでわかった気になるDDD | GREE Engineering

    みなさん、こんにちは。グリーのかとじゅん(@j5ik2o)です。 このエントリは GREE Advent Calendar 2013 の 18日目の記事です。よろしくお願いします。 私がグリーに入社してやっていることは、プログラミング言語 Scalaとドメイン駆動設計(以下、DDD)の布教活動です。布教活動といっても宣伝するだけでは具体性に欠けるので、実際に開発チームに入ってScalaやDDDの技術支援を行っています。エントリでは、Scalaを用いたDDDの設計と実装をどのように行っているかを、DDDを知らない人でもできるだけわかりやすく説明したいと思います(Scalaわかっていると読みやすいですが、あんまり複雑なコードは出てこないのでなんとなく読めるのではないかと思います)。なお、DDDの実践例は他にもあります。一例だと思って読んでいただければ幸いです(先日のSNSチームでのドメイン駆

    Scalaコードでわかった気になるDDD | GREE Engineering
  • Varnishのログにアクセスしてみよう! | GREE Engineering

    こんにちは、Service Reliabilityチームのいわなちゃん(@xcir)です。チーム名が読みづらいのでSRやSレアと呼ばれたりもしています。レアリティが上がるように頑張って行きたいと考えています。 前回は「Varnishでテストコードを書こう!」という記事を書いたので、今回はGREE Advent calendar 2013の17日目も兼ねてVarnish Cache(以下Varnish)のログを読んだり加工してみたりしようと思います。 また、使用したVersionは3.0.3です。 Varnishのログのしくみ Proxyでアクセスログを取得したいというのはよくあると思います。通常のミドルウェアでは設定ファイルで出力ファイル名を決めたりします。しかし、Varnish体(varnishd)の設定ではそのような項目はありません。 では、Varnishはログを出していないのか?と

    Varnishのログにアクセスしてみよう! | GREE Engineering
  • swiffy x webview 構成のアプリでSE(音声)再生を実現する方法 | GREE Engineering

    こんにちは、アプリ制作勉強中のサーバーサイドエンジニア鈴木晃一です。 GREE Advent calendar 2013 の 16 日目として参加させていただきます。 LWF/unity/JS系各種ツール等々 ポストflash/HTML5時代の演出・アニメーションエンジンがシェアを争っている昨今スマートフォンゲーム業界ではあまり選択されることのないswiffyを用いてプロトタイピングを行う機会に恵まれたので、その時に取り組んだswiffy-webviewを用いたiOS/AndroidアプリでのSE(音源)再生の実現方法についてご紹介します。 ロードが遅いなど他にも問題はありますが、SE(音声)再生出来ないことがswiffy採用を見送る決め手になることも多いと思うのでこれでswiffyの活用機会が広がる…かも? 今回ご紹介する方法は、swfのtraceがswiffy実行時にconsole.l

    swiffy x webview 構成のアプリでSE(音声)再生を実現する方法 | GREE Engineering
  • ナウい「LWF」 | GREE Engineering

    こんにちは、WG基盤開発部ゲーム基盤チームの何です。内製プロダクトチームを陰から支える仕事をしています、チーム名を噛みやすいのが玉にキズ。最近はLWFをメインにフロントエンド周りのお・も・て・な・しをしています。滝川クリステルさん大好きです。 『GREE Advent Calendar 2013』15日目では ナウい「LWF」 と題しまして、LWFが最近どのように使われているのかを社内の活用例と共に紹介したいと思います。今更聞けないLWFの豆知識を始め、現場の開発で役立てているアシストツール、LWFの最新の事情についても触れていこうと思います。死語だらけの記事ですが、これを読んであなたもナウいLWFの世界へLet's Dive! LWFの簡単なおさらい 「LWF」- Lightweight SWFとはFlashコンテンツから変換したデータをマルチプラットフォームで再生可能にするアニメーショ

    ナウい「LWF」 | GREE Engineering
  • git による分散作業パターン | GREE Engineering

    分散バージョン管理を華麗に扱いたい堀口です。 GREE Advent calendar 2013 の 14 日目として参加させていただきます。 お二人に続き Haskell の話をしようかと思ったのですが、急遽無難な開発の話に変更しました :o JavaC++ には OOP の概念が必要であったように、分散作業の認識が薄いまま git や Mercurial を使うことは長期的に不幸をもたらします。 とあるプロジェクトにて、その一部を副産物のミドルウェアとして抽出すべく、アプリケーションと分離したい 不具合があったので原因を探りたいが、依存関係が複雑すぎるのでコードを読む量を減らしたい テストやレビュー、提案、リファクタの運用を強化したい よそのプロジェクトに迷惑を掛けないように、そこのツールを改良して使いたい。 いままで何気なく「こんなもんだろう」と思って手間をかけていませんでした

    git による分散作業パターン | GREE Engineering
  • Haskell使ってみた | GREE Engineering

    こんにちは。インフラストラクチャ部の池原です。 このエントリはGREE Advent Calendar 2013 13日目の記事です。 グリーではミドルウェアの開発にHaskellを用いています。日は、C/C++Javaの経験はあるがHaskellは初めてだった私が、Haskellをミドルウェア開発に導入した際に戸惑った事をいくつかご紹介します。 私がHaskellを使い始めたのは1年半ほど前です。最初はOCamlに興味を持っていたのですが、すでに社内で利用者がいたこともあり、諸般の事情からHaskellを選択することにしました。 Haskellに対する私の第一印象はこのような感じでしょうか。 型システムが強力なので、つまらないバグでサービスを止める事態を避けられる。 他の関数型言語と比べて読みやすい(カッコをあまりつかわなくてもよい)。 Posix関連のライブラリが充実しており、シ

    Haskell使ってみた | GREE Engineering
  • 社内Haskellチュートリアルのススメ | GREE Engineering

    こんにちは。インフラストラクチャ部の竹辺(@beketa)です。 このエントリはGREE Advent Calendar 2013 12日目の記事です。 1. グリーでのHaskellプログラマ採用 Haskellを導入する企業が増えているようです。最近国内のメディアで紹介された事例だけでも Tsuru Capital様: http://itpro.nikkeibp.co.jp/article/Watcher/20131003/508622/ NTTデータ様: http://itpro.nikkeibp.co.jp/article/NEWS/20131126/520642/ の複数があり、すっかり実用的なプログラミングとして定着した感があります。 弊社でも2012年の中ごろから複数のプロジェクトでHaskellを使い始めており、昨年からは一部の商用サービスでもHaskellで開発したミド

    社内Haskellチュートリアルのススメ | GREE Engineering
  • クライアントサイドJavaScriptのライセンス管理 | GREE Engineering

    最近シリコンウエハーもらって嬉しかったago(@kyo_ago)です。 このエントリはGREE Advent Calendar 2013 11日目の記事です。 今回はクライアントサイドJavaScriptにおけるライセンス管理の問題を取り上げたいと思います。 ライセンス管理の問題点 「使用しているライブラリのライセンス管理をどうするか」はクライアントサイドJavaScriptにかぎらず発生する問題ですが、クライアントサイドJavaScriptには以下の様な特徴があるため問題が複雑になります。 コードが結合、圧縮される場合がある クライアントサイドJavaScriptでは読み込みの速度を上げるため、使用しているライブラリの結合、圧縮を行うことがあります。しかし、この時誤ってライセンス文が捨てられてしまうことがあります。 ソースが外部に公開される クライアントサイドJavaScriptではソー

    クライアントサイドJavaScriptのライセンス管理 | GREE Engineering
  • なめらかに動作するUITableViewのつくりかた

    矢口裕也です。 Advent Calendar 10日目はiOSのUITableViewの話をします。 ぼやき iOSアプリを開発していると70%くらいの時間はUITableViewに費やしている気がしてきます。 UITableViewは非常にめんどうなものですが、パフォーマンスがシビアでかつユーザーの快適さに直結するものなので大いに手間をかける価値があります。 この記事ではガクガク処理落ちするUITableViewを例として改善していきながら快適なUITableViewのつくりかたを解説します。 目的 以下のケーススタディでは次の目的でコードを改善していきます なめらかに動くようにする ここでのポイントは実際速くなくてもユーザが快適に感じればOKである、ということです。処理速度が高速である必要はありません。 戦略 UITableViewでのパフォーマンス問題は次の2点であることが多いです

    なめらかに動作するUITableViewのつくりかた
  • Grunt Xmas!!! | GREE Engineering

    いまやさんからバトンタッチ! みなさんこんにちは! すっかりフロントエンド開発では定着したGruntの話はもう飽きてると思いますが、今日はフロントエンドではなく、バックエンドエンジニア向けにどう活用できるかをご紹介したいと思います。 ※このエントリは GREE Advent Calendar 2013 9日目の記事です。 自己紹介 石川将行と申します。IDは ishikawam か M_Ishikawa です。ソーシャルゲームの開発エンジニアです。 ぼくのチームではGruntはフロントエンド(HTML, JS, CSS等マークアップ)制作のエンジニアだけでなくバックエンド(PHP等サーバサイド)開発のエンジニアも使ってます。 双方ともに同じリポジトリで同じGruntの設定(=Gruntfile.js)を共有しています。 Gruntはプロジェクトをビルドするためのスクリプト(タスク)を自由に

    Grunt Xmas!!! | GREE Engineering
  • LWF | GREE Engineering

    サンフランシスコからこんにちは。エンジニアの坂 一樹(@splhack)です。 このエントリは GREE Advent Calendar 2013 9日目の記事です。という書き出しで始まると思った人が大半だと思うのですが、残念ながらこの記事はAdvent Calendarの記事ではありません。こんなにAdvent Calendarの記事が並ぶなか、Advent Calendarの記事ではない記事が一緒に並ぶというのは、なかなか斬新な企画ではないでしょうか。これがシリコンバレー流です。言ってみたかっただけで、当ではありませんが。 そもそもこれを書いている場所がシリコンバレーかというと、あれっ、サンフランシスコってシリコンバレーなんでしたっけ、という疑問が浮かんでしまうわけです。シリコンバレーって、アメリカ合衆国カリフォルニア州北部のサンフランシスコ・ベイエリアの南部に位置しているサンタク

    LWF | GREE Engineering
  • Canvas から生成した PNG 画像に独自の情報を埋め込む | GREE Engineering

    こんにちは、Multimedia Engineering Team のいまやです。 Advent Calendar 8日目の記事ですが、特にそういうのとは関係なく好きなことを書きます。 はじめに Canvas で色々やっていると、 Canvas#toDataURL() を使って生成した PNG 画像に独自の情報を埋め込みたくなることがよくあると思います。 今回は、この生成した画像に独自の情報を埋め込む方法を説明したいと思います。 PNG フォーマットおさらい PNG フォーマットについては(以前個人ブログですが)紹介したので、詳しく知りたい方はそちらをご覧ください。 PNG 画像の解析と最適化ツール: http://imaya.blog.jp/archives/6136997.html ここでは簡単なおさらいのみにします。 PNG は以下のような構造になっています。 PNG シグネチャ(8

    Canvas から生成した PNG 画像に独自の情報を埋め込む | GREE Engineering
  • ImageMagick 改造入門 (その四) | GREE Engineering

    こんにちは。マルチメディアエンジニアリングチームのよやです。最近は ImageMagick の ストーキング(アップデートの差分追跡)に余念のない日々を送っています。 尚、エントリは GREE Advent Calendar 2013 の 7日目です。よろしくお願いいたします! ImageMagick をサービスに適用している皆様におかれましては、バージョンアップに大変な慎重さをもって臨まれていると思いますが、自分なりの薀蓄を共有出来ればと、バージョンアップに絡んだ最近の闘いの記録を公開します。(長文です) 参考までに今まで ImageMagick について解説したエントリを並べます。 ImageMagick 改造入門 (その壱) GIFアニメーション ImageMagick 改造入門 (その弐) 減色処理前編 ImageMagick 改造入門 (その参) 減色処理後編 GIF アニメ生

  • SNSチームでのドメイン駆動設計の実践 | GREE Engineering

    こんにちは!グリープラットフォームでSNSの開発をしています、うきょーです! GREE Advent Calendar 2013 6日目です、よろしくお願いします! 今回は僕が所属するチームでの、ドメイン駆動設計を実践してきた過程をお話したいと思います。ドメイン駆動設計とは何か、については簡単に要所要所で説明していきますが、詳しくはで!また、ドメイン駆動設計そのものについての話ではなく、実践の一例となります。 スマートUIパターンからのスタート 今回僕のチームが扱っていたものはJavaScript製のクライアントアプリケーションで、APIから取得した情報を表示し、ユーザーの操作によってAPIを呼び出す、というごく一般的なものです。 ドメイン駆動設計にはアンチパターンとして、スマートUIパターンと呼ばれるものが存在します。簡単に言えば「見た目都合から設計やモデルを考えてしまった」という状況

    SNSチームでのドメイン駆動設計の実践 | GREE Engineering
  • 開発ワークフローを、いつどう変えるか | GREE Engineering

    こんにちは、岡崎 @watermintです。 このエントリは GREE Advent Calendar 2013の記事です。この記事は5日目の記事です。 今日はGREE Tech Talk #04 スマートフォン時代のソフトウエアテストが弊社セミナールームで行われます。岡崎は「Jenkinsによるテスト自動化の会社への導入」というパネルディスカッションに参加させていただきます。パネルディスカッションの内容がどうなるかは会場の皆様からのご質問などによって変わっていくと思いますが、今日の記事では開発ワークフローについての考えを紹介します。 開発プロセスをなぜ変えるのか 開発プロセスを変えようとするモチベーションはいくつかあると思います。組織規模、ビジネスモデルなどによって多少諸条件は違うとしても大まかには次のような目標を達成することがモチベーションになるでしょう。 開発メンバーが変わっても対応

    開発ワークフローを、いつどう変えるか | GREE Engineering
  • HyperDBとlsyncdを使用したWordPress冗長構成 | GREE Engineering

    こんにちは。開発統括部の勝又 健太です。 このエントリは GREE Advent Calendar 2013 4日目の記事です。 自己紹介 はじめての投稿なので簡単に自己紹介させて頂きますと、言語はC++/C#/Perl/Java/Ruby/Python/PHP、開発フレームワークはMFC/.NET Framework/Struts/Ruby on Rails/Django/各種PHPフレームワーク、DBに関してはOracle/SQLServer/MySQL/Postgresqlなどなど色々と経験しておりまして、なんでも屋的な雑エンジニアです。昔はマンガ作成用グラフィックソフトとか動画キャプチャソフトとかも作っとりました。 Windows/ASP.NET系の開発を8年ほど経験して、その後Linux系に転向して今に至ります。インフラ周りやミドルウェアなども大好物です。(今後はスマホネイ

    HyperDBとlsyncdを使用したWordPress冗長構成 | GREE Engineering
  • Ruby scripting in Hive Query Language | GREE Engineering

    こんにちは。Web Game事業統括部 データ基盤チームの lan です。 Advent Calendar 3日目の今日は、Hadoopの上に乗るデータウェアハウスであるApache Hiveについて、話をさせて頂きたいと思います。グリーでは、Hadoopをレポーティングや大規模バッチ処理などに使っています。現在は、Apache Hive 0.12.0版を導入しております。OSSコミュニティから最新の成果をできるだけ早く取り込んでいきたいと考えているからです。 レポートなどのために社内用のUDFライブラリも作っています。しかし、それでもサポートしにくいシーンがまだまだあります。そのために、小さな小さなハッキングをして、HQL内にRubyスクリプティングを利用できる機能を開発しました。RedisのLuaスクリプティングのようなものをイメージするとわかりやすいかもしれません。 今回紹介するの

    Ruby scripting in Hive Query Language | GREE Engineering