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

k2wankoの技術的なanything

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

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さんとプラベをさせてもらいました。

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

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

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

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

スプラトゥーン ウデマエSとS+の違い

自分の覚書用

S+から見た時のSとS+の違い

S S+
エリア 塗らない 塗る
ヤグラ 乗らない 乗る
ホコ 持たない 持つ
カウント 見てない 見てる
エリア優勢の時 エリア内をうろついて死ぬ リスキルに向かう
ヤグラ優勢の時 後ろの方にいる 交代でヤグラにのるかスパジャンで命のリレーを繋げてゴリ押しする
ホコ優勢の時 後ろの方にいる 道を作ったり援護しながら敵を倒す
エリア延長 敵を倒さずエリア内で死ぬ 遠くから塗りつつ敵を倒す
ヤグラ延長  乗ってるのに乗ってくる ヤグラの先を行って敵を倒す
ホコ延長 突っ込む 状況を判断してホコの護衛か先人を切って倒しに行く スペシャルも使えるように準備している
倒さない 倒す
援護 しない する
開幕裏取り 行く イカない
自分が死ぬと 一緒に死ぬ 敵を討ってくれる
チェイスが来た! 死ぬ 避ける
ボムラッシュが来た! 死ぬ 避ける
囲まれてピンチの時 死ぬ スパジャンで逃げる
死ぬと 自陣を塗り始める すぐに前線に戻ってくる 前線でスペシャルを溜める
射線 塞ぐ 塞がない
スペシャ すぐ使う いいタイミングまで待つし頼らない
リスキル カウントがどんな状態でも敵陣待機、そして死ぬ 敵が押し込んでたら戻ってくる
カモン 来ない 来る
シールド ボムを投げられて死ぬか速攻で壊されて死ぬ キケン
ブラスター 壁にぶつける チート
ダイナモ 見えてれば避けれる チート
リッター 射線に気をつければ避けれる チート
メガホン 謎なところに放つ キケン
スパショ 一発避ければ怖くない 何故か当たる
ダイオウイカ 避けれる 判定がおかしい

※ 味方と敵はごっちゃになってます

※ 心が荒んだ時に書いてます。

2015年とアドベントカレンダーの振り返り

あっという間に2015年が過ぎ去ってしまいました。

今年こそはやろうとおもっていたことの大半はできなかったりもしましたが 想像もしてなかったこともあったりしたし スプラトゥーンにここまでハマるとは思ってもいませんでした。

2015年の振り返り

今年も色々ありました。

Node.jsがio.jsと統合されて安定版がリリースされましたし Go1.5が出てGoをGoで書かれるようになったり Android Mが出てパーミッションの扱いが変わったりしました。

前半はNode.jsやWeb Workerまわりを使って遊んでたり

後半は iPhoneを買って少しiOSアプリ開発の勉強をしだしたり ドワンゴインターンにいったり KotlinやCircleCIに熱くなったり ゼミの課題でロボットを作ろうとして見切り発車に後悔したりしました。

全体を通してはスプラトゥーンにドハマリして生産性が落ちてたので 来年は善処します。

アドベントカレンダーの振り返り

qiita.com

ドワンゴアドベントカレンダーに入れてもらって その時熱かったKotlinのよさを書きました。

結局今年は安定版出ませんでしたが来年はKotlinの年になるのではないかなと思ってるのでAndroid開発するならKotlinでやりましょう!

qiita.com

RPGツクールMVでクロスプラットフォームに対応しました。 スマートフォンで遊べるゲームを作ってみたいのでデバッグ方法を調べた内容です。 もうちょっと内部的なところについて書きたかったかなと思います。

qiita.com

Kotlinを実際使ったノウハウの共有です。 KotlinはRxを使うときにすごく書きやすくなるのと Retrofitで簡単にAPIクライアントを作成できるので便利です。

qiita.com

Electronで使うことを前提に作られたUI Kitです。 僕が1からCSSで書くとダサくなってしまうので 手軽にOSXのデザインっぽくできるのはありがたいです。

k2lab.hateblo.jp

Splatoonの技術的な内容を書きたかったのですが カンストできなくて辛くて書いた記事です。 ちなみに暗黒面には落ちました。

qiita.com

CircleCIの環境変数をシェルから操作するためのあれこれです。 地味に便利だけど地味です。

qiita.com

Let’s EncryptがPublic betaになったのでGoogleAppEngineで独自SSLの設定方法を書きました。 完全に自動化できてないのでなんとかしたいと思ってます。

qiita.com

ES6の機能を活用したWebフレームワークです。 JSの辛いコールバックをなくせる最高にいいものなので使っていきたいと思います。

qiita.com

GoogleAppEngineをKotlinで開発してみようと思ったのですが 今のところあんまりメリットが少ないので Kotlinらしいフレームワークが必要だなと思いました。

qiita.com

本当はGoMobileについて書きたかったんですがEmacsの設定をちゃんとやってなくて補完が効かなかったりして 直した内容的なものになってしまいました。

去年は2つだったんですが今年は8記事書くことにしてしまって 全体的には質が悪かったので反省してます。

2016年にやりたいこと

一番やりたいこととしてはWebServiceAndroidアプリをちゃんと公開するのと 英語をもうちょっと勉強しようと思います。

他にもやりたことは色々あるんですが 来年は就活だったり卒業制作だったりあるので臨機応変に頑張ろうと思います。