読者です 読者をやめる 読者になる 読者になる

モバイルCIダベリNightで発表してきた #CIダベリNight

モバイルCIダベリNight - connpass に参加して発表してきました

ちなみにこんなAdvent Calendarもあるので是非ご参加下さい ;) qiita.com

資料

内容

発表内容的にはDeployGateのAndroidのCI環境を元に、CI環境構築がどれほど辛いか、みたいなことを適当にしゃべりました
適当すぎて、時間があまり過ぎたので、Slackに居るdgatanというbotの話(とても可愛いbotですよ♡)や、今開発中のCLIツールの話などをした

普通に発表内容よりも後の話の方が反応が良かった気がするのだけど、会の趣旨的にはモバイルCIなので脱線してしまった感あった

全体的な感想

当初は手書きで全部スライドを書こうと考えていたが、あまりの字の汚さに絶望したのでやめた
発表のときにここの部分微妙に滑ってて最悪っぽかったので反省点ですね

他の人の発表が割りとガチめですごい参考になりました
とにかくみんな辛さ溜まってるのが分かったので良かった

iPad Pro所感

iPad Proを触ってみた所感です
ちなみに、Apple Pencilなど周辺機器は買えませんでした

結論

思ってたより便利
とくに便利なのが、Split Viewで、これiPad Proの画面のデカさを最大限に活用できますね
こんな感じで、論文読みながらブラウザで検索とかできて、便利っぽい

でもまぁデカイ

とにかくデカイですね
デカイんですが、本体を持ってみるとそこまで重くない
割と持ち運べるのでは、とか考えてる
どうなんだろう…とにかくMBP13とiPad Proをリュックに背負ってる人やばそう

iPad ProでのSplit Viewの利点

1passwordなどを使ってブラウザでログインする時とかに、別途アプリを起動しなおして〜とかしなくていいので超便利
これ、割と他のアプリとかでもこういう「あ、便利だ」みたいなのちょいちょい出てきそうですごい

iPad ProでのSplit Viewの不満点

動画系のアプリ(torne mobileとかnetflix)で動画を見てる時にTwitterとかブラウザで他のことをしたりしたかったんだけど、できなかった
具体的には、Split Viewを動画再生中に使うと動画の再生が止まってしまうので、使えない
これはアプリ側が対応すれば大丈夫だと思うので、期待
実況はしないだろうけど、動画見ながら他のことしたいときあるしね

おわりに

まだApple Pencilを触ってないのでまだまだiPad Proの真価を発揮できてないので、早急にApple Pencilを手にいれる必要がある
それまではintuos creative stylus 2でお絵描きしてみようと思うったけど、このスタイラスペンiPad Proで設定してみたら、全然使えなくて面白かった
まぁ対応とか書いてないし、順当

shibuya.apk #4で発表してきた #shibuya_apk

shibuya.apk #4で発表してきました
久しぶりにどっかの勉強会でLTしたいな〜〜って思って軽い気持ちで応募したら、他の発表者の方たちが割とガチな技術ネタばかりだったのでとても怖かったです

クソアプリのすゝめ

Androidネタで何を喋ろうか悩みに悩んだ結果、結局Androidという単語を一度も発さないLTになってこれは一体…という感じの発表をしました
ちなみに、スライドだけ見ても情報量少なすぎて意味がわからないと思います
このLTで結局何を言いたいかと言うと、かっこいい名前の研究所作ると楽しいよということです
情報処理学会や他の学会の論文誌などに論文を投稿する際にも使えるので、いいですよね

余談

ちなみに本番では時間がなくて言わなかったんですが、最後のスライドにBazelの事が書いてあります
本当はBazelの話をしようと思っていたんですが、とにかく辛かったのでやめました
詳しくはqiitaのBazelタグを見てください
今のところ僕しか投稿してないので、qiita内でBazelについては僕が1番ですね

お土産写真コーナー

Googleさんから可愛いUSBメモリ貰えて嬉しかった

足が取れて割とエグい構造

Twitter Flock Tokyoに行ってきた #TwitterFlock

Twitter 行ってきた

Twitter Flock Tokyo 2015に行ってきました

概要

Twitter主催のイベントが、六本木で開催されていたので参加してきました
基本的にはエンジニア主体のイベントで、Twitterの中のエンジニアの人だったり、Fabricの中の人(今回はこっちが主体)だったりが居ました
基本的にエンジニアは海外の方たちが来ていたので、英語苦手なので懇親会であまり喋ることができなかったです…英語… 日本人の方が居たので、crashlytics betaについてとか日本語で聞いてました

会場

おしゃれ

あと謎なおもちゃが各所に置いてあった
おしゃれ

感想

digits

今回のイベント、Twitter本体というよりか、fabricのことについてのイベントだったので、セッションとかもfabricのことが喋られてた
その中でも特に気になったのが、fabricの中のFabric - Twitter's Mobile Development Platformというサービス
電話番号でログインができる仕組みを提供してくれてるんだけど、無料だしデモ見てて使ってみたいなーと思った
今度個人的にサービス作るときに使ってみる
http://get.digits.com/で色々ドキュメントとか見れるみたい
Android/iOSだけじゃなくてWebもサポートされてるのいいなぁ…感

mopub

あと広告であるmopubとかも使ってみたい
広告枠をオークション制にしてて、価格が高い奴が割り当てられるとか言ってた
稼ぎたい

Twitter Kit

Twitter Kitがかなり色々できて便利そうだった
アプリの中にTwitterのTLを乗せるのが数行でできたり、簡単そうだった

懇親会

セッション中はコーヒーとかお菓子が無料で配られてた
当然美味しかったけど、その後の懇親会では軽食が配られて美味しかった

野菜とか埋まっててやばい
おしゃれ

お土産

Tシャツとスピーカーもらいました
Tシャツ最高!!!!!!!!!!!!!!!!!!!!!

【DeployGate x はてな】スマートフォンアプリ開発最前線で発表しました #hatenagate

【DeployGate x はてな】スマートフォンアプリ開発最前線 - connpassで発表しました

発表資料

発表内容

DeployGateではどうやってCIを回してるかとか、どうやったら最速でアプリをDeployGateにアップロードするかとかを話しました
具体的にはスライドに乗ってるんですが、DeployGateではAndroidアプリをCircleCIでビルドして、DeployGateにアップロードしてます(ややこしいですが、DeployGateにDeployGateのAndroidアプリをアップロードしてます)
CircleCIではgithubと連携しているので、githubにpushするだけで CircleCIでビルドが走って、DeployGateで配信される、みたいな感じです

それと個人的に、どれだけ速く簡単にアプリをビルドしてDeployGateにアップロードするかみたいなことをずっとやってて、それについても話しました
iOSでは全ディレクトリ監視、AndroidではAndroidStudioの設定で、という感じでやってるんですが、詳しくはqiitaに書いてあるのでご参照ください
iOS - ipaファイルが生成されたら自動でDeployGateにアップロードする - Qiita
AndroidStudioからワンアクションでDeployGateにアップロードする - Qiita

パネルディスカッション

発表のあとに、懇親会冒頭30分でパネルディスカッションをはてなさんのエンジニア含む4人でやりました
スマートフォンアプリの開発フローと自動化」というテーマで、お酒を飲みながら話しました
正直何をしゃべったかはお酒を飲んでいたので覚えていませんが、後ろまで声が聞こえていなかった(マイクの音量が小さかった?)ようなので反省点でした
前の方で聞いてくれていた人たちとは何度か目があったりしてて、かなりしっかり聞いていてくれていた様で嬉しかったです、ありがとうございました

感想

個人的に会社として発表するのは初めてだったので緊張しましたが、なんとか無事に終わってよかったです
パネルディスカッションも、はてなさんの開発事情とか聞けて楽しかったです
このイベントのために割と準備してて、イベント終わったらPS4買おうと思ってたのでPS4買いたいです
PS4ではKH3を早くやりたいんですが、まだ発売していないのでとりあえずドラゴンボールドラクエヒーローズやりたいです

Myoが届いたので使ってみた

感想

Myoが届いたので使ってみました

  • LeapmotionとかRingよりもやりやすい
  • 疲れる
  • 長時間つけるとつらい、締め付け感すごい
  • なんか青く光ってるのかっこいい

何したか

iTuneskeynoteのを試した

  • iTunesの操作難しい
    • パーのジェスチャーが曲の再生停止なんだけど、とくに難しい
  • keynoteのはなかなか使える

他に対応アプリとかはここに色々あった
https://market.myo.com/
他にも試してみたい

ソースコード

keynoteソースコードちらっと読んでみた
なんか特殊な書き方してる、面白い
ここら辺に読んで書いてみたい
https://developer.thalmic.com/docs/api_reference/platform/script-tutorial.html

golangでdgate-inviteというの作った #deploygate

作ってみた DeployGate golang github

概要

golangでdgate-inviteっていうコマンド作った
henteko/dgate-invite · GitHub

golangを書くことを目的に作った
少しは勉強になった気がする

dgate-invite

dgate-inviteとは、DeployGateAPIであるInvite APIを叩くコマンドです
もともとこのInvite APIには、GET,POST,DELETEで各々各アプリのメンバーを取得出来たり追加出来たり削除出来たりするのだけど、それをコマンドで出来るようにしてる

使い方

こんな感じで使える
package名とかuser名は各々のに置き換えてもらいたい

# GET
$ dgate-invite -g -p com.henteko07.assisthack
# POST
$ dgate-invite -i -p com.henteko07.assisthack henteko2
# DELETE
$ dgate-invite -d -p com.henteko07.assisthack henteko2

実際に使ってみる

最近流行のpecoを使えばインタラクティブにメンバー一覧から探してメンバーから削除なんてことも出来る

$ dgate-invite -g -p com.henteko07.assisthack | peco | xargs dgate-invite -d -p com.henteko07.assisthack

f:id:henteko07:20140720143015g:plain

あとは社員のメンバーリストを用意してそこからインタラクティブに選択しながらinviteするみたいなことも出来る

$ cat user_list.txt | peco | xargs dgate-invite -i -p com.henteko07.assisthack

f:id:henteko07:20140720143529g:plain

peco便利や…
このgifとかはttygifとttyrec使いました、便利

ログインとか

ログインには、公式のdgateが参照しているローカルの設定ファイルを見てる
なので、dgateコマンドを既に使ってる人は特別なログイン処理とか要らない
ログインとかしたかったらこんな感じで出来る

# ログイン
$ dgate-invite -login # nameとかtoken聞かれる
# ログアウト
$ dgate-invite -logout

実装

実装は、適当な感じにやった
httpのライブラリとか、標準のnt/httpパッケージを使おうとしたけど、とりあえずmreiferson/go-httpclient · GitHubとかを使った
標準のでも良かった気がする
最初はddliu/go-httpclient · GitHubを使ってたけど、DELETEとかに対応してなかったので、自分で書いた
https://github.com/henteko/dgate-invite/blob/master/dgate/simplehttpclient.go
fileのpostも書いたけど、使ってなくて完全にミスった
多分壊れてる

あとはjmoiron/jsonq · GitHubを使ったりしたけど、これも標準のでいいかもなーとか思ってる
コマンドの入力のパースには標準のflagパッケージ使ってて、golangは大体標準でいいのかもしれないって気持ちになった

package分離

最初はGO_PATHとかよくわからなかったけど、自分で設定してるGO_PATHに移動してその中のsrc/github.com/hentekoとかいうところにdgate-inviteとか置いて、その中にpackage dgate作りたかったらdgate-invite/dgateって掘ってその中に.goファイルを入れれば、mainではimport github.com/henteko/dgate-invite/dgate で参照出来て便利だった
これはいい
public methodは先頭大文字ってのもわかりやすいなぁ

CI

CIにはhttps://drone.ioを使ってる
使ってるけど、まだテストとか書いてないのでクロスコンパイル用に回してる
drone、travisとかに比べるとgithubにpushしてからの反応が糞早くてめちゃくちゃいい
使いやすいし

最後に

golangむずかしい
お使いください