テクノロジー
tl;dr Railsではコネクションプール数を設定していても、1スレッド辺り1コネクションしか持ちません。 発端 アカツキではRails + Unicorn + Nginx + MySQLの構成をAWSで運用しており、c3.4xlargeのインスタンス上で1台辺り64のUnicornワーカープロセスが実行…
ElixirのEnumerable 前回の記事から続いて、今回はElixirで利用する基本的な制御構文について学んでいきます。 Keyword list 多くの関数型プログラム言語では、2要素のtupleによって関連付けられたデータ構造を表現します。 Elixirでは、最初の要素がAtomで…
Elixirの基本制御構文 前回の記事から続いて、今回はElixirで利用する基本的な制御構文について学んでいきます。 if, unless/else 他のプログラミング言語で親しまれているif~elseは、Elixirでは以下のように記述します。
はじめに アカツキにて内定者インターンをしているsachaosです。 この記事ではプロジェクトに配属され、少しの間アシスタントディレクター業を行っていた僕が、 エンジニアの端くれなりに社内ツールを作って業務プロセスの無駄な部分を自動化した話をします。
背景 前回の記事で、resize2fsコマンドがどのように1秒未満での容量拡張を実現しているかを知るために、resize2fsコマンドのソースを調査しました。その結果、メタデータの一つであるGlobal Descriptor Tables(GDT)をカーネル内で更新しているからではないか…
Basic Operators 前回、Elixirは四則演算があることと、整数の商や余剰を得るためにdivやremがあることを学びました。今回はElixirの基本的な演算子を、Rubyと少し比較しながら学んでいきましょう。 Elixirでは、++や--を配列に対しても使うことが出来ます。
エンジニアリング・アドバイザーの noto です。先月末から新規事業チームのエンジニアリングについてもお手伝いすることになりました。 アカツキでは今年 (2015 年) の夏より、従来のゲーム事業の枠を超えて、教育、ヘルスケア、「働く」などの領域を対象と…
Elixirの基本型 以下の基本型があります。 - integer : 1, 0x1F - float : 1.0 - boolean : true, false - atom (symbol) : :atom - string : "Elixir" - list : [1, 2, 3] - tuple : {1, 2, 3}
Motivation クラスメソッドさんがDevelopers.IOにとても良い記事を投稿されていたので、Elixir版も書きたくなりました。
はじめに アカツキは5周年を迎え、先日パーティーが開かれました。その時に展示物として披露したUnityとOculus Rift DK2を使ったゲームを作った話をしようと思います。 今回作ったものは隕石を避けながらコインを取って行ってゴールを目指す、レースゲームで…
合同勉強会を開催 6月25日(木)に、株式会社LITALICOさんと合同エンジニア勉強会を、アカツキのオフィスで開催しました!アカツキのエンジニアと合わせて約20名がこの勉強会に参加し、LT対抗戦+ビアバッシュを楽しみました。想定以上に話したがり屋さんが多か…
背景 アカツキが提供しているサービスはリリース前に必ずテストを行っています。テストでバグが見つかったときにこれを切り分けるため、発生時のログを探すことがあります。「クライアントアプリで明らかに表示がおかしい」とか、そういったバグなら問題ない…
背景 アカツキではサーバーサイドフレームワークとしてRuby on Railsを採用しており、またそのテスト環境としてRspec/FactoryGirlを使用しています。RoR環境下のテスト体制としてはデファクトスタンダードになっているこの組み合わせですが、主にFactoryGirl…
背景 ゲームサーバーで扱うデータはとにかく多いです。 特にイベントなどをほぼ毎日運用する場合はサービス開始から1年でレコード数が無視できない量になり、それに伴って更新に要する時間が激増してしまいます。 以前執筆した9分43秒のデプロイを19秒にした…
背景 アカツキで提供しているサービスでは、ほぼ全てにおいてAWSのRDS(MySQL5.6, InnoDB)を使用しております。 ソーシャルゲームでは多くのWriteがかかりますが、そのコストが気になったので調べてみました。
この記事はLinux Advent Calendar 2014 の23日目の記事です。 背景 アカツキではAWS EC2をテストサーバ、ステージングサーバ、本番サーバとして利用しています。先日1周年を迎えた千メモは、リリース時よりも大分デプロイ時に容量を使うようになってきまし…
Background
背景 最近GitHubワークフローやコードレビューの文化が普及してきていますが、 コード規約まわりの細かい指摘ってするべきなのか、迷いますよね。 例えばカンマの後にスペースがいるとか、引数が多いときに改行した方が良いとか・・・。 いちいち指摘してた…
Ohayo Rails 高井さん進行 あれあれ?大きなお友だちの声が聞こえないよ? 大きな声でおはようございます なんでマリ見てパロってるの?
現在、弊社にて提供しているサービスのほぼ全てにおいてAWS(Amazon Web Service)を利用しており、その中でも頻繁にアクセスが必要なデータについてはElasticCacheのRedis/Memcachedを利用しています。今回は、そのElasticCacheでRedisを利用する場合において…
背景 ソーシャルゲームでよく見かける「ガチャ」ですが、この記事ではその重み付き確率の保証方法を紹介します。
Cocos2d-xによる2.5次元表現 背景 「次元」というと理系出身の人は大体ベクトル空間の次元を思い浮かべると思います。 最近はネットで「2.5次元の女の子しか興味ない」というと3DCGの美少女のことを指したりしますよね。 実は形式的に整数でない「次元」を定…
Expressing "2.5D" spaces with Cocos2d-x Background These days, the terms of "dimension" is not limited to vector spaces -- in Japanese internet slang, "2.5D girls" refer to girls rendered using 3DCG. As a matter of fact, you can actually f…
「Startup CTO AWS Battle」というテーマで、CTO ではない自分が戦う要素の無い発表をしてきました。 ※ アカツキには現在CTOはいません。 アカツキはどのようにAWSを活用しているか #jawsug from aktsk innodb_flush_log_at_trx_commit の辺りで反応している…
はじめまして。アカツキのサーバエンジニアのこうのです。サウザンドメモリーズで主にサーバ側のプログラム・インフラを担当しています。 今回はサウザンドメモリーズで発生した、Redisにまつわるトラブルを紹介したいと思います。 TL;DR RedisのSorted Set…
背景 アカツキではRailsでゲームサーバを開発しています。インフラはAWSにあり、CloudFormation, Chef, Capistrano を用いて、Infrastructure as Code を実現しています。 エンジニアは普段ローカルマシンで開発していますが、ディレクター、レベルデザイナ…