タグ

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

  • QUICやHTTP/3で利用を避けるべき送信元ポートの利用状況 | GREE Engineering

    どうも、インフラの後藤です。夏休みの自由研究として、HTTP/3について遊んでみたのでよろしくおねがいします。 はじめに HTTP/3はRFC目前となっており、すでに多くのブラウザがサポートし、ミドルウェアも実装が進められています。また、GCPではCloud CDN やHTTPS Load Balancingですでに利用することが出来ます。 HTTP/3は、トランスポートプロトコルにUDPで動作するQUICを利用しています。このQUICは様々な効率化の仕組みが盛り込まれていて、結果としてHTTPプロトコルの高速化が実現されています。 一方で、少ない環境ではあるものの、QUICが利用できないネットワークがあることも知られています。実際に使用する場合に問題になることはなく、多くの場合はHTTP/2にフォールバックされアクセスが行われます。ですが、国内での実情は調査の余地があると思われます。 今

    QUICやHTTP/3で利用を避けるべき送信元ポートの利用状況 | GREE Engineering
  • Docker と ECS と WebSocket で最強のリアルタイム・マルチプレイ環境を運用 | GREE Engineering

    概要 AWS ECS でマルチプレイゲーム用インスタンスの管理すると限りなく最強。 はじめに リアルタイム・マルチプレイゲームを作る時、まず考えられることは、あるプレイヤーの行動や状態が他のプレイヤーに伝わることではないかと思われます。しかし、スマートフォンアプリは不安定であったり、複数端末同士で(基地局やバックボーンを介さずに)物理的に直接接続することは出来ませんし、理論的にできたとしても、だいたい開発が進んでいくうちに排他制御の問題などで炎上、もしくはとん挫してしまいます。軽い気持ちでマルチスレッド処理をおこない事故る現象と全くおなじです。 もっとも簡単な解決方法としてはマルチスレッド処理のときようにクリティカルセクションを設けることです。ようはサーバを用意してそこで処理すれば、比較的容易に一意な結果が得られますし、接続に関する問題も起こりにくくなります。 長くなるので → http:

    Docker と ECS と WebSocket で最強のリアルタイム・マルチプレイ環境を運用 | GREE Engineering
    Itisango
    Itisango 2016/06/11
    あかん、この方面に対する知識が無さすぎる。
  • OAuth for Native Apps | GREE Engineering

    GREE Advent Calendar 9日目は @nov が担当します。 僕は GREE ではセキュリティ部に所属しており、社外では OAuth や OpenID Connect などの Identity 関連技術についての翻訳や講演などを行ったりもしています。 今日は GREE Advent Calendar ということで、Native App コンテキストでの OAuth の話を少し書いてみようと思います。 はじめに Native App を開発していると、Backend Server とのやりとりや Facebook Login や Google Sign-in などで、必ずと言っていいほど OAuth 2.0 というのが出てきます。 OAuth 1.0 と異なりリクエストに署名が不要だったり、Client Secret (a.k.a Consumer Secret) 無しでも

    OAuth for Native Apps | GREE Engineering
  • Githubのsubversionサポートが神 | GREE Engineering

    ちょびえです。Githubのsvnサポートが神なことに最近きがついたのでカッとなってエントリでも書いてみました。 きっとこの便利さはあんまり言及されてないはず(ワタシだけが知らんかった、とかだったらほんとすいません) https://help.github.com/articles/support-for-subversion-clients/ Githubでは上のページに書いてある通りsubversion clientのサポートもしております。 なんで今さらsubversion?という感じもする方もいらっしゃるかと思いますが。 これ、svnなので当然ディレクトリ個別にチェックアウトできるのですよね・・・・ たとえば、こんなふうにやると svn co https://github.com/chobie/flatbuffers/trunk/php flatbuffers-php A flat

    Githubのsubversionサポートが神 | GREE Engineering
  • よくわかるLinux帯域制限 | GREE Engineering

    矢口です。 みなさんはLinuxのtcという機能をご存知でしょうか。送信するパケットの帯域制御を行うことができる大変強力な機能で、グリーでもいくつかの用途で使用されています。 具体的な事例の一つはRedisです。Redisではreplicationを新規に開始する際やfailoverが発生しmasterが切り替わった際(特に2.6系)にストアされている全データが転送されます。しかし帯域制限をかける機能がないため、ネットワーク帯域を圧迫してしまう危険性があります。また通常のクライアントとの通信でも大量のクエリにより予想以上の帯域を使用してしまう可能性があります。このような場合にtcを用いることでRedisの使用する帯域をコントロールできます。 このように有用なtcですが残念なことに日語/英語ともにわかりやすい解説や詳細な情報は多くありません。 私も社内において使われていたtcの設定に問題が

    よくわかるLinux帯域制限 | GREE Engineering
  • イケててヤバいGit入門 | GREE Engineering

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

    イケててヤバいGit入門 | GREE Engineering
    Itisango
    Itisango 2013/12/21
    “git config --global user.”はGitを入れたら最初に使うなぁ。後は isbn:427406767X を読みながら作業を進めています。
  • git による分散作業パターン | GREE Engineering

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

    git による分散作業パターン | GREE Engineering
    Itisango
    Itisango 2013/12/14
    “とあるプロジェクトにて、その一部を副産物のミドルウェアとして抽出すべく、アプリケーションと分離したい。不具合があったので原因を探りたいが、依存関係が複雑すぎるのでコードを読む量を減らしたい。”
  • GREEの国際化, その1 | GREE Engineering

    こんにちは、エンジニアの岡崎(@watermint)です。今回からJenkinsネタはネタ充電のため、しばらくお休みしてGREEの国際化について技術的側面のお話をします。 国際化とは何か 国際化、英語ではinternationalization。略してi18n (iとnの間に18文字ある、アイエイティーンエヌ)といいます。国際化とは、特定の国や地域に依存しないような仕組みを作ることです。いろんな国や地域にサービスを展開するには国際化のほかに、ローカライズ(localization、略してl10n、エルテンエヌ)は特定の国や地域に特化したカスタマイズが必要になります。 いろんな国や地域の事情を抽象化し、ローカライズの余地をどれだけ出せるかが国際化エンジニアの腕の見せ所です。 多言語化と国際化 いろんな国に対応するときいて、最初に思い浮かぶのが多言語化(multilingualization、

    GREEの国際化, その1 | GREE Engineering
    Itisango
    Itisango 2012/09/26
  • GREEにおけるJenkins, その7 | GREE Engineering

    こんにちは、エンジニアの岡崎(@watermint)です。 先週8月23日に、川口さんの来日にあわせて開催された豆ナイト続々・CI超入門:Jenkinsのススメ3 CI導入の勘(感)所というイベントに参加してきました。 先週の発表はJenkins User Conference 2012での発表とほぼ同じでしたが、Jenkins導入のマネージメントというパートを追加してどのようにJenkinsを導入したかを紹介してきました。 今回は、この内容をふまえてもう少しJenkins導入のマネージメントや工夫、結果的にうまくいったことについて紹介しようと思います。 導入期間と組織的な成熟度の関係 最初から戦略的に計画した訳ではなく結果論ですがGREEではJenkinsの導入を急いで行っていた訳ではなく、ボトムアップにゆっくりと行いました。最初はiOSやAndroidのネイティブアプリビルドとそのビル

    GREEにおけるJenkins, その7 | GREE Engineering
    Itisango
    Itisango 2012/08/31
  • Git で日々の共同作業やリリース作業をサポートする git-daily を作りました | GREE Engineering

    こんにちは。インフラの sotarok です。 先日から Git 関連の話をしている通りですが、社内で Git を使い始めています。 今日は、Git を使った日々の開発〜リリースまでのフローや、そうしたものの運用と、それをサポートするために作ったツール git-daily の紹介をしたいと思います。 ソフトウェア開発とウェブ開発の違い いやウェブ開発も広義のソフトウェア開発なのですが、ここでいうソフトウェア開発とは、クライアントアプリケーションやライブラリのようなものを指すと思ってください。 実際、ウェブ開発をしている方は感じていることだとは思いますが、両者の開発フローはかなり異なるものです。もちろん社風や開発の方針等によって色々あるとは思いますが、主に次のような特徴が挙げられると思います: ソフトウェア開発 アプリケーションはクライアントで動作する リリース間隔は比較的長く、次のバージョ

    Git で日々の共同作業やリリース作業をサポートする git-daily を作りました | GREE Engineering
    Itisango
    Itisango 2011/12/13
  • 『エキスパートObjective-Cプログラミング - iOS/OS Xのメモリ管理とマルチスレッド』 | GREE Engineering

    こんにちわ。エンジニアの坂 一樹(@splhack)です。 今回は、スマートフォンアプリ開発に非常に役立つを紹介させていただきます。 『エキスパートObjective-Cプログラミング - iOS/OS Xのメモリ管理とマルチスレッド』というです。 はい、表紙画像からお分かりのとおり、私が執筆しました。つまり、このエントリは宣伝ということになってしまいますが、それはそれとして。とても深く、とてもわかりやすいになっていると自負しております。いままでに培った技術をすべて注ぎ込みました。 書は、AppleiPhone/iPod touch/iPadといった、iOS搭載デバイスで動作するアプリ開発に非常に役立ちます。 Xcode 4.2から使用できるようになったAutomatic Reference Counting (ARC) iOS 4から使用できるようになったBlocks iOS

    『エキスパートObjective-Cプログラミング - iOS/OS Xのメモリ管理とマルチスレッド』 | GREE Engineering
    Itisango
    Itisango 2011/12/06
  • 「Vimテクニックバイブル」を執筆しました | GREE Engineering

    こんにちわ。GREE Platformチームの小見 拓(taku-o)と申します。 このたび、「Vimテクニックバイブル~作業効率をカイゼンする150の技」を執筆いたしましたので、 この場を借りて、紹介させていただきます。 Vimテクニックバイブルは「もう少し文字入力を楽にしたい」「バッファ操作をもっと強化したい」といった、誰しもが抱く要望をちょっとしたテクニックやプラグインの導入で改善する「作業効率の改善に特化した逆引きリファレンス」です。 日Vimの出版事情を少し説明すると、これまで日ではVimエディタの技術書は何冊か出版されてはいますが、その全てがVimエディタの知識の無い方を対象としたものであり、エディタの基礎的部分の説明までしか扱えていなかったために、Vimエディタを既に使いこなしていた場合には、残念ながら満足のいくものはありませんでしたし、Vimの基を習得した後に読む

    「Vimテクニックバイブル」を執筆しました | GREE Engineering
  • SWFバイナリ編集のススメ第八回 (Action - AS2 Bytecode編) | GREE Engineering

    こんにちは。プラットフォーム開発のよやです。 今回は SWF 3 から導入された DoAction タグと、それに含まれる ActionScript2(*1) Bytecode イメージの編集について、お話します。 似たタグに DoInitAction がありますが、形式的には Sprite ID のフィールド追加以外は同じですので説明を省きます。尚、DoInitAction は SWF 6 以降のタグです。 編集の目的 Flash Lite1.1 の SWF を携帯端末で表示する場合、URL や HTML タグでパラメータを渡せない制約があるので、ActionScript のロジックにパラメータを渡すのに色々と工夫のしがいがあります。 例えば、 (a) DoAction 中の ActionScript2 Bytecode の先頭に代入イメージを付加する (b) 〃 Bytecode 中の

    SWFバイナリ編集のススメ第八回 (Action - AS2 Bytecode編) | GREE Engineering
    Itisango
    Itisango 2011/07/06
    SWFバイナリ編集のススメ第八回 (Action – AS2 Bytecode編)
  • GREE Engineer's Blog coming soon...

    コンテンツへスキップ ナビゲーションに移動 新卒1年目の実体験から学んだ新卒の心構え2024/03/29hidakatakumaこんにちは! グリーでインフラエンジニアとして働いている日高です。 今回は、就活生に向けて、新卒エンジニアとして1年間取り組んだタスクの1つとそのタスクを通して気づいたことを紹介します。そして、これらのことを通して、私が […] 非エンジニア女子がRails Girls Tokyo 16thに参加してみた2024/03/21yamadachihiro Ruby勉強会 はじめに こんにちは。DevRelチームのやまだちひろです。この度エンジニアブログに初めて記事を投稿します。 私はエンジニアではありませんが、DevRelという立場で日々エンジニアさんたちと関わるお仕事をしています。 先 […] InfoPHPerKaigi2024に参加してきました。2024/03/

    GREE Engineer's Blog coming soon...
  • DNS サーバ PrimDNS オープンソース公開のお知らせ | GREE Engineering

    こんにちは。インフラチームの ebisawa です。 独自に実装した DNS コンテンツサーバ PrimDNS をオープンソースとして公開させて頂きましたのでお知らせいたします。ご興味がありましたらぜひお試しいただければと思います。 グリー内では特に何もしなくてもなぜか各サーバの名前を DNS 解決できたり、その他いろいろなサービスが提供されています。今回公開させていただいた PrimDNS は、もともとグリーのインフラ内で利用されているものをベースに、一般の利用に向けてアレンジしたものです。 公開先はこちら → http://labs.gree.jp/Top/OpenSource/PrimDNS.html なぜ DNS DNS には、かつてより超定番の実装が存在しますが、何らかの理由でもっと他の選択肢もあるといいのに、と思われたことはないでしょうか。 特に DNS のようなインターネット

    DNS サーバ PrimDNS オープンソース公開のお知らせ | GREE Engineering
    Itisango
    Itisango 2011/04/21
    DNS サーバ PrimDNS オープンソース公開のお知らせ
  • 多人数開発で Git を使う場合の環境構築 | GREE Engineering

    こんにちは、インフラやってる sotarok です。最近、社内でも「sotarok は そーたろっくと読む」という誤解が広がっていましたので改めて自己紹介しますと、sotarok と書いて「そーたろー」または「そーたろー・けー」と読みます。ロックしてないのでよろしくお願いします。 今日は、Git の話です。 GREE ではずっと Subversion を使っているという話を、以前開発環境の話をしたときに少し触れたことがあります。Subversion での運用方法も、GREE では割と面白い運用をしているのでその話もどこかでしたいのですが、まあ、それは今回は置いておきましょう。どこかで聞いてください。 GREE もその昔 CVS から Subversion に移ったのですが、時代は流れるもので、いよいよ Git 化という流れがきています。Subversion と Git の違いを今更あえて挙

    多人数開発で Git を使う場合の環境構築 | GREE Engineering
  • 大規模インフラの監視システム | GREE Engineers' Blog

    こんにちは。インフラチームの ebisawa です。 今回はグリーのインフラにおける各種機器の監視がどのように行われているのかご紹介させていただきたいと思います。一般にサーバの監視というと、システムダウンを検出するための死活監視を意味する場合と、ネットワークトラフィック等のモニタリングのことを意味する場合とがあります。今回の監視は特に後者についてのお話です。大規模なインフラの監視には、やはり特有の課題があります。 どんなツールを使っているのか グリーではサーバの各種リソース使用状況をモニタリングしてグラフ化するためのツールとして、Cacti を利用しています。Cacti は、大変有名なツールなので皆様ご存知かと思いますが、バックエンドの RRDtool で作成したグラフを閲覧するための使いやすいユーザーインターフェイスを備えています。 http://www.cacti.net/ ツールの使

    大規模インフラの監視システム | GREE Engineers' Blog
    Itisango
    Itisango 2010/10/08
  • SWFバイナリ編集のススメ第一回 | GREE Engineering

    こんにちは。メディア開発部のよやと申します。バイナリ編集エンジニアです。 はじめに GREE では携帯向けコンテンツに Flash Lite を利用していますが、Lite には様々な制限(*1)があり、SWF(スウィフ) の動的生成技術を活用しています。 ツール(ming, swfmill, swftools, etc...)を用いた SWF 生成の記事は世間に溢れてますので、SWFバイナリの生編集をテーマに記事を何回かに分けて進めようと思います。 ツールを使う場合でも何かしら問題に遭遇した際の一助になるかもしれません。 第一回の当記事は、SWF仕様書の読み方ガイドです。 SWF仕様 Adobe公式の SWF仕様書は一般公開されています。 英語です。 http://www.adobe.com/devnet/swf/ (swf_file_format_spec_v10.pdf) 理解の助けに

    SWFバイナリ編集のススメ第一回 | GREE Engineering
    Itisango
    Itisango 2010/08/05
  • 「エキスパートPythonプログラミング」 | GREE Engineering

    こんにちは、この4月から新卒としてグリーのプラットフォーム開発部で働いている sotarok (そうたろう、と読んでください!)と申します。よろしくお願いします! 今日は、ブログの更新ラインから外れる形となりますが、KLab株式会社の稲田直樹さんから、5/28に発売され爆発的に売れていると言う「エキスパートPythonプログラミング」をご献いただきましたので、ご紹介させていただきます。このは「Expert Python Programming」の訳書で、 稲田直哉さん, 渋川よしきさん, 清水川貴之さん, 森哲也さんの4名のPythonistaによって翻訳されています。巷ではすでに「エキPy」などと愛称がつけられているようですw グリーでは開発にPHPを用いることがほとんどですが、インフラチームは割と好き勝手自分の好きな言語(最近はPerlRubyが多いようです)で便利スクリプトを

    「エキスパートPythonプログラミング」 | GREE Engineering
    Itisango
    Itisango 2010/06/02
  • 1