termbox-go 試してみた
termbox-goとは?
golangからterminalのAPIを叩けるlibrary. pecoの内部でも利用している。
基本
importする
import "github.com/nsf/termbox-go"
初期化 & エラー処理
err := termbox.Init()
if err != nil {
panic(err)
}
終了処理
defer termbox.Close()
WindowやKey入力のEvent Wait
for {
switch ev := termbox.PollEvent(); ev.Type {
case termbox.EventKey:
switch ev.Key {
case termbox.KeyEsc:
return
}
default:
draw()
}
}
全体
Show current time using termbox-go
...
2015年の始まり
2015年に意識すること
エンジニアとして、対外的にまともになる
- 挑戦する
- 晒す
- リリースする
- 表現力を上げる
エンジニアとしての成長曲線の限界を感じるこのごろ。 対外的なOutput力が圧倒的に不足しているのはずっと認識しているので、なんとか行動を変化させて習慣化させる. がむしゃらにやって行き当たりばったりという時期もすぎたので、もう少し計画的に行動していきたい。 理想をいえば、週1ブログ、月一プロダクト(20hくらいのもの)を作って1年すごせたらなーという感じ。
人間として、まともになる
- 能動的に人付き合いを楽しむ
- 体型をまともにする
- 本を習慣的に読む
- 予定を管理する
受け身で何も考えずに生きていると、受け身ばかりの人間関係で人生に広がりがなくてつまらないなーと散々思っているので、自分からActionする習慣をなんかしら作る。
体型のだらしない自分に失望する年齢になったので、運動と食事制限はまともに行う。 週2運動 (ジム or ランニング)、寝る前腹筋くらいが目標。アララギ君くらい腹筋を割ってみたいな。。
本は人を豊かにするらしいので、習慣的によむ & 読書分野を広げる (ラノベ、小説、技術書いがいにも)。 理想は週1冊ペース。
週末を楽しく過ごしたいので、ある程度自己管理を行う。 土日夕方まで寝る\(^o^)/オワタパターンをなくすように努めたい。
というかんじで適度にがんばります。
SceneKit Training for OSX by Swift (2): Default Objects
基本的なオブジェクトを表示してみる
Box
func createCube() -> SCNNode {
let cube = SCNBox(width: 1, height: 1, length: 1, chamferRadius: 0)
let cubeNode = SCNNode(geometry: cube)
let rotateDegree : CGFloat = CGFloat(M_PI_4) / 2
cubeNode.transform = SCNMatrix4MakeRotation(1.0, rotateDegree, rotateDegree, 0)
return cubeNode
}
Capsule
func createCapsule() -> SCNNode {
let capsule = SCNCapsule(capRadius: 1, height: 4)
let capsuleNode = SCNNode(geometry: capsule)
return capsuleNode
}
capsuleは height >= capRadius * 2 出ないとうまく表示できないので注意.
Cone
func createCone() -> SCNNode {
let cone = SCNCone(topRadius: 1, bottomRadius: 2, height: 2)
let coneNode = SCNNode(geometry: cone)
let rotateDegree : CGFloat = CGFloat(M_PI_4) / 2
coneNode.transform = SCNMatrix4MakeRotation(1.0, rotateDegree, rotateDegree, 0)
return coneNode
}
topRadius = bottomRadiusならば円柱形、topRadius = 0 ならば円錐形になる.
Cylinder
func createCylinder() -> SCNNode {
let cylinder = SCNCylinder(radius: 1.0, height: 2.0)
let cylinderNode = SCNNode(geometry: cylinder)
let rotateDegree : CGFloat = CGFloat(M_PI_4) / 2
cylinderNode.transform = SCNMatrix4MakeRotation(1.0, rotateDegree, rotateDegree, 0)
return cylinderNode
}
円柱。SCNConeでも表現できる。
Floor
無限に広がる床.
floorはそのままだと遠近感がつかめないので、傾けて対象にcubeを表示。
func createFloor() -> SCNNode {
let floor = SCNFloor()
let floorNode = SCNNode(geometry: floor)
let rotateDegree : CGFloat = CGFloat(M_PI_4)
floorNode.transform = SCNMatrix4MakeRotation(rotateDegree, 0.1, 1, 0)
return floorNode
}
Plane
有限の板.
planeはxy平面に表示され、floorがzy平面に表示されるのと異なる。
func createPlane() -> SCNNode {
let plane = SCNPlane(width: 1.5, height: 1.5)
plane.firstMaterial!.doubleSided = true
plane.firstMaterial!.diffuse.contents = NSColor.darkGrayColor()
let planeNode = SCNNode(geometry: plane)
return planeNode
}
firstMaterial.diffuse.contentsに色を設定できる。
pyramid
四角錐.
func createPyramid() -> SCNNode {
let pyramid = SCNPyramid(width: 1.5, height: 1.5, length: 1.5)
pyramid.firstMaterial!.doubleSided = true
pyramid.firstMaterial!.diffuse.contents = NSColor.darkGrayColor()
let pyramidNode = SCNNode(geometry: pyramid)
let rotateDegree : CGFloat = CGFloat(M_PI_4)
pyramidNode.transform = SCNMatrix4MakeRotation(rotateDegree, 1, 0, 0)
return pyramidNode
}
pyramidもfirstMaterial.diffuse.contentsで色を指定しないと表示されない.
Shape
shapeは任意の2次元の形。
func createShape() -> SCNNode {
let path = NSBezierPath()
let step : CGFloat = CGFloat(M_PI * 2 / 5)
let scale : CGFloat = CGFloat(0.4)
path.moveToPoint(NSMakePoint(cos(0), sin(0)))
path.lineToPoint(NSMakePoint(scale * cos(step * 0.5), scale * sin(step * 0.5)))
let i : CGFloat = 0
for i in 1...4 {
let pos : CGFloat = CGFloat(step * CGFloat(i))
let pos_inner : CGFloat = CGFloat(step * CGFloat(CGFloat(i) + 0.5))
path.lineToPoint(NSMakePoint(cos(pos), sin(pos)))
path.lineToPoint(NSMakePoint(scale * cos(pos_inner), scale * sin(pos_offset)))
}
path.closePath()
let shape = SCNShape(path: path, extrusionDepth: 1.0)
shape.firstMaterial!.diffuse.contents = NSColor.darkGrayColor()
let shapeNode = SCNNode(geometry: shape)
return shapeNode
}
shapeもmaterial.diffuse.contentsで色をつけないと表示されない。
Sphere
球。
func createSphere() -> SCNNode {
let sphere = SCNSphere(radius: 1)
let sphereNode = SCNNode(geometry: sphere)
return sphereNode
}
Torus
トーラス、円環面、ドーナッツ型。
func createTorus() -> SCNNode {
let torus = SCNTorus(ringRadius: 1.0, pipeRadius: 0.4)
let torusNode = SCNNode(geometry: torus)
torusNode.transform = SCNMatrix4MakeRotation(CGFloat(M_PI_4), 1, 0, 0)
return torusNode
}
Tube
チューブ
簡単にトイレットペーパーオブジェクトが作れる
func createTube() -> SCNNode {
let tube = SCNTube(innerRadius: 0.5, outerRadius: 1.0, height: 2)
let tubeNode = SCNNode(geometry: tube)
tubeNode.transform = SCNMatrix4MakeRotation(CGFloat(M_PI_4 * 2 / 3), 1, 0, 0)
return tubeNode
}
Text
文字.
func createText() -> SCNNode {
let text = SCNText(string: "Hello Text", extrusionDepth: 2)
text.font = NSFont(name: "Arial", size: 1.0)
text.chamferRadius = 0.3
text.flatness = 0.1
text.firstMaterial!.diffuse.contents = NSColor.darkGrayColor()
text.alignmentMode = kCAAlignmentCenter
text.containerFrame = CGRectMake(-2.4, 0.0, 5, 1)
let textNode = SCNNode(geometry: text)
let rotateDegree : CGFloat = CGFloat(M_PI_4)
return textNode
}
alignmentModeで指定したアラインメントを実現するためには、containerFrameの大きさの設定が必要な点に注意。
SceneKit Training for OSX by Swift (1): Display Cube
Xcode 6.1 が release されてswiftがMac OSXでも動くようになった。 あんまりチュートリアルもなさそうなので、SceneKit勉強したログを残します。
ベースプロジェクトの作成
Xcode -> New -> Project -> OSX -> Game
実行
デフォルトだとAirPlaneが表示される。
空シーンを指定する
ViewControllerをまっさらな状態に直す。
import SceneKit
import QuartzCore
class BasicObjectSceneController: NSViewController {
@IBOutlet weak var baseView: BaseView!
override func awakeFromNib () {
let scene = SCNScene()
self.baseView!.scene = scene
self.baseView!.allowsCameraControl = true
self.baseView!.showsStatistics = true
}
}
実行
背景色をつける
SceneKitというかViewの機能ですが、backgroundColorのpropertyにアクセスして変更する。
override func awakeFromNib () {
let scene = SCNScene()
self.baseView!.scene = scene
self.baseView!.allowsCameraControl = true
self.baseView!.showsStatistics = true
self.baseView!.backgroundColor = NSColor.blueColor()
}
Cubeを表示する
SCNSceneをextendしてカスタムシーンを作ります。
import SceneKit
class BaseObjectScene: SCNScene {
init(named name: String) {
super.init()
let cube = createCube()
rootNode.addChildNode(cube)
}
required init(coder aCoder: NSCoder) {
super.init(coder: aCoder)
}
func createCube() -> SCNNode {
let cube = SCNBox(width: 1, height: 1, length: 1, chamferRadius: 0)
let cubeNode = SCNNode(geometry: cube)
let rotateDegree : CGFloat = CGFloat(M_PI_4) / 2
cubeNode.transform = SCNMatrix4MakeRotation(1.0, rotateDegree, rotateDegree, 0)
return cubeNode
}
}
呼び出しの変更
+ let scene = BaseObjectScene(named: "cube scene")
- let scene = SCNScene()
実行
Golang はじめた
install
$ brew install go
$ echo "export GOPATH=$HOME/.gopath" >> $HOME/.zprofile
$ exec $SHELL -l
editor
atomエディタがよさそう
$ atom something.go
installしたプラグイン
- Go Format
- go fmtをファイル保存したときに実行してくれる.
- Language Go
- Vim mode
- vimバインドでかけないとつらい
- Atom Runner
- Cmd + Rでgo run
を実行してくれ. スプリットタブで結果を表示してくれる
- Cmd + Rでgo run
tutorial
http://go-tour-jp.appspot.com/
オフィシャルのgo tourを半分読んだ。 LLほど便利じゃなく、cより便利、c++ほど記述力はなく貧弱だがシンプルで基本読みやすいという感想。 goroutineとかを使いだすといよいよgoらしさが出てくるのだろうけど、まだそこまでいっていない。 個人的には、分散ビルドシステムとかgolangで作ったら面白そうって感じた。
とりあえず、チュートリアル後半をあとで読み進める.
YAPC 2014 感想
ブログを書くまでがYAPC! 書き殴った.
DAY1
Perl meets Real World..
- @mackee_w マコピー さん
- Raspberry Piを最近調べだしたのでちょうど求めていたトークでした
- 電子工作のつらい部分が減って、一昔前のH8/PICいじってた頃に比べるとかなり楽になっている印象
- Grove と シード、オープンハードウェアって概念が初耳だったのでありがたかった
- 全体的に内容豊富で聞き応えありました
Introducing Swift
- Dan Kogaiさん
- 恒例のPapixさんネタがw
- swiftの文法を全然理解してなかったのでFooBuzz例の差分がありがたかったです
- Xcodeのコードが文字小さくてみえなかったのが残念.
- 言語として、関数志向 / 演算子の書き換え / オープンクラス / 他言語組み込みの容易さ (.hをinclude) など表現力が高くて楽しそう
- Compile言語、Script言語、理想言語って対比がわかりやすくてなるほどってなった
- Gihubにおける各言語の相関関係、d3.jsで書いていたけどあの図はどこにあがってる感じだろう
- トップダウン言語の方が数年のびているらしい
- 自分で一本Swiftアプリつくろーって気になった
JSON Schema / API test
http://yapcasia.org/2014/talk/show/4d4a9af6-02d0-11e4-9357-07b16aeab6a4
- @deme0607 さん
- 前にr7kamuraさんの記事みて、自分の中で消化しきれてなかった部分を消化できた気がする
- JSON Schema はtest / document / mockでいい感じに利用できそう. うまくやればeasy_mockもいらなくなりそうだ
- テストで利用するときにはフォーマットチェックメインになりそうではあるが、それを自動化できる恩恵が大きそうだ
- 一度自分で簡単なサービス作ってJSON Schema書いてみよう
ランチ
DBIx::Class
http://yapcasia.org/2014/talk/show/3c896370-01de-11e4-9357-07b16aeab6a4
- Ribasushiさん
- スシじゃないよ
- DBIx::Class自体ちょろっと古いシステムで触った程度の知識しかなかったので内容理解が辛かった
- DBなめるときに、::ResultSet::HashRefInflator は早くて便利だてことだけ覚えておこう
Scala in Perl
http://yapcasia.org/2014/talk/show/3c896370-01de-11e4-9357-07b16aeab6a4
- @hakobe さん
- java/gradle/clojure使いとしては聞いておかねば!スタッ
- コンパイル長い問題はjvm系で共通の問題だなーとしみじみ
- コンパイル早くするお守りはほしい・・.とくにブランチかえて再ビルド時間が辛すぎる
- android gradleだとある程度 aarファイルでプロジェクト/モジュール分割してビルドフェーズすっ飛ばすけど、そうゆう工夫とかscalaはどうやってるんだろと気になった
- EditorはやっぱりIntelliJ なのね
- mackalelみたいなOSSプロダクトうらやましい
- Scalaは基礎ぐらい知っておこう
- 価値を生み出し続ける => 安全で継続的なソフトウェア進化 ってのに同意
- 今やってるプロジェクト/チームもそんな姿でありたいな
One layer down below
http://yapcasia.org/2014/talk/show/f028bcea-0b53-11e4-aec0-ad686aeab6a4
- Kang-min Liu さん
- 過ぎたるは及ばざるが如し。不要機能の排除大事だ.
- 目的と用途をしぼって、KISSの原則を行うのは後になるほど忘れがち
- Serealはmessage packみたいなもの? そうであれば差分を知りたいなとおもった
- レイヤーを超えたHackerになろう
- あのプレゼンはEmacsでやってるのだろうか?
いろんな言語を適材適所で使おう
http://yapcasia.org/2014/talk/show/ce831248-ebb4-11e3-bd6d-c7a06aeab6a4
- あんちぽくん さん
- 言語選択要因を 「言語特性」「コミュニティ」「エコシステム」に集約して系統立てて話していた
- でもテーマ上トークの内容が広がりすぎて、所々脱線してたかも
- ユーザに提供する価値の最大化って目的が第一. 手段と目的をはき違えないの大事
- 新しい技術グループやチームのビルディングするときにも参考になる話だと感じた
- 文章が多くて若干辛かった. 概念図みたいなものをもっと増やしてくれるとうれしかったかも
O2O/IoT/Wearable時代におけるWeb以外のネットワーク技術入門
http://yapcasia.org/2014/talk/show/75894e02-025f-11e4-9357-07b16aeab6a4
- Lyo Kato さん
- 最新のネットワークのプロトコル事情が詳細に語られていた
- 特にBootooth LE のAndroid / iOS周りの話が参考になった
- 全体的に内容がモリモリで追いきれなかった. 資料アップに期待
- ビギナーには少し辛い内容だったかも.
ウェッブエンジニアのローレベルプログラミング
http://lowreal.net/2014/08/29/1
- cho45 さん
- 低レイヤーに向かっていくってモチベーションがすごい
- 最近のC++周りの仕事で結構内部アーキテクチャがわかっていないと辛い事が増えてきたから ARMの勉強時かも
- ノリノリで聞いててすごい楽しい発表だった
- EAGLEなつい. まだ現役とはしらなかった. 今の時代ならwebサービスであってもいいくらいだよなって思う.
- RasPi欲がまた喚起された
How's startup life? - working as CTO in Japan
http://yapcasia.org/2014/talk/show/6687aaca-034a-11e4-9357-07b16aeab6a4
- Shohei Kameda さん
- ShareOfficeたのしそうだ. 働き方として憧れる
- startupで働くならエンジニアもfinanceの知識必須か
- なぜかつんでた Y Combinatorの本よみたくなった.
Java For Perl Mongers
http://yapcasia.org/2014/talk/show/8f7ead9a-ebba-11e3-bd6d-c7a06aeab6a4
- Kazuhiro Osawa
- 途中参加で一部聞き逃し
- 手の込んだジョークがたのしい
- 愉快なトークだった
- PerlがCGIのイメージしかないっていう人と、Javaってエンタープライズのイメージしかないっていう人は似てる
- どんな言語も間違った先入観あるなー
LT
個人的に Relocatable Perlの人の話が刺さった. 普段plenvで管理してるとそれで十分って考えしかなく、切り口が新鮮だった. Android/iOS/cocosで開発ではパッケージングとかPortabilityで不満になる部分が多い. 特にC開発でPortableでPackagableな仕組みがあればって常々感じていて、Relocatableという概念に考えさせられる部分があった.
DAY2
Dockerであそんでみよっかー
- @kazeburo さん
- さすが発表なれしていて、話の順序立てが上手だった
- 僕はDockerをubuntu上でしか使ったことなく、macだとboot2dockerやvagrantでつなぎがんばるのが面倒そうだなという印象..
- filesystemとのコミュニケーションのしやすさから vagrant方式採用するのは納得した、vagrantなら他の環境にもスムーズに移行できそう
- docker欲高まる
- ISUCON4 たのしそうだ. アプリサイドも同じようなコンテストあってもいいよなー
Google Big Queryで DWH構築
- Naoya Ito さん
- さすがの大人気。座ってみてたので内容全部追いきれなかった
- あとからtwitterにupされた写真みて気づいたのだけど、僕が座った真後ろからmiyagawaさんが写真を取ってたみたいで、憧れのハッカー2人の間にいたって考えるとそれだけでテンションがあがった
- 12億レコードを5秒でフルスキャンってのはすげぇな
- ログはいてGoogle BigQueryに流し、あとで自由にSQLたたいて検索って使い方がとりあえず正解っぽい.
- 画像認識やってたとき、学習データが一番大事だねだからBing・Googleなんかの数でごり押しするサービスにはかなわんなって議論を思い出した.
JSON Schema Injection and the Lessons Learned
- Kazuho Oku さん
- picojsonいつも使ってます. ありがたやー
- jsonでSQLクエリをビルドするときには、valueなのかarrayなのかhashなのかきちんと意識せねば
- 条件を関数化するのはいいアイデアだとおもった.
- 座りたい...
モバイルアプリとAPIのありかたを考える2014
- あらたま さん
- シンプルだけど、聞く人に歩み寄るいいプレゼンだった
- チラシル つかいます https://www.chirashiru.jp/
- JSON-RPC 2.0 って規格しらんかった. Batch処理は便利そう
- Parseよいって評判を聞くけど、実際にサービスに投入してる事例は初めて聞いた
- 次に簡単な個人アプリつくるとき、導入してみよう
Changing the tires on a moving car: a case study in upgrading legacy architecture
- Andy Delcambre さん
- NativeEnglishどれくらい聞けるのかって実験で、レシーバなしで聴いた
- 内容的には https://speakerdeck.com/adelcambre/git-github-etc に近かった
- GitのRuby BindingのGrit / Ruggedだけど、きれいなbindingでAPIもすっきり素敵そうな印象
- Gitのbaredなレポジトリを直接いじろうとして前に困った事があったけど、libgit2使えば良かったのね.
Mobile Application Development for Perl Mongers [ninjinkun x gfx]
- gfx さん、ninjinkun さん
- 一番テンションがあがったセッション
- モバイルディベロッパみんなに聴いてほしい.
- ninjinkunさんのエンジニアがUIデザインに参画していくべきっていうのは同意.
- 結構デザイナでもガイドライン知らなかったり、ネイティブレイアウトの定石みたいなものを理解してもらえなくて辛い事多い.
- Reactive Programming / MVVMあたりの話は、front周りでよく聴くが実際どうなんだろ. 一度触ってみよう
- rebuild.fm / WEB+DB PRESS とgfxさんのwatcherの一人としては、dejavuな話題が多いなと思いつつ 生で聴いて得るものもあった
- jenkinsおじさんをnative開発で利用してるけど、Androidだとemulatorの周りの調整とか、iosだとxcodeの設定とか、メンテナンスが面倒だったり、完全に自動化きなかったりで不満に思うところ多々ある.
- cookpadだとどんな運用になっているのか詳細が気になった
- Publisher APIつかってみよ
- YAPC規模のAndroid/iOSの勉強会ほしいってのは完全同意!
そんなにビッグでもないデータ処理手法の話
- tagomoris さん
- ベストトーク 2位 おめでとうございます!
- サーバー周り理解不足で内容についていくのがかなり辛かった... ゆっくり口調だと素人にはうれしかったかも
- TBスケールのデータ... LINEほどになると日常なのね...
- naoya さんに言及しているところが面白かったw
- 小さいと思っている事でもシェアして育てていく姿勢大事だな
LT
DAY1 よりノリがさらによく、Sawyer X さんのpapixさんネタが痛快で楽しかったw あの人数、あのノリで盛り上がれるLTってよくよく考えるとすごい. 他の勉強会にはないYAPC風物詩だ.
キーノート
- typester さん
- 人に歴史ありだな... キャリアの話は誰に聞いてもみんな違ってみんな面白い.
- すごいHackerもシャイな自分から1歩踏み出していったんだって思うと勇気もらえる
- shiroさんは前のブログでgaucheのコードを書いたとき、つたないコードなのにコメントもらって、すごい感動したの今でも覚えてる
- そういう意味でもあの仕事と趣味の話で心の琴線に触れる部分があり感動してしまった
- 自分の生き方を口にして、その通りに生きていけるってなんてかっこいいんだ
- Jr.かわいい
全体を通して
YAPC楽しい! miyagawaさんやnaoyaさん、gfxさんに、nekokakさんあげれば尽きないけど、あのiconのhackerは実在するんだなーと声優のトークライブにいったときのようなリアルな実感がある. 技術的にもそうだけど、それ以外にも毎年得るモノがある. 今年はキャリアとか、今後自分がどういう30代になりたいかって自問させられた. 考える時期に来ているのかもしれない.
すごい人にあうたびに感じていた焦燥感はなくなったけど、これが停滞なのか、それとも今やるべき事があるからなのか. 悩んでもしょうがないことは置いといて、あのロールモデルに近づけるようがんばってこー
cocos2dx 3.2 をためしたメモ
Download
http://www.cocos2d-x.org/filedown/cocos2d-x-3.2.zip
Install
$ cd $HOME/src/cocos
$ unzip cocos2d-x-3.2.zip
$ ./setup.py
.zshrc に勝手に以下が追加されてうざいので、適当に他のprofileに移動する
# Add environment variable COCOS_CONSOLE_ROOT for cocos2d-x
export COCOS_CONSOLE_ROOT=$HOME/src/cocos/cocos2d-x-3.2/tools/cocos2d-console/bin
export PATH=$COCOS_CONSOLE_ROOT:$PATH
# Add environment variable ANT_ROOT for cocos2d-x
export ANT_ROOT=/usr/local/Cellar/ant/1.9.3/libexec/bin
export PATH=$ANT_ROOT:$PATH
cocosコマンドがうてる事を確認
$ cocos new
Running command: new
usage: cocos new [-h] [-p PACKAGE_NAME] -l {cpp,lua,js} [-d DIRECTORY]
[-t TEMPLATE_NAME] [--ios-bundleid IOS_BUNDLEID]
[--mac-bundleid MAC_BUNDLEID] [--no-native]
[PROJECT_NAME]
cocos new: error: argument -l/--language is required
プロジェクト作成
$ cocos new SampleGame -l cpp -p me.mattak.samplegame
Running command: new
> Copy template into $HOME/git/cocos/SampleGame
> Copying cocos2d-x files...
> Rename project name from 'HelloCpp' to 'SampleGame'
> Replace the project name from 'HelloCpp' to 'SampleGame'
> Replace the project package name from 'org.cocos2dx.hellocpp' to 'me.mattak.samplegame'
いらないプロジェクトを削除
$ cd SampleGame
$ rm -rf proj.win32 proj.wp8-xaml proj.linux
androidのビルド
$ cd $PROJECT/proj.android
$ android update project -p .
$ cd -
$ cd cocos2d/cocos/platform/android/java
$ android update project -p .
$ ./build_native.py
$ ant debug install
iosのビルド
- 開いてビルドするだけ
所感
- いまどきantでdefaultビルドはないな・・・
- iosのビルドおそくてつらい・・・
- ビルド早くする工夫がほしいな...
- updatableなプロジェクト構成にしてほしいな...
- iosのbundle identifierが変更されてない気がする
おまけ: gradle対応
cocos2d/cocos/platform/android/java/build.gradle
これで gradle installDebugが動く