k2wankoの技術的なanything

プログラミングとか技術系の情報とか書いてます。

コキチーズの2017年の振り返り

2017年も残すところもうわずかになりましたね。僕にとって2017年は大学卒業して就職したりと変化の激しい年でした。 既に記憶が薄くなってますが思い出しながら書いていきます。

仕事

3月に御茶ノ水にあるデジタルハリウッド大学を卒業して、4月にLINEでセキュリティエンジニアとして就職しました。 大学ではAndroidアプリとかのアルバイトしたりGCPUGのイベントによく行って趣味でGAEで遊んだりしてて全然セキュリティの勉強はしてなかったのですが。2016年の3月くらいに内定もらって5月からLINEでアルバイトしながら会社のサービスとか関連サービスの脆弱性診断をしてました。アルバイト時代はWebの診断だけをしていたのですが、社会人になってからはスマートフォンアプリやゲームもやるようになりました。とは言え今でもWebの方が見るのは得意ですね。

BugBountyにも挑戦していて普段使ってるサービスもよく見ると脆弱性があって面白いしそれを報告してお金を貰えるのはうれしいですね。

技術

セキュリティも楽しいけど開発も楽しいので趣味ではGo書いたりJavaScript書いたりしています。特に今年注目したのはFirebaseとVue.jsとReact Nativeですね。

Firebaseはモバイルアプリの開発や分析を助けるためのプラットフォームで、今年になってFirestoreという他にはない魅力的なデータベースも出ていて最高にクールで興奮するプロダクトです。 Firebaseが好きすぎて今年はFirebase Japan User Groupを作って12月16日に1回目のミートアップをしました。 次回は2月に新宿でやる予定です。 来年はハンズオンとかオフィスアワーとかやりたいなぁと思ってます。

Vue.jsはHTMLを書くかのようにコンポーネント指向でサクサク書けるのでVueは僕にはとっても馴染みました。Vue.jsの日本コミュニティのスタッフも少し手伝ったりさせてもらったりもしました。

React Nativeをやろうと思ったキッカケはFirebaseの力を感じるためにモバイルアプリを作りたく、ただAndroidiOSもやりたいけどどっちもネイティブでかくのはつらいしめんどくさいなと思ってた時に出会ったからです。 React NativeはWebのコンテキストじゃなくてアプリのコンテキストでJavaScriptでアプリを書けるしアプリでホットリロードできることにすごく感動しました。

それと他にも色々ありますが、まだ始めて1ヶ月も経ってないのですが仮想通貨の取引も始めてみました。 今日Rippleがすごい上がって、入れたお金が倍くらいになっててバブリーですごいですね。

技術的な面でもブロックチェーンやスマートコントラクトの開発やセキュリティはとても面白いと思いますし、それらを活用したサービスも来年どんどん出てくるのではないかと思うので目が離せないですね。(最近はチャートも目が離せない)

ゲーム

今年はSplatoon2とPUBGをずっとやってました。 PUBGはSplatoon2が出るまでの繋ぎのつもりがすごく面白くて結構頻繁にやってます。 社会人になると思ったより時間が取れなくてSplatoonのウデマエが下がっててダメだなーと反省。 会社でSplatoonができる環境を整えたいのですが会社の回線はNAT越えができないのでSplatoonができないんですよね。 来年はこの辺をよしなに解決していきたいですね。ウデマエのためにも

恋愛

これは結構最近のことですがペアーズで彼女できました。 2017年の目標に彼女作るがあったので達成できてよかったです。 ペアーズはGoの勉強会でペアーズのエンジニアの人がよく話してたので知っていたのですが、知り合いのGopherもペアーズで彼女を作ったと聞いてバックエンドがGoで作られた出会い系は行けるのでは?と思いやってみたら彼女できました。 やっぱGoは最高ですね。

まとめ

色々変化の多い1年でしたが、今に満足せずに来年も色々挑戦していきたいと思います。 とりあえず来年も英語の勉強は頑張っていきます。 Firebaseの人とお喋りがしたいので。

以下今年やったこととか気になったこと

  • テクブで本を書いた
  • 技術書典のスタッフやった
  • PWA
  • Service Worker
  • けものフレンズありがとう、そしてさようなら
  • Spanner
  • ISUCON来年も頑張るぞい

GDG DevFest Tokyo 2017にスタッフでスピーカーとして行ってきたよ。 #DevFest17

2017年10月9日 2回目の DevFest Tokyo 2017に行ってきました。

tokyo.gdgjapan.org

去年はFirebase AuthのLTをしましたが今年はFirebaseとReact Nativeについて40分間話してきました。

speakerdeck.com

今年のDevFestはARとか機械学習系、あとブロックチェーンのセッションもあってなかなかおもしろかったです。

スタッフだったのであんまり見て回るとかではなかったので これから上がってくる資料や感想ブログとかを見てどんな感じだったのか見ていきたいなと思います。

あとFirebaseのコミュニティはこれと言ったコミュニティがないようなのでFirebaseコミュニティとして立ち上げるかみたいな話もしたので興味のある人はとりあえずGCPUG SlackのFirebaseチャンネルで作戦会議をしませんか?

とにかく今日はお疲れ様でした! また来年も参加したいです。

2016年を振り返る - GoとGCPとVue.jsとセキュリティ

幼稚園児におじさんと呼ばれたコキチーズです。

今年はあっという間にすぎたなという印象です。

ブログもそんなに書いてなくて、Qiitaに色々上げてたと思います。

2015年はSplatoonの年でしたが今年も結構Splatoonしてた気がします。

振り返り

2月までドワンゴインターンをしてて僕にとって、とてもいい経験でした。(詳しくは以下記事へ)

k2lab.hateblo.jp

それからいくつかの企業にエントリーして就職先も決まり、5月くらいからはセキュリティの勉強をはじめました。

セキュリティと言っても分野はWebアプリケーションに絞ったものですが、それでもBugBounty.jpで報告してお金をもらえたので結構楽しいです。(2016/12/31の時点では22にいる)

bugbounty.jp

あとはコミュニティ活動も色々してました。

FirebaseやGAEやVue.jsについて勉強会でLTをちょっとやらせてもらいました。

docs.google.com

qiita.com

docs.google.com

プログラミング言語としては今年はGoを触ってる時間が多かったと思います。

僕のGoとの出会いはdwanGoという勉強会になんとなく行ってみたのがキッカケでした。

dwgo.connpass.com

Tour of Goをやった時は「Cみたいでなんてめんどくさいのだろうか」という印象しかなかったのですが、しばらくしてGAE/Goは速くて最高という話を聞いて触ってみたら好きになり、めんどくさいと感じてたところが、実はよく考えられてデザインされているんだなというのがわかってきました。 僕がGoをメインに使っているのがGAE/Goという制限された環境下で、そこではもっとめんどくさいけど、めんどくさいの理由を知っていくことで理解しながら学習できた気がします。

その時GCPUGの人たちに色々教えてもらいました。 今度は自分がコミュニティに還元して行けたらいいなと思っています。

2017年やりたいこと

  • 彼女を作る
  • Goの勉強会で何か話す
  • Vue.jsをもっと色々やる(サーバーサイドレンダリングとか)
  • GCP、GAE/Goをもっともっと活用したり勉強会で話す
  • ISUCON
  • TensorFlow
  • Vim
  • Python
  • セキュリティ

Google Cloud OnBoardとTensorFlow User Group #2に行ってきた #gcpja #TFUG

体は動いてるけど気持ちは冬眠中のコキチーズです。
今日は色々刺激的な1日だったのでこの興奮を忘れない内にブログに書いておこうと思います。
今日は2つの勉強会に行ってきました。

10時から17時半はGoogle Cloud OnBoardを19時からはTensorFlow User Group #2に行ってきました。

cloudplatformonline.com

tfug-tokyo.connpass.com

OnBoard

まずOnBoardはGCPにどんな機能があるのかをTop GateとGoogleの中井さんでトークをしていくという勉強会です。
細かい技術的なことまではやらないけどGCPのサービスを改めて聴いてどういう組み合わせでサービスを使っていけばいいのかとかのイメージがよりハッキリしました。
また昼の余興のTensorFlowでTensorFlowのアイコンを鳥獣戯画タッチに変換したっていうデモはとっても面白かったです。
またCloud Machine Learningの話では中井さんが機械学習ディープラーニングという難しい話をわかりやすく解説してくれてなんとなく全体像を掴めました。
あとデモでJupyter Notebookを使っていて、Jupyter Notebookの存在は知ってたけど使ったことも動かしてるところ見たこともなかったので初めて見てすごい良さそうって思いました。
Pythonの勉強にあれって使えるのかなー

TensorFlow User Group #2

TensorFlow User Group #2では中井さんのディープラーニングの解説を聞いてたおかげで全くわからんということはなく、ディープラーニングでどういうことをやっていて教師データをどうやって集めてどうやって分類器を作っているかなどの話の概要は理解しながら聴けた気がします。
流石に細かい専門用語や関数などが出てきたのはよくわからなかったので勉強してブログに書けるくらいにはなっておきたいと思います。
とりあえず来年はGCPGPUインスタンスやMLにもGPUかTPUが来るんじゃないかという話もあるので楽しみにしつつCPUでTensorFlowを始めてみようと思いました。 なんか話題だからCloud MLを使ってみたいんですよね。

ちなみにトーク内容は

  • アイドル画像の識別の話
  • AXAによる高額支払いを予測する話
  • JINSによるメガネのレコメンドの話

でした。 どのトークも色んな知見があって勉強になりました。 皆色々手探り状態なんだなーっていう印象とTensorFlowを動かす環境は結構AWSを使ってるらしいです。 やっぱGPUインスタンスを気軽に使えるからってのが大きいようですね。

まとめ

朝から晩まで三食 Googleに食べさせてもらいながら勉強してた一日でした。

OnBoardのお土産のクッションとTシャツです。

f:id:k2wanko:20161213234913j:plain

ISUCON6予選で惨敗してきた

タイトルで書きたいことは全て書いた。

後は蛇足

出だしは良かった。

デプロイスクリプトやビルドスクリプトなど過去問を参考に用意していたし。

プロファイリングツールの準備や最初の公開鍵の設定周りなどだいぶ自動化できていたと思う。

敗因は練習不足

プロファイリングツールでアプリに時間がかかってるのはわかってその中の正規表現が特に重たいということまではわかっていたのだが、逆にそこだけに気を取られてしまって他にも見るべきところがあったのに全然手が回らなかった。練習不足というのは8時間をきっちり使った練習を全然できなかったのでペース配分と時間の使い方を理解できないまま、本番で周りのスコアの伸びに焦ってしまっていたと思います。

まとめ

学生枠としては最初で最後のISUCONでしたが(留年しなければ)、また来年も出たいと思います!

歌舞伎座Tech Swift勉強会に行ってきた。

kbkz.connpass.com

live.nicovideo.jp

iPhone7の発売日にSwift勉強会に行ってきました。 Swift3.0の話よりかは デザインパターンの話が多かったイメージ。 自己紹介でScalaやってますって人が多かったの流石ドワンゴの勉強会だなという感じでした。

以下その時のメモ書き

Swift 3.0 と値型 @da1ro

niconare.nicovideo.jp

迷ったら値型を使え

Demoで参照型より速いという話があったがLLVMの最適化のおかげなのかなぁ

クリーンアーキテクチャしたい、クリーンアーキテクチャしたくない? @ktanaka117

なぜクリーンアーキテクチャしたいのか 機能要件は決まってるが仕様が決まってないときに柔軟に対応できるから クリーンアーキテクチャは学習コストが高いが設計の安定感が増す コードも増す DDD的な?

クリーンアーキテクチャについてはここのQiitaがいいっぽい

qiita.com

初めて Phantom Type と遭遇して、闇雲に闘いを挑んでみた話 @es_kumagai

www.slideshare.net

Stateのチェックを実行時ではなくコンパイル時にチェックするために使うといいパターン

Good Design Pattern of Networking Programming in Swift @Taketo Yoshida

Alamofireでどうやって実装したらいいかという話

便利そう

登壇者は日経の人で日経電子版で使ってる内容だったのかな?

スライドは公開されてたら後で載せる

サンプルコードでSwift3の&記法使ってた。 protocol A と protocl B の両方実装していることを A & B で記述できるやつ

君の参照は。 @takasek

クロージャーのselfの取扱について

循環参照させないためにどうすればいいか

クロージャーのthisはfunction

self渡すときはweak selfを使う

closure = { [weak self] in
   self?.execute()
}

ATSと通信ライブラリの話 @nagisawks

ATS対応しろというAppleに逆らって如何に平文のHTTPを通すか

解: Socket通信をする

github.com

シンプルに書けて オプションでソケット通信でHTTPを叩けるHTTPクライアント

足りない機能があるので絶賛PR待ってるようです。

Minimal Cake Pattern in Swift @yyu

www.slideshare.net

SwiftでDIする方法

勉強になる。

まとめ

XCode8入れてSwift3にしなければ!

あと久しぶりの東銀座でしたが二次会にも参加させて頂きとても楽しかったです。 勉強会でSwift力をあげなきゃなと思って 二次会でリア充力を上げなければなと思いました。

ただ今週末はISUCONなので終わったら本気出します。

最近やってること

5ヶ月ぶりにブログを書こうかなと思ったので書いてます。
特にリアルが充実してたわけではないし忙しいかといえばまぁ忙しいという感じの日々でした。

主なトピックとしては

  • 就活
  • 卒制
  • PokemonGO
  • Splatoon
  • 最近の興味のあること

就活

インターンや勉強会などで色んな人に鍛えられたおかげで無事に終了しました。

卒制

僕の入ってるゼミはゲーム系なので今はUnityでゲーム作ってます。

C#のテストとかLinterとかのツールがよくわからないので人の手による温かみのあるチェックをしてます。

Unity5.3からUnit Testが入ってるっぽいけど誰も使い方を知らないので使ってないしPlayerの状態をカメラのスクリプトが持ってたりよくわからないので直してます。

PokemonGO

E3のトレーラー見てから「おぉ」と思って気になっていたので公開した日からやってます。
四谷から新宿御苑まで歩いたり錦糸公園と亀戸を行ったり来たりをやってたら1週間で風邪ひきました。今はのんびりやってます。
ポケモン交換もいいですが近くの人とのバトルとかもやりたいし、目の前を通った人にバトルを仕掛けたいですね。

Splatoon

PokemonGOだけの夏になるかなと思ったんですが体調崩してる時は家にいたので自然とSplatoonを起動していて今もやってます。
溶かしたウデマエを戻そうと日夜心が削れてます。プライベートやタッグが癒やしです。

最近の興味のあること

Vue.js

Node学園で知ってから良さそうだなぁと思ってから触り始めてます。
レイアウト周りはPolymerとかAngularのが揃ってるなーという印象ですがシンプルで理解すべきことが少なくていいかなと

GoogleCloudPlatform(GCP)

なんか学生の周りでもAWS使ってる人が多い印象あるなか自分はGCPを使ってます。
学生向けの割引があるわけではないのですがそもそもそれすら必要ないくらい安いしGoogleAppEngineに関しては無料枠があるのでちょっとしたWebサービスを作って試すだけなら最高のプラットフォームかなと思います。

最初始めた動機はGoの勉強として良さそうだなと思ったところからですが今はなんでもGAEで作れそうな気がします。

ただGAEだけでは足りないところもあるのでFlexibleEnviroment使うかまだBetaですがGoogleCloudFunctions使うかしなければいけないなぁと思うところはあります。

あとGCPの中でGAEの次に興味あるのがFirebaseで特に認証部分を自分で実装する必要がないのはすごくすごく楽だなと思います。

他にも興味深い機能があるので 勉強会あれば本当に行きたいと思ってます。

HTTP Live Streaming(HLS)

HLSはHTTPサーバーでストリーム配信するための規格です。
その性質上既存のHTTPサーバーで配信できるしCDNでキャッシュもできるので これで動画配信サービスを外部のサービスに頼らずに作れるじゃん!とか思ったので調べてます。 特にGCPにはエッジキャッシュという無料で使えるCDNがあるので相性が良さそうだなと

Swift

iOSアプリが作れるようになるため。