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

k2wankoの技術的なanything

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

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

勉強会 GoogleCloudPlatform TensorFlow

体は動いてるけど気持ちは冬眠中のコキチーズです。
今日は色々刺激的な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アプリが作れるようになるため。

ドワンゴの就業型インターンが終わった

f:id:k2wanko:20160301111034j:plain

つい昨日最終出社日を迎え

5ヶ月続いたインターンが終わったので感想ブログを書こうと思います。

今後、ドワンゴインターンやITインターンをする方の何かになれば幸いです。

去年の7月にサマーインターンを募集していたのでエントリー

ドワンゴインターンを見つけたのは去年の夏

インターンどうしようかなー」と考えていた時にはてブのホットエントリーに上がっていた

スプレッドシートからでした。

夏のITエンジニアインターンの情報が集まる魔法のスプレッドシート - Google スプレッドシート

数ある企業の中からとりあえず2つ選んでその1つがドワンゴでした。

ドワンゴを選んだ理由はNode学園とニコニコ動画が好きだからです。

最近はやってませんが生放送もしてます

com.nicovideo.jp

エントリーの時に記入したものをあんまり覚えてませんがgithubアカウントと

何がしたいという熱い思いを書くところだった気がします。

面接では今までどういうことをしていたかと 将来どうなりたいかを話したと思います。

何かサービス的なやつやツール的なものを作ったりブラックなアルバイトで知見と苦しみを知っておくと将来像を意識しやすい気がします。

面接は度胸なのでレベル上げるか筋肉付けて度胸を上げましょう。

印象

事前の印象とかあんまりわかってなくて よく本社が爆発してる会社なのかな〜くらいに思ってました。

実際入ってみると想像以上にしっかりしてる気がしました。

まじめ系変な人が集まるところなんだって印象になりました。

何してたの?

しっかりしてるのでNDAとかありまして、どこまで書けるのか事前に聞いとけばよかったですね。

入る直前に焼きそばで燃えてたりしててワクワクしながら入社したのですが

焼きそばを焼かされるとかはありませんでした。

まぁ細かくは書かないのでそこは察してください

k2lab.hateblo.jp

play.google.com

qiita.com

得た知見

業務とは直接関係ないことで得た知見をせっかくなので共有しようかなと

Slack

ドワンゴといえば(たぶん)国内で一番Slackチャンネル数が多い企業かと思います。

僕がドワンゴで一番好きなものと言われれば一番に出てくるのはSlackです。

Slackは業務で使われいるのですが 業務に関係ない最高のチャンネルも幾つかあるので

僕のこの5ヶ月の癒やしだったチャンネルを紹介したいです。

 

まず一番お世話になったのが#splatoon#splatoon_gachiです。

カンストができずに心が闇に満たされた時のはけ口となってくれた#splatoon_gachiにはカンシャしかありません。(たまにTwitterにも漏れましたが)

タッグの募集などもこのチャンネルで行われています。

次に#kotlinです。僕が入った時は2人目だったのですが 現在では10倍に増えてました。

メジャーバージョンも出たしKotlin好きも増えて嬉しかったです。

僕が一番の癒やしとなっていたのが#zoiでこれは「今日も頑張るぞい」で話題となったNEWGAMEのキャラやコラ画像を気軽に流せるチャンネルです。

SlackBotに登録された画像を気軽に流せるチャンネルで最高です。

「ぞい」「zoi」「ぞいぞい」などの単語でSlackBotがランダムに画像を流してくれて、

毎朝来たら「ぞい」って打つのが日課になってました。

ちなみに#newgameというのもあり 新刊やアニメ化の情報はこっちで話します。

余談ですが#zoiには得能正太郎先生のTwitterが住んでいてリアクションしながら「ぞい」してました。

他にも色々ありますが

だいたい江添さんの記事と被るのでリンク先へどうぞ

本の虫: ドワンゴにおける業務外Slackチャンネルのまとめ

要はSlackがないと我慢できない体にされてしまいました

ニコニコ漫画のコンテンツ

普段は動画か生放送ばかりで静画は見てなかったのですが

同じ部署の先輩方に素晴らしい漫画を教えてもらいました。

seiga.nicovideo.jp

seiga.nicovideo.jp

seiga.nicovideo.jp

seiga.nicovideo.jp

seiga.nicovideo.jp (To LOVEるは知ってはいたけど読む機会がなかったので)

まとめ

5ヶ月という長いようであっという間だったインターンでした

戀塚さんとSplatoonしたり社員さんのお家を見学したりとか普通のインターンでは得難いことができてよかったです。

心残りは声優さんにお会いできなかったことと焼きそばを焼けなかったことでしょうか

あんまり参考にならない記事ですが、まぁ インターンはいいぞい

f:id:k2wanko:20160229202404j:plain

第二回Splathon(企業対抗スプラトゥーン大会)に行って勝ってきた

f:id:k2wanko:20160111023459j:plain

Splathonとは

Speeeさんが開催したSplatoonの企業対抗戦です。

第一回の様子はブログでまとめられてて 今回のもしばらくすれば上がってくるのかなと思います。

technica-blog.jp

感想

僕はインターンでお世話になってるドワンゴの所属として参加してきました。

ドワンゴは参加者が10人くらいだったので2チームに分かれてドワとンゴに分かれてドワチームにいました。

大会ルールはスイスドロー形式という方法でしたので

全チームと当たるということはなかったのですが4回戦やってすべてストレートで勝つことができてよかったです。

ルールでギアは固定でしたし、会場には16台のWiiUがありGamePadの混線でどのチームも相当苦労していましたので

早くGamePadの有線ケーブルを売ってもらいたいですね。

オンラインの大会と違うのはオーディエンスの歓声が聞こえるのでカントリードした時の盛り上がりは最高でした!

観戦システムもIkaLogの@hasegawさんがIkaLogを使ってリザルトや試合中の画面を自動で切り替えるシステムを作ってこられたり

企画としてフェスルールを再現してエディタやピザ派か寿司派かとかIT業界ネタで盛り上がれてしかもチームを決めるためのツールを用意してたりと流石でした。

終わりに

帰ってからはピクシブさんとGoogleさんとプラベをさせてもらいました。

ギア縛りと混線から開放され、水を得た魚いやイカとなってすごくいい勝負してました。

プラベでもお暇な時にまたやりたいし 今回当たらなかったチームともやってみたいです!

スプラソン最高でした!ありがとうございました!

次の開催を楽しみにしてます!