2020年をやっとこさ振り返る

こんにちはこんばんはnasaちゃんです。2020年の12月下旬に振り返りブログを書く話をしていたけど、こんな時期になってしまいました。 書きます。

去年はプログラミング、インターン、etcのよう題目ごとに振り返っていましたが、今年は次ごとにやってみます。 (去年は今で言う一昨年のことで、今年は今で言う去年のことです。1年分ずらしたほうが振替としてはしっくり来るので、ずらします)

1月

就活真っ盛りだった気がする。遠い昔のことのように感じるが、1年しか立ってないらしい。 馬鹿な去年の自分は日帰りで面接のために東京に行ってたりした。乗り物に乗った後は基本体調が死んでいるので、かなり間違った判断だったが何とか乗り切れてよかった。

この時期から最終選考や内定がインクリメントされ始め、どこに就職するか悩み始めていた。あと、技術書をヒイヒイ言いながら書いていたのはこの時期だった気がする。

2月

多分就職お悩みまっさかりだと思う。各社の人事の人と相談していたと思う。人事の人なので何かしら理由をつけて自社に来るように仕向けてくると思っていたけど、案外そんなこともなく、ママやパパのように感じた。(年齢的に失礼かも、、、)

技術書をヒイヒイ言いながら書いていたのは1月じゃなくて3月だった気がしてきた。

3月

就職先を決めた。

4月

卒業研究スタート。研究室のみんなは僕より2,3ヶ月早く動き始めているので、担当教員にケツを叩かれまくった気がする。(お尻ペンペン) 同じライブラリのコントリビューターと会う約束をしていたけど、コロナ云々で会えなくなって残念だった。(英語が話せないので少しホッとしたのは内緒)

5月

オンライン飲み会をやって交友関係が少し広がった月だった。また、Twitterでしか話したことがなかった人と話せて良い経験になった。このおかげであんまり初対面でも緊張しなくなった気がする。

この月から本当に全てがめんどくさくなって、何もしない生活を送り始める。卒研もバイトもプログラミングもしなくなった。代わりにずっとApexやってた。

6 ~ 9月

闇の時代。 精神的に終わっていて、何もしてないので書くことが本当にない。Apexやりまくった。

10月

光が指した。 内定式とIsuconがあった。このままApexをするのは良くないと気づき始めたので、頑張り始めた。 手始めにIsuconのチーム練習をちゃんとやったり、リハビリとしてgolangを少し書いたりした。

isuconはこちらを参照. 負けた - 心の声を垂れ流す場所

内定式も10月にあった。内定者がみんな優秀で、このままじゃまずいという気持ちを加速させてくれた。

スタートアップでバイトを始めたり、内定先でインターンを始めたりした。振り返ってみると、闇の時代のリハビリにしては色々頑張りすぎている気がする、、、よく乗り切ったの褒めてあげたい。

この月にこのままじゃ卒業できないと気づき卒研テーマを変えた気がする。

11月

Apple watchを買った。人生で最高の買い物だと思っている。

Apple Watchを買ってからほぼ毎日運動(軽い散歩からランニング等)をしている。こころなしか健康である。

12月

運動が楽しくなり始める。 2kmほどのランニングを行っていたが、ランニングは普通5kmだという情報を聞いたのでこの時期から頑張って5km走るようにしている。 いざ走り始めてみれば5kmはどあっという間でびっくりしている。

運動以外はあんまり書くことがない、、、

インターンでちょっとずつ成果が出ていて嬉しい。

おわりに

振り返ってみると闇の時代を乗り切れてて偉いと思っている。6~9月の間は色んな人に支えてもらったので、これから恩返しできるように頑張っていきたい。

来年(2021)の豊富を軽く考える

豊富自体はまた別の記事にしようと思っているけど、すこしやりたいことを書いてみる。

  • oss活動を復活したい
  • 日曜大工したい(プログラミング)
  • Apexマスター行きたい

oss

今年は全くOSS活動をしなかった。コードを書く口実になるし、人のコードを読むのは楽しいのでまた再開したい。rust-analyzerとか面白そうだと思っている。

日曜大工

ossとあんま変わらんけど、空き時間に個人的にコードを書きたい。 何を作りたいとかはあんまりないけども、コードを書いている時間は好きだったので、今で書けば楽しめると思っている。ちょっといいネタを思いつきつつあるので、ちゃんと完成させたい所存。

Apex

ゲームにハマると思わなかったけど、ハマってしまった。せっかくなのでマスターランクまで行ってみたい気持ちが強い。 今年に入ってから謎に回線が死んでいるので、ちゃんと整えて、卒研終わらせたらガッツリやりたい。

PS 久しぶりに文章を書いたけど、雑に思おっていること、思ったことを書き出すのはやはり楽しいものがある。

いつから弾が当たっていないと錯覚していた?(イケボ)

こんばんはnasaです。今日は研究進捗が出てハッピーです。

最近夜はapexをやることが増えました。大型アプデも来て盛り上がっていますね。我が家のネットも夜は盛り上がっており、apex内で測ることの出来るパケロスは20%を超えます。(やったね!) この減少は20時~23時くらいでよく観測されます。なので我がマンションの民の影響だと思いこんでいます。

このパケロスのおかげで敵の弾が僕には当たりません。ただこれはmy PS4にパケットが届いていないだけで、しっかりとダメージは受けています。これにより次の弾のダメージが倍になったり3倍になったりします。バイキルト使いと戦うのはツラぽよなのでそろそろ夜のapexは引退して朝活でも始めようと思います。

そんな一日でした。

ps. ラグくても勝てるように夜は訓練所に引きこもってみます。

負けた

チョリッス。nasaです。

ISUCON10 final負けました。それについて書く。

めちゃくちゃ悔しいのでこの気持が風化しないうちに気持ちを書く。具体的な敗因などは後日振り返る。

いや、もう書いちゃうか。振り返らないと出てこないような敗因なんて無いし。

圧倒的技術力不足で負けた。正直これしか無いと思っている。 (進め方やチーム開発の仕方に問題はあったと思うが、それ以前に力が足りてなさすぎた) 言い訳の余地がない分、技術的強者でありたいと思っていた分すごく悔しい。

圧倒的さを見せつけられてワクワク感も感じたが何よりやっぱり悔しい。

コイツ、悔しいしか言ってないな。。。。

正直今はそれしか考えられない。これをモチベーションにコードを山程書いたところで「追いつけるのだろうか?」と考えてしまっている自分がいるのがまた悔しい。

正直、有り余る才能があると思っていたのでなんとかなると思っていたけど、なんとかならなかった。余っているものなんて何もなかった。絞り出しても一滴も出てこないほどには何も余っていなかった。

改善点は分かったがどう改善したらいいかパッと分からなかったし、時間をかけてそこに注力していくという判断もできなかった。

ミスをやらかしてしまい、チームの進捗を減らすということをやらかしてしまった、、、サーバーを2つほど潰してしまった。。。居ないほうがマシなんじゃないかという8時間であった。

ぴえん、ぱおん。

とりあえず一人で優勝した人(takonomuraさん)と自分との差は何かを考えながら眠ることとする。

zzzzZZZZZZZ....ZZZzzzzzzz.......

isucon10惨敗記録

f:id:htilcs1115:20210313181126p:plain 最終スコアは1100 ~ 1200のレンジだった。よく覚えてない。

チームメンバーはTaKO8Ki。チーム名はアサシン。

前日まで

6月からコードを殆ど書かない生活をしていたのでコーディングリハビリなどをやった。ツール作ったりGolangのコードを読んだりした。

チームでのisucon練習を2度ほどやった。この練習でよくやるオペレーションをまとめてMakefileに書いた。また必要なツールをinstallするスクリプトなどを用意した。

内定先の先輩に頼んでisucon練習を一緒にするなどもした。ご指導ご鞭撻本当にありがとうございました! この練習中のアドバイスがなかったら当日の動きが変わっていて、もっと惨敗していた気がする。

12:20 ~

スタート! とりあえず5 ~ 10分くらいマニュアルを熟読した。声に出しながら意識しておいたほうが良い箇所などをチームメイトと話し合いながら読んだ。

その後意気揚々とサーバーにSSHしようとする。しかしサーバー1,2にssh出来ないことが分かる。どうやら鍵の配置をミスっていたらしく我々競技者にはどうすることも出来ない問題だった。指定した秘密鍵GitHubのものではないのか?とかサーバーの問題ではなく自分らの問題だと思っていたので解決しようと頑張っていたのが少し悲しかった。

20分くらい立ったところで我々にはよくわからないからとりあえず質問しちゃおう!と考えて運営さんに質問した。回答待ちの間再びマニュアルを熟読するなどした。

12:50 ~

あ、サーバー3にはちゃんと入れる!ということにここで気づきました。 事前に用意しておいたsetupスクリプトを走らせるなどした。nginxのログフォーマット設定やmysqlのスローログ設定もやった。

よくやるオペレーションを書いたMakefileを事前に用意しておいたので今回のisucon10用に少し書き直してアプリケーションのビルドやmysqlへのログインを簡単にできるようにした。

nginxやmysqlのコンフィグファイルにシンボリックリンクをはってgit管理するなどした。

TaKO8Kiにコードを読んでもらっていたのでどこが問題になりそうか、使用ライブラリはなにか、気をつけることはあるかなどを共有してもらった。(画面共有で一緒にコード読んでいくの良かった。)

13:50 ~

ここらへんでベンチを回した。Goで468くらい。

DBが重たいことは分かっていたけど、とりあえずbotを弾くことにした。

サーバー1,2の復活の兆しがあったのでsshしてみる。入れはしたがログイン時に"bad .* file"などのエラーが大量に出る。nginxコマンドのパスが通ってなかったりlsすると強制ログアウトされたりするので再度運営さんに質問することにした。(ポータルの通知機能があることに気づいて無くて、運営さんがすぐ対応してくれたことに気づかなかった、、)

15:18

indexハリハリをした。スコアはある程度伸びたけどメモっていないので省略。

15:20

TaKO8Kiがnginxの設定を変更してbotの場合503で返すようにした。 nginxのlogを見ると10~20アクセスくらいしか503で返してなかったのでnginxの設定がうまく行っていないのかbotからのアクセスはそれほどなかったのか?と思った。

スコアとしては少し上がった気がする。(メモしてない、、、)

15:49

TaKO8Kiがchairとestateのinsertをbulk insertするようにしてくれた。 スコアはそんなに変わらなかったみたい。とりあえずスコアが下がることはなかったのでマージした。

17:20

searchEstateNazotteのN+1を修正した。スコアはある程度伸びた気がしている。

18:28

TaKO8KIがDBを別サーバーに移しても動作するようにしてくれた。どれかのサーバーでinitializeをすると他のサーバーでもinitialize処理が走るようにしてくれたので嬉しかった。

DBとwebappを分離することでスコアが少し伸びた。

18:30 ~

ここから特に有効な変更は出来なかった。DBが重たいことは分かっていてクエリの修正も我々には難しそうだったので、DBを2台のサーバーに分ける?見たいな話をしていた。

また、ChairとEstateのキャッシュはありだと思うが検索ロジックをバグ無く書くのはなかなかチャレンジングという話もした。

なのになぜかDB分割ではなくキャッシュの方を選択してしまい、その実装を始めた。

mysqlのquery cacheがOFFになっていたのでconfigをイジるなどした。しかしONに出来なかった、、、他のファイルでquery cacheを設定している箇所はなかったし、mysqlの再起動もしてみた状態でもONにならず悲しかった。

19:00 ~ 20:00

Mysqlが5.7なことに気づき8へのアップグレードを行った。しかしスコアは半分くらいになってしまった、、、

configファイルを見て設定を付け足すのなどしたけどよく分からず、結局5.7を使うことにした。

20:00 ~

予定ではここから再起動試験をする予定だったけどキャッシュの実装が終わっておらずそれを進めることにした。再起動試験は賭けに出ることにした。このままのスコアではどっちにしろ勝てないので。

20:30

キャッシュの実装は終わらず、DBの分離のことはすっかり忘れていた。ここでDB分離の実装をやるのは流石に無理となり、nginxの設定を変更してwebapp3台、DB1台の構成に変更した。

スコアの変更は無いだろうけど一応悪あがきをする。

もちろんスコアは上がらなかった。

最終スコアは1100 ~ 1200のレンジだった。よく覚えてない。

21:00~

おつや & タラレバ話をした。

DBの分割を何故しなかったのか〜という話を10回くらいしたかも。。。

技術書「Rustで学ぶ非同期処理ランタイム」の供養をする

こんにちは@nasaちゃんです。最近、死んでいたので、そろそろ復活しようと思いブログを久しぶりに書きます。

遠い昔(2020/2,3月)に技術書店に出展しようと思って書いていた「Rustで学ぶ非同期処理ランタイム(仮)」を書き続けるモチベーションがしっかりと消えたのでここらへんで供養しておこうと思います。「書きましたー!」って言えないのは残念ですが半分は書けたつもりなので四捨五入すれば実質書き終わっています。 強気な気持ちで生きていきます。書かないと死ぬわけじゃないし。。。。

TODOコメントがあったり、途中からパタリと続きがなくなったりしてますがよかったら読んでみてください。頑張って書いた記憶が朧気ながらあります。

stupefied-wing-509aa6.netlify.app

本について

なんか紹介文を書こうと思いましたが、リンク踏んでもらって「はじめに」を読んでもらうのが一番手っ取り早いと思ったので、書くのやめます。(ノω・)テヘ

諸注意

本中でasync-stdに大きく触れていますが、async-stdの実装が今とは大きく変わっています。ご注意を〜。

あと、本の中身を読み返さずにリンクを張っているので、本当に変な箇所があるかもしれません、琵琶湖くらい広い心で受け入れてください。

最後まで書かないのか

ここで書けなかった言い訳でも書いておきます。本は書けなくても言い訳は腐るほど書けますよ!

async-stdのランタイムを例に見ていくという構成だったのですが、4月にランタイムの実装が大きく変わりました、なので本書は大幅に書き直す必要ができてきました。しかも大幅な変更が2度起こったので僕のモチベーションはエジプトに旅立ちました。(一度は変更に追従したけど、二度目で心折れた)

最後に

これにて供養は終わりです、2,3月に頑張った自分、「Rustで学ぶ非同期処理ランタイム」ちゃんも多分浮かばれたでしょう。知らんけど。

CyberAgentのCraftEggにインターン行った話

f:id:htilcs1115:20210313175706p:plain こんにちは@nasaです。

このブログを更新するのは久しぶりですね。インターンに行った話ばかり書いていますが、コレ一応技術ブログのつもりなんですよ。ハハハッは(白目) 最近カオスエンジニアリングをやっていて、名前もちょうどカッコいいのでそこら編のことを書きたい所存(多分書かない)

もうちょい雑談なんですが、最近新しい技術を学んだ気がしません。「技術力を保っているつもりでいるのであれば、それはもう腕が落ち始めている」という話もあるので、ボクの腕は落ち始めているということですね、、、、ヤバい、、、、

ということで、2020年の2月にCyberAgent社のゲーム事業部のCraftEgg社に行ってきたのでそのことを話そうと思います。(曽祖父にインターンはブログを書くまでがインターンだと教えられた)

CraftEggについて

株式会社Craft Egg

人生を豊かにするコンテンツをつくる。 Craft Eggは、私たちが関わるコンテンツを通して、感動を提供し、 お客さまの人生をより豊かにできる会社を目指しています。

ホームページからコピペしてきましたが、感動を提供するということをやってきました。

CraftEggはガールズバンドパーティ(以下ガルパ)という神ゲーを作っている会社です。ボクも今回はガルパのサーバーサイドの開発をすることになりました。

bang-dream.bushimo.jp

インターンした理由

理由はつらつら箇条書していきます。

  • VoyageGroupのインターンでのチームメンバーやシェアハウスでのルームメイトがCyberAgentに吸い込まれていっていたので、どんな会社なのか、そんなに魅力的なのか知りたいという思い
  • ゲームサーバーの開発がやってみたい(おもにパフォーマンス面での興味)
  • 可愛いキャラクターの出るゲームの開発を楽しくやりたい

まあ、こんな感じのモチベーションがありCyberAgentのゲーム事業部にインターンすることになり、知っているゲーム & 可愛いキャラクターの出るゲームということでCraftEggにお世話になることになりました。

やったこと

今回はCraftEgg社のサーバーチームへの配属となりました。

管理画面追加

ユーザーが見る画面ではなく、CSさんが見るための画面を最初のタスクでやることになりました。詳細は省きますが、DBへクエリ発行して、josn返して、フロントのReactでいい感じに表示するだけです。

Java書くのがほぼほぼ初めてだったり、ハマりどころが多かったり、Reactはhooksが使えないだったりで色々と苦戦してしまいましたが、まあドカーンとやるだけですね。

Reactのバージョンアップ

hooksが書きたかったので、管理画面のReactのバージョンをあげることにしました。コレによってhooksが訪れましたが、管理画面の実装は先に終わらせていたので結局hooksを書くことはありませんでした、、

新イベントの実装

5月頃に開催されるイベントの実装をしました。これもjsonをバーンと作ってドッカーンと返すだけですね。詳細は多分言ってはいけないし、すれすれを書くのもアレなのでこのような雑な表記となってしまいました、、、

5月をお楽しみに、、、、

そんなにCAあってますか?という質問

過去にCAのインターンに行っていた複数名からnasaにはCAがあっていると思うよ!と言われることが多いのですが、そんなに合ってますか?何を持ってそう行っているのか、どの部署のことを言っているのか気になります!教えてたもー

渋谷、、、、

渋谷ツライです。住みたくないところランキング堂々の1位になりました!(渋谷以外はランキングに入ってませんが)

最後に

なんか何も内容のない記事になりましたね。学んだ内容もそんなに無かったのかもしれません、、それか今ゲロ眠いのでそれのせいかもしれませんね、、、

2月は本当に疲れていて、脳死で業務をこなしてしまったのが良くなかったと思います。業務以外のOSS活動や技術書の執筆も中途半端になってしまったので良くない一ヶ月でした、、、

まあ、充電期間は必要ですよね!自分で自分をいじめる理由もないので甘くしておきましょう!

ということで3月は頑張ります!

coming soon...

「技術を伝えるテクニック」という本を読んだので感想書くぞい。

こんにちはnasaです。

技術書店8の二日目(2020年3月1日)に本を出す予定なのですが、進捗芳しくありません、、、、(ひーーん)

まだ、テーマを考えている段階ですが、せっかく本を書くのであれば読んだ人に伝わりやすい文章を書きたい。そして、面白かった!、分かりやすかった!、学びになった!とポジティブは反応を得たいと思っています。

そして、今年(2020年)は勉強会での登壇を機会を増やして行きたいとも思っています。そのときに分かりやすく伝わる発表が出来ればなーとも思っていました。

そう思っている矢先に、今の自分にドンピシャな本と出会いました。

「技術をつたえるテクニック ~分かりやすい書き方・話し方~」という本です。すぐに買いました!

booth.pm

今回の記事ではこの本を読んでの感想、学びなどを書いていこうと思います。

続きを読む