画竜点睛を衝く@mapyo

日々やった事をつらつらと書くブログです

#potatotips #38 に参加してきた

potatotips.connpass.com

オーディエンス枠で当選したので参加してきました。

資料とか発表の内容については他の方々がもろもろまとめてくださってるのでこの辺をみるとよさそうです。

togetter.com

Androidのエンジニアが若干少なかったので今度は発表者として参加したいという気持ちが高まりました。。。たぶん。。

iOSの開発経験は全くないのでiOSの方が発表してると、どうしても頭に入ってこないので、何かしら勉強してちょっとは分かるようになりたいなぁ。

日々思うのですが、僕はAndroidiOSもサーバサイドもいろいろ出来るようになって、一通りの事を出来るようになって、あー。それね。ふんふん。と言えるようになりたい。 器用貧乏になってしまうとは思うんだけど、一通りの事を経験しておくことで全体を俯瞰して見れるようになりたいなぁと考えている今日この頃。

CircleCIで4G memory limit

結論として、

circleci.com

ここに書いてた事をやればよさそう。 いろいろぐぐって出てきた情報をやってみたけど、うまくいかなかったり、1回はうまくいくけど、それ以降はうまくいかないみたいな感じだった。

でももしかすると、今回もたまたま何回かうまくいっただけなのかもしれない。

以下の記事をみてみるとWerckerの方がAndroidのciを回していくにはいいのかなぁという感じもする。。

tech.vasily.jp

qiita.com

ciを回すという行為が続く限りciおじさんは誕生してしまうもんなのかもしれない。 もっとAndroidのciを楽に回す方法はないのかなぁ。

DroidKaigi 2017にて「minneにおけるテスト〜リリース〜リリース後にやっている事の紹介」というタイトルで発表してきました

droidkaigi.github.io

DroidKaigiとは、Android関連のでっかいカンファレンスです(雑)

https://droidkaigi.github.io/2017/timetable.html#session-6

「minneにおけるテスト〜リリース〜リリース後にやっている事の紹介」というタイトルで発表させて頂きました。

www.slideshare.net

minneを運営しているGMOペパボは既に退職しているのですが、前職のお話をさせていただきました。。。!

久しぶりに大人数の前で発表したので今まで以上に緊張したし、結構カミカミだったような気がする。。。 早めの時間帯に発表だったので、その後の発表はリラックスして聞く事が出来たので良かったですw

ウェルカムトークでもありましたが、実際に足を運んで話を聞いたり話たりするのってとてもいいですね!! ググって情報を得るのとはまた違った感じ。最近、ほとんど勉強会に行ってなかったのでまたちょこちょこ行きたい気持ちが高まってきました。

明日も引き続き楽しみです!!アフターパーティーも楽しみ!!

【追記・広告】

minneもスマートドライブも絶賛エンジニア募集中です!僕に声かけてもらえたら僕になにかいいことがあるかもしれません笑

www.wantedly.com

www.wantedly.com

RxJavaとKotlinをやってる

最近というか、ちょっと前からRxJavaとKotlinを同時にやり始めてて、初心者的な観点から、いろいろ思った事をメモ。

もともとは、なんとなく情報は追ってるつもりではあったけど、コードはガリガリ書いてなかった感じで、最近ガリガリ書き始めたというレベルです。まだわかってない事は多い。。。

用語が頭に入ってこない

Observer、Observable、observeOn。 Subscriber、subscribe、subscribeOn。 Flowable、Subject、Publisher。

などなど。いろいろな用語があって、その度に調べるんだけど、いまいち頭に残ってくれませんでした。 自分のメモに、Observerはこういうもの。というメモを残してわからなくなったらすぐに見て、少しずつ頭に残っていきました。

RxJava1系と2系の情報が混在している

RxJavaは去年の10月末にリリースされました。

そのせいか、ぐぐると1系の情報だったり、2系の情報が混在してて、あれ、動かない。。。?という事がありました。 アップされている情報の時期を見たり、RxJavaのバージョンが書かれていればそれを確認したりすることで、バージョンを正確に把握するように努めました。

github.com

このページに変更点が書かれているのでそれも見とくとよさそうです。ただし、大きな考え的には変わってはないと思うので、1系の情報が全く役に立たないというわけではないです。

言ってる事はわかるんだけど、やっぱりわからない

いろいろググると情報が出てくるんだけど、いざ書こうとするとあれ、よくわかんないな?という事が多々ありました。 これは体系的な知識が足りてないのかなぁと思って、まとまった解説された記事を探したところ、以下の記事に出会いました。

codezine.jp

最初は1系の情報が出てきますが、2系の情報も出てくるしわかりやすくてよかったです。 RxJavaリアクティブプログラミングという本が最近発売されたんだけど、この本への伏線なのかな?と思ったりしました。購入しました。(下の方にリンク貼っとくのでよろしくおねがいします)

よく出てくるカラフルな図の見方がよくわからない問題

マーブルダイアグラムというらしいです。よくわからなかったのですが、

先程の解説記事の http://codezine.jp/article/detail/9570?p=6

ここに説明が書いてあって、わかりやすくてよかった! というか、本家でもちゃんと英語で解説されてた

Observable (RxJava Javadoc 2.0.6)

これなんなの?問題

IDE使ってるといい感じに補完してくれるのはありがたいんですが、KotlinにもRxJavaにも不慣れな状態だと???になる事が多かったです。

たとえば、こういうやつ。

Observable.just("foo", "bar")
                .subscribe({}, {}, {})

こういうやつとか。

        Observable.just("foo", "bar")
                .subscribe(::println,
                        { it.printStackTrace() },
                        { println("onComplete") })

わからなかったので、Javaで書き直してみてどういう感じになるのか確かめてたりもしました。

カジュアルに実行して動作確認出来る環境を整えた

github.com

こんな感じでテスト実行して結果を確認出来るようにしました。 気になった時に簡単に動作確認出来て便利ー。

最後に

最近ブログ書いてなかったので、ネタを作って書いてみました。 RxJavaはいい感じにハマるとすごい気持ちよさそうな気がするので早くその高みに達したいです。 Rx便利!

また、全てがRxを使っていい感じに解決出来るというわけでもなくて、しっかり考えて使っていかないといけないなぁと思いました。とはいえ、まずは積極的に使っていかないとそれがどういう時にいいのか、悪いのかの判断がしにくいと思うので使っていきたいです。

最近はAndroidのView周りじゃなくてずっと裏側の部分をやってたので、Javaプログラマーだったり、Kotlinプログラマーな気分になってたりもしました。

引き続きRxJavaとKotlinやっていきます!!!!

以下の2冊の本を買っていろいろやってます。

RxJavaリアクティブプログラミング (CodeZine BOOKS)

RxJavaリアクティブプログラミング (CodeZine BOOKS)

Kotlinスタートブック -新しいAndroidプログラミング

Kotlinスタートブック -新しいAndroidプログラミング

GMOペパボを退職した

本日でGMOペパボを退職となります。有給消化的なやつで最終出社は12月の末頃だった。 4年間くらい在籍させていただきました。

入社する前〜今日まで何やってたか、大きめの仕事を中心にざっくり振り返ってみる。長くなりそう。。。

入社前

製造業の社内SEとして働いていた。 多少はプログラム書いたりSQL書いたりしてたけど、基本は協力会社さんにお願いして作ってもらってた。

自分でもっと何か作れるようになりたいなぁと思ったので、転職を決意。 自社で作ってるところを中心に探してたけど、バリバリプログラムを書いていたわけではないので、 転職活動はなかなか大変だった気がする。

面接では昔過ぎてあまり覚えてないけど、自分で作ったしょぼいAndroidアプリを見せたり、ブラウザにURLを入力して、そこから後の事をなるべく詳しく教えてくださいとか、好きな食べ物なんですか?とか聞かれた気がする。完全にふわっとしか覚えていない。

当時と今を比べてみると、採用のハードルが当時よりかなり上がっていて、当時の僕が今受けたらとてもじゃないけど、内定を頂く事は出来なかっただろう。プログラマーとしての経験も未熟な僕を拾って頂いた事に本当に感謝しかありません。

入社直後

カラーミーショップというサービスのエンジニアになった。PHPer。最初はいろいろと大変だった。

  • 今まで仕事でWindowsを使っていたけど、Macを使うことにした事。
  • プログラマーとしてバリバリ仕事するの初めて
  • Web系企業初めて
  • 当時はgit-svnが使われていて、svnもgitもちょっとしか触ったことなかった状況でgit-svn使う感じ

大変だったけど、やりたくてその環境に身をおいていたので楽しかった。

右隣に座ってた方に本を貸していただいてめっちゃ勉強になった。

左隣に座ってた方にgit-svnのよく使うコマンドを教えていただいて、非常にありがたかった。

最初に担当した仕事が、管理画面からtwitterで呟いたら、そのショップさんのショップページのサムネイルがサービスページに表示されるというやつで、普通に開発するだけじゃなくてtwitter api叩いたり、webページのサムネイルをいい感じに撮るようにしたりと、それなにり大変だった気がする。

1年目

メルマガプラスというオプションを作った。 既存サービスとは完全に独立した形で作ることになっていたし、 サーバサイドのプログラマは僕1人だったので、ゼロから何かを作るという貴重な経験が出来た。 開発環境を作って、あーだこーだ話しながら動くものを作って、本番環境にDeployする仕組みを整えて。などなど、いろいろ出来てよかった。

定期購入の機能も作った。

そういえばプライベートでは、Chrome拡張機能を作ったりしてた。

mapyo.hatenablog.com

このブログのネタ元になった、吉高由里子をすぐ見れる拡張機能を作った人と4年目に一緒に仕事するとは思いもしなかった。 Chrome拡張機能つながりで、業務をちょっと楽にする拡張機能とか作ったりした。細かい改善とか、みんながちょっと便利になるものを作るのが好き。

いろいろと改善したい改善したいと言ってたら、システム周りの改善するチームが出来て、そこでいろいろと改善する人になった。

2年目

一番大きいのはこれ。

mapyo.hatenablog.com

大変だったなー。

これについて、ペパボテックカンファレンスで発表した。

mapyo.hatenablog.com

3年目

一番大きいのはこれ。

www.slideshare.net

mysqlバージョンアップした時以上に大変だった。 これをネタにPHPカンファレンスで発表できたのでよかった。

3年目の終わりの方からminneに異動して、それと同時にAndroidエンジニアになった。 個人的にAndroidアプリ勉強したり作ったりしてて、それをアピール出来たのがよかったんだと思う。

チームが変わった事や、サーバサイドエンジニアからモバイルエンジニアになったので、 いろいろと変化が大きかった。

4年目

Android一色な1年だった。 やっぱり、家で個人的にやるのと仕事でやるのとでは成長のスピードが全然違う。

DroidKaigiで発表することも出来た。

www.slideshare.net

今年のDroidKaigiでも発表出来る事になったので、よかったら見に来てください〜

雑誌に寄稿する機会も与えてくださって貴重な経験が出来た。今後、こんな機会はもうないかもしれない。

mapyo.hatenablog.com

最後に

ざっくり振り返ってみた。4年間いろいろあったなぁ。 職業プログラマーとしては最初の会社だったので、 プログラマーとしての姿勢というか、考え方について教えて頂いた気がする。

ペパボは本当に働き心地がよかった。 しがない僕を拾って頂いて、感謝の気持ちしかありません。 すごいエンジニアの人がいっぱいいて、いい刺激になったし勉強になった。 有給もかなりとりやすいし、休日出勤は4年間で2日しかなかった。

ペパボの皆様、本当にお世話になりました。ありがとうございました!!

次は

引き続きAndroidエンジニアとしてやっていく気持ちでおります。 また落ち着いたら何かしら書こうと思います。たぶん。

念のためwish listのリンク貼っておきますね。

http://amzn.asia/69jk2oI

2017年の目標を考える

2016年の振り返りの内容はこちら

mapyo.hatenablog.com

今年は以下の3つをがんばろうかと思う。

  • Androidがんばる
  • プルリク駆動勉強
  • 運動

数値目標を入れない目標はダメっぽいので、なるべく入れるようにしてみる。

1. Androidがんばる

去年に引き続き頑張っていく。具体的には以下の事をやっていきたい

この3つ。どれもあんまり触れ合った事ないので、がんばりたい。

この3つを入れた個人的なアプリを最低でも1個以上は作りたい。

2. プルリク駆動勉強

僕がよくウォッチしているshirajiさんという方がプルリク駆動勉強というのを書いてらっしゃいます。

shiraji.github.io

若手では全然ないんだけれども、これ結構いいと思っていて、微妙にはやろうとしてたんだけど、イマイチやりきれなかった。。。 というのが去年でした。今年こそはやっていこうという気持ち。Androidだけじゃなくて、自分がやってみたいという言語を勉強してプルリクを送る。というのをやっていければ、コードを読んだり、書いたり、いろいろと勉強になるのかなぁと。

最低でも月に1回OSSに対してプルリクを出したい。

3. 運動

ここ最近ずっと出来ていなかったんだけど、今年こそは!という気持ち。 ジムにいくのか、軽くランニングするのか、アプリで日々の運動を促すものをやるのか。などなど、殆ど運動していないし、体調を崩してしまう事も多くなったので健康の為にも是非ともやっていく。

最低でも週に1回は運動と呼べる何かをやりたい。

その他

  • 本を最低でも月1冊は読みたい
  • 機械学習やりたい(ゼロから作るDeep Learningを買う?)
  • 1日7時間半は寝る
  • 睡眠を調べるアプリを使って定期期に睡眠について考えていきたい。毎日。

最後に

ざっと考えてみた。数値を目標にする。という事を考えるとちょっと、低めに設定してしまっているような気も。。 あれやりたい、これやりたいというのはいっぱいあるのだけど、全部やろうとすると、結局やれなかった。。。 という事になるのと思うので、控えめにやるのが大事かなと思う。

2017年は去年以上に大変だし、やりがいのある年になると思うので、コツコツと楽しく頑張っていこうと思う!!!!!! まずは健康に。そして楽しむ事。これが大事なはず!!

2016年の振り返り

2017年も開けてしばらくたってしまったが、まずは振り返ってみる。

まずは2016年に立てた目標を見返す。

mapyo.hatenablog.com

  • Android頑張る
  • インプットとアウトプット
  • 運動する

大きくはこの3つを考えていた。これに加えて、「この先5年、10年について考える」という事についても考えていた。 それぞれについて振り返ってみよう。

1. Android頑張る

これはそれなりにがんばれたのではないかと思う。 2015年の10月から仕事でガッツリAndroidをやるようになって、去年1年間はAndroidずっとやってた。 この1年間で、

  • MVPで開発
  • testまわり
  • カスタムビューでパーツ毎に分けて開発する
  • Android SDKやViewまわりの知識

などがそれなりに出来るようになってきたと思う。また、何か機能を実装するときも、自分で考えて実装しつつ、OSSのサンプルアプリを見てどうやって実装してるか参考にしながら、実装したりもした。

しかし、やる事として決めていた、Androidのライブラリ作ってみたり、気持ちのいいアニメーションを作ってみたり、アプリを公開までやる。という事は出来なかったのだった。。あんまりやらなかったのだが、サンプルアプリなどはちょこちょこ作ってGitHubにアップしていた。

github.com

imagepoiというアプリを作ってた

mapyo.hatenablog.com

今となってはちょっとあれだが、こんな試みもやっていた。

mapyo.hatenablog.com

あんまり関係ないけど、12月の後半の方は、jitpack楽にいろいろやれてすげー。という気持ちになっていた。

まぁ、こんな感じ。

2. インプットとアウトプット

インプット

主に本読んだり、勉強会に参加しようという気持ちだった。前半はがんばれた気がするけど、後半はイマイチだったかも。。。

mapyo.hatenablog.com

mapyo.hatenablog.com

mapyo.hatenablog.com

本は買うんだけど、なかなか最後まで読みきれない事が多いので、なんとかして読んでいく習慣をつけていかないとなぁと思う今日この頃。

アウトプット

2015年にブログ書いた数は40個だった。2015年は、71個、2014年は79個だったので失速気味。。。

勉強会、カンファレンスでは何度か発表した

mapyo.hatenablog.com

mapyo.hatenablog.com

2017年のDroidKaigiでも奇跡的に発表できる事になったので、是非見に来てください!

mapyo.hatenablog.com

また、会社のお産合宿というイベントで作った9isというサービスを正式にリリースした。 リリースしたと言っても、全然使われていないww

mapyo.hatenablog.com

一番大きなアウトプットといえば、WEB+DB PRESSに寄稿できた事だ。初めての執筆で、ページ数はちょっとだけど、僕にとっては凄い出来事だった。

mapyo.hatenablog.com

2016年後半は正直なところアウトプットする事に対してモチベーションが低下していて、 アウトプットするよりもコードを書いたり、技術的な事を勉強したほうがいいかなぁという気持ちだった。

2017年はあまり考えずに、マイペースな感じでアウトプットしていきたい。

運動する

これは目標立てても全然守られる事がないので、2017年こそ達成して、習慣化したい。。。

 この先5年、10年について考える

2016年後半はいろいろ考えてた。

先の事なんて全然わからないというのがやっぱり正直な気持ち。運もあると思う。

今までサーバサイドをある程度やって、Androidアプリを作るようになった。 今後もしばらくはAndroidをやっていきたいけど、どうもそれだけだと弱い気もする。 iOSとか、もう一回サーバサイド、もしくはフロントエンドをやってみたい気持ちもある。 技術者以外にもマネジメント寄りの道もある。

自分の性分として、一通りの事をやりたいという気持ちがあるので、特にこだわらずにチャンスがあればいろいろとやっていくつもり。 チャンスというものは、運の要素もあるんだけど、自分が普段からアンテナを貼ってないとそれをつかむ事が出来ない。 なので、あれやりたいこれやりたいと言うだけじゃなくて、日々勉強したり、アウトプットしたり、周囲に話したり、しておくことが大事かなと思う。

最後に

2016年はAndroidな1年だった。2016年の最初の頃に比べてそれなりには成長できていたと思う。 2017年もAndroidな年になると思うけど、それはまた2017年の目標について書くときにでも考えようと思う。

そして、2016年最後に起きた最大のイベントとしては、現職を退職(正確には最終出社が2016年)というイベントがあるのだけど、これもまたちょっとしたら書こうと思う。