とりとりとりぴ

ちょっと残しておきたいことをまとめています。

読書ログ: これが物理学だ!

ウォルター・ルーウィン 著
東江一紀

マサチューセッツ工科大学教授の感動講義をまとめた本。 指導教員の部屋に本が置いてあったのでお借りした。

高校の時に物理と化学を履修していたのだが、物理はテストの点数が毎回悪くあまり好きではなかった。 そのため、数学は嫌いではなかったため情報系の学部に進学し、1,2年生までは物理とは無縁の生活を送っていたが、 研究室配属で気象系というなぜか物理をゴリゴリに使う研究室に進んでしまい、現在に至る。
※物理というか、微分積分に関連した数学という方が近いが。

本の形式は最初から半分くらいまでがルーウィン先生のMITでの講義内容をメインに語られる。 振り子の実験や、寝転がって身長が伸びるかどうか、水圧の実験など面白いものが多い。 一部の講義はYoutubeでもみることができる。

www.youtube.com

後半のパートは、(おそらく)ルーウィン先生がメインで研究している惑星やブラックホールの話が出てくる。ここからは少し専門的というか、前半と比べると学術的な話が多く、専門用語もたくさん出てくる。しかし、少し物理を齧った人間であれば、多少わからない単語でも読める話となっている。

中性子星ブラックホールの話についてはわからない話でいっぱいであったが、私が読んでて特に驚いた点は連星である。一等星であるシリウスは連星であり、シリウスAとシリウスBが存在する。しかもほとんどの星が連星であるというのだ。星のことなど全く知らなかった私はシリウスにAとBが存在すること自体びっくりだった。

シリウスBとは | シリウスBチャレンジ

この本のすごいところは、物理の面白い部分をつまみ、日常と絡めて数式なしに興味をそそられるように説明しているところである。個人的に感動した部分である。最終講の最後の章に「大切なのは箱のふたを開くこと」とある。ここで「教えるものにとって大切なのは、知識を箱にしまい込むことではなく、箱のふたを開くこと!」そして、「物理学を学生たちが本当に興味を持っているものに結びつける方法をとることだ。」とある。

大学の授業では単位のために授業を取らなくてはいけなかったり、必ずしもその分野に興味のない人も授業を受けることになる。そうした人たちにとっても興味を持てるような授業をするルーウィン先生には感銘を受けた。もし、自分が教える立場になった時に、こうした考えを持てるようにしていきたい。

その他のめも

-> 後書きでたくさん画家の名前が出てきた

ICTSC2021夏の陣に参加した

こんな感じのコンテスト。

https://icttoracon.net/wp-content/uploads/2021/06/8aa02a72f34abc9eb76fb81c02543d64-880x290.png

icttoracon.net

私はチームStatus Code 418sで参加をしていた。

最終的に1700ポイントくらいで9位くらいだったと予想。

やったこと

参加前

友達に誘われて、何も知識がないまま参加をきめた。というか全体的にみんな知識がなかったので、専門分野を決めて1週間に1問ずつ過去問を解く会をやっていた。下のような感じのレポジトリ。(もしかしたらPrivateで見れないかも)

https://github.com/Hunachi/ictsc-418

私はネットワーク知識が皆無だったため、比較的触ったことがあるDockerとk8sの担当だった。

1日目

チームで解く問題の振り分けをした。5人チームで参加していたため、ひとり3,4問を担当していた。

私は「クラウドネイティブは難しい… 」と「dockerをインストールしただけなのに…」と「Webサイトにアクセスできない」をやることになった。

「dockerをインストールしただけなのに…」は何故か別のホストにsshすると自分のサーバに接続されちゃうような現象が起きていて、よくわかんないな〜と思いながら調べていた。しばらくIPアドレスを見ているうちにこのIPアドレスって何か意味があるのかな〜と思ってIPアドレスについて調べていたらDockerのsubnetのIPとhost名が一致しているせいでダメだったということに気づき問題を解くことができた。

結構有名な問題らしくて、知っている人はすぐに解けたらしい😭 まあ解けたしいいんだ。

その間に、@hunachiに「止まらない」がgoの問題っぽいから教えて欲しいと言われて、helpに入ったが、goの問題というよりかはDockerのオプションの問題だったので、ちょっとググって貢献することができた。ラッキー✌️

解き終わった後は、「Webサイトにアクセスできない」を頑張っていたが、k8sの設定ファイルがたくさんあって構成を見ることに必死で何もできずに終わってしまった。

2日目

夜に頭がリセットされて、とりあえずk8sの問題で困った時はpodのログとかdescribeを使うということを過去問で学んでいたことを思い出したため、ログやdescribeしてデバッグをしていた。

そしたら、upstream sent too big header while reading response header from upstream...というエラーを発見し、ググったらheaderのサイズが大きすぎてダメってエラーだったので修正した。ここで解けた終わりー!って思ったら、400エラーのThe plain HTTP request was sent to HTTPS portが出て、「は????」という気持ちに。しばらく苦戦して、やっとhttpsの設定方法がわかり、無事解決した。

解決した後は残りが30分しかなかったため、「クラウドネイティブは難しい… 」に取り組んでみたもののAnsible触ったことなくて諦めてしまった。初めて出てくる知識はキツい。

感想

ネットワーク周りの問題が多く、全くネットワークわからんぷだったけど、解決できた時のアドレナリンがドバドバで最高だった。

問題が解けたら、チームメイトがめちゃくちゃ褒めてくれて、とてもいいチームだったなと思った。多分これめっちゃ大事だと思う。 f:id:toriChan:20210829231142p:plain

参加前と参加後でチームメイトの成長も感じられて、本当に勉強になったしいい大会だった。次出る時はネットワーク周りの知識をもっとつけたり、k8s極めて準備万端にして参加したいなと思った。

チームメイトのwriteup

note.com

他の人のwriteup

season1618.hatenablog.jp

kosay.jp

読書ログ: 新Java教科書

Javaの復習、TAの予習用に読んでみた。

www.amazon.co.jp

1章

Javaの概要。以下、確認したい単語

バイトコード コンピュータの機種やOSに依存しないコードのこと。Javaではコンパイルした中間コードをさす。

Java Virtual Machine (JVM, JAVA仮想マシン) バイトコードを実行するための仮想的なソフトウェア。コンパイルでライブラリを読まない代わりに逐次実行するために環境を用意してあげる必要がある。多分EclipseとかIntelliJといったIDEはライブラリもいい感じにまとめてくれたりもしてくれるんだと予想。

JRE Java Runtime Environment Java実行環境

JDK Java Development kit Java開発環境

J2SE Java2 Starndard Edition。アプリケーションやアプレットの作成に使う。

Java servret, JSP (Java Server Pages) Webサーバーのサーバ用途として用いられる

J2ME Java2 Micro Edition 携帯電話などの組み込み機器向けアプリケーション

Java Card API ICカード上で動くソフトウェアを作成する用

2章

Hello worldしてた

3章

  • long型の宣言 12345678L
    • doubleとfloatは後ろにそれぞれdとfをつける
  • 16進数宣言 0x12
  • 8進数宣言 0123

浮動小数点数型はコンピューター内で2進数で演算が行われるため、10進数の数は2進数に変換される。その時に若干の誤差が生じる。これを丸め誤差という。

  • ASCII ... 127の値で文字を表す。英語・数字・記号
  • Unicode ... 2バイトでキーボードの文字がだいたい入ってるイメージ。ギリシャ文字Фとか、åとか。

参照型 ... 記憶領域が自動的に確保されず、プログラム内で明示的に記憶領域を確保する必要がある

int[] vec; // 配列の宣言
vec = new int[3]; // メモリの確保

4章

演算子について述べていた。

5章

ifとかforとか。拡張for文ってfor-each文ともいうんだね。ごっちゃになっていた。

6章

オブジェクト オブジェクト指向のオブジェクトは「機能的に一つにまとめたこと」で、現実の概念や具体的なものをプログラムの中で表現したもの

カプセル化 オブジェクトの内部の詳細を外部から隠すこと。

隠した時に、オブジェクトにアクセスできるあらかじめ決められているメソッドをインターフェースという

クラス オブジェクトの元となるもの。設計図に相当する。

インスタンス クラスに従って生成されたもの、実体となるものを指す

継承 元となるクラスがあれば、それをextendして定義することができる。元となる定義を流用して差分に相当する部分だけを改めて定義する方法。元となるクラスをスーパークラス、新しく作られるクラスをサブクラスという。 ※ 他の呼び方としては、既定クラス(base class)-派生クラス(derive class)、親クラス-子クラスがある。

抽象クラス メソッド名だけ定義された状態のクラスで、継承したクラスは必ず中身を書いてoverrideして中身を定義しないといけない。
ref: 抽象クラスとは - 抽象クラスとインターフェース - Java入門

メンバ変数 クラス定義をしている"{"と"}"の中に記述され、そしてメソッドの外に記述されている変数のこと

class Television{
  int channelNo; // メンバ変数

  void setChannel(int newChannelNo){
    channelNo = newChannelNo;
  }

  void dispChannel(){
    System.out.println("現在のチャンネルは " + channelNo + " です");
  }
}

ref: メンバ変数とは - メンバ変数とメンバメソッド - Java入門

7章

オーバーロード クラス内で同じメソッド名のメソッドを複数作ること。意外と使われているイメージ。

コンストラク オブジェクトが生成された時に自動的に呼び出されるメソッド。このコンストラクタを利用してオブジェクトを初期化できる。「クラス名と同じ名前で、戻り値のないメソッド」のこと。

public class Point {
  int x, y;
  Point() {x = y = 0;}
}

...
Point pt1 = new Point(); // コンストラクタが呼び出され、x, y = 0で初期化される。

// これはできない
pt1.Point();
Point pt1 = new Point(10, 20);
Point pt2 = pt1;
Point pt3 = new Point(10, 20);

ファイナライザ オブジェクトが破棄される時に、finalize()メソッドが自動的に呼び出される。オブジェクトが削除される前になんらかの後処理が必要な場合はfinalize()メソッドを定義しておく。

予約語系 * static ... インスタンスを生成しなくても呼び出せる。クラスをインスタンス化しなくてもアクセスできる。 * final ... 変数の値が変更にならない。final static で実質的に定数を宣言する。 * public ... 全てのクラスからアクセス可 * protected ... 同じパッケージのクラスとサブクラスからアクセス可 * <アクセス制御なし> ... 同じパッケージのクラスからアクセス可 * private ... そのクラスの内部からだけアクセス可

8章

継承について。 superクラス呼び出すときはsuper()使ってコンストラクタを呼び出したり、super.getText()して呼び出す。

クラスの継承の末端にしたい場合はclassの前にfinalをつける final class foo{}

抽象クラスだけを持ち、メンバ変数は一切持たないクラスをインターフェースとして宣言することができる。 修飾子 interface インターフェース名{...}で宣言する。クラスの宣言と似ているがインスタンス化することができない。ただし継承はできる。インターフェースをクラスに渡す場合はimplementsを使う。

class MyShape implements Movable, Erasable{ ... }

extendsとimplementsの違いがよくわかっていなかったのがクリアになった。 extendsがクラスの継承でimplementsがインターフェースを継承する。implementsは多重継承が可能

インターフェイスについて

9章

例外処理について。 エラーハンドラ tryブロックに続けてcatchブロックでエラーを処理するコードをエラーを処理するコードを記述する。エラーを処理するコード。

10章

stringクラスについて色々。 データ構造とかもある。SetはHashSet意外にもSortedSetやTreeSet、SortedMap, TreeMapがある。

基本型に格納できないものはラッパークラスを使う。Java5.0からラッパークラスに自動的に変換するオートボクシングを導入されたため、ラッパークラスの利用には注意する。

11章

入出力について

12、13章

アプリケーションについて

Other:

以前書いたGolangオブジェクト指向なのか気になったのでちょっと調べた。オブジェクト指向的言語の条件は一部満たさないものの、記事を書いている多くの人はYesと回答していることがわかった。
Goはオブジェクト指向言語だろうか? | POSTD

Ochachaで「作って理解するOS」にトライして実際にOSを作ったよ

タイトル通り、春休みにチームOchachaでOS作りに挑戦しました。

チームOchachaは本当はICPC用のチームだったのですが、ハッカソンにつづき遂に低レイヤーにまで手を出すようになりました(^^;

使った本のリンクはこちらになります。

作って理解するOS x86系コンピュータを動かす理論と実装

作って理解するOS x86系コンピュータを動かす理論と実装 | 林 高勲, 川合 秀実 |本 | 通販 | Amazon

第一回 (2/14)

記念すべき第一回目は具体的にどのような感じで本を進めていくのかを決めていきました。通話は全部Discordで、進捗管理はNotionを使うことに決め、みんなでNotionのアカウントの作成をしました。

その後実際にページを作成しました。 初めてのNotionだったのですが、あまりに多機能すぎてビビりました。

私は第一回の時点で本を持っていなかったので、amazonで本を買うところから始まりました。

画像の中央に進め方が書いてありますが、この日は次回までに第一部の2章まで読もうと決めました。ページ数126ページです。 気合を入れて頑張ろうと思います💪

f:id:toriChan:20210907223152p:plain

第二回 (2/21)

第二回は宿題の確認と雑談から入りました。

宿題の進捗は、126ページまで読んできたのが1人と、私は2章の途中まで、もう1人は1章が終わったところまででした。(1回目でこれはやばいか?)

ということだったので1章でわからないところや理解を深めたいところを中心に話し合いました。この日は、char型に数値代入してもコンパイルエラーでないことや関節演算子を型側につけるべきか変数型につけるべきかについて話し合いました。

下のスクショのような感じです。

f:id:toriChan:20210907223213p:plain

Notionのコードの色付け機能が結構優秀✨

次回までの宿題は3-5章までと、9章までに決めました。 9章が宿題に入ったのは本の前半の方は知識的な内容が多く、 「途中でモチベーションが下がってしまうかもしれない」ということで 実際にちょっとアセンブラを読むことになる9章が入りました。

第三回(2/28)

9章読んだ感想ですが、一応内容はわかるけど8章読んでから9章読んだ方がよかった説ありました。しっかり考えられて作られているのふつーに前から読んだ方がいいですw

今日はこんな感じのことを学びました。 排他処理については本読んでふーんと流していた状態だったのですが、3人で語り合って理解が深まりました。

やっぱり早くOS作りたい気持ちがすごいので今回は6~8章&12章を宿題にしました。12章は環境構築で本はWindows版で書かれているため、詰まらないか少し心配です😓 f:id:toriChan:20210907223238p:plain

第四回(3/7)

この日は一人いなかったのでほぼ雑談で終わりましたw

OSはこんな感じでBootプログラムを起動させるコードを書き、起動画面まで作成することができました✌️

f:id:toriChan:20210907223251p:plain この週は10,11,14章を宿題にしました

第五回(3/17)

第五回は読み方の確認とGithubのレポジトリを作りました。(ほぼ雑談) qemu ... キューエム bochs ... ボックス

https://github.com/NamikoToriyama/namiOS

前の週にCPUをゼミで作成した友達がいて、その聞いていました。 CPU作るというのがどういう部分の作業をさしているのか理解することができて、OS作り終わった後にチャレンジしたくなりました。

先週は全体的に進捗がなかったため、14, 15章を宿題にしました。

第六回(3/30)

進捗が全体的に鈍化してきてまずい。

私の方は14,15章を終わらせて、BIOSのブートプログラムを読み込んだ後にプロテクトモードに移行するようなプログラムを書きました。(下の画像)

f:id:toriChan:20210907223306p:plain 14章でブートプログラムを書くのですが長い割に画面がそこまで大きく変わらないため、おそらくここを乗り越えるのが一番辛いです。

下はプロテクトモードに移行した画面。 何もコードを書いていないため、真っ黒です。おそらく16章でこの画面に色をつけていくことになるのでしょう。 f:id:toriChan:20210907223317p:plain

第七回(3/30)

16章絵がたくさん出て楽しい( ✌︎'ω')✌︎

こんな感じでだいぶOSっぽい見た目になってきました。

f:id:toriChan:20210907223331p:plain

なぜかqemuで起動すると変なラインが表示されて画面が綺麗じゃないため、bochsを使うことに決めました。(有識者教えて)

f:id:toriChan:20210907223339p:plain 17章の時刻表示したら表記が直った。謎挙動🤔 そして今度はbochsが動かなくなった。

f:id:toriChan:20210907223349p:plain

最後に

最後までご覧いただきありがとうございます。 何か沼にはめていただけるものや、おすすめの本などありましたら、ぜひ教えてください。

読書ログ:プログラマのためのDocker教科書 第2版

読んだ本

WINGSプロジェクト 阿佐 志保. プログラマのためのDocker教科書 第2版 インフラの基礎知識&コードによる環境構築の自動化 (Japanese Edition) (Kindle Locations 92-93). Kindle Edition. f:id:toriChan:20210111020017j:plain

読んでみて

  • 最初の方はコンピュータの基礎用語から入っていてわかりやすい.
  • ただ初めて読むにも若干難しい単語がちらほらと出てきて,どこの層狙ってるのかあんまり分からない.
    • インフラを少しかじった人間がDocker導入したいというスタンスくらいならスラスラ読めそう.
  • コマンドの説明とかインストール方法とか丁寧に書かれている.知っている人だと少し冗長だなと思うところはあるかも.
    • Dockerを初めて導入するにのは良い.スクショがたくさんあって躓きにくそう.
    • コラムみたいなのはプラスαみたいな知識が得られてめっちゃいい
    • 図が結構書いてあってわかりやすい

気になった部分のメモ

1-3章

新しく覚えた単語

めっちゃ基本用語から書いてある.

オンプレミス オンプレってやたら聞くけど、あんまり意味理解していなかった。サーバやネットワーク機器を自社で調達し、システム要件に応じてインフラ構築し、ライセンスの管理やバージョンアップも自前で行う

パブリッククラウド インターネットを介して不特定多数に共有されるクラウドサービス GGPとかAWSとか使ってるやつだ。IaaS(Infrastructures as a serviceだっけ)は仮想マシンやストレージを選んで利用した時間やデータ量に応じて料金を支払う

プライベートクラウド 企業グループのみに提供されるクラウドサービス(図を見てもあんまり、パブリッククラウドと変わらなそう🤔

オンプレがむいている例

  • 高い可用性
  • 機密性が高い
  • 特殊要件

オンプレとクラウドが混在したハイブリッドクラウドや複数クラウド(GCP, Azure, AWSとか混在)を使ったマルチクラウドもよく使われるっぽい

継続的インテグレーション(CI) アプリケーションのコードを追加・修正するごとにテストを実行して確実に動作するコードを保持する手法

継続的デリバリー デプロイ方法の仕方、ブルーグリーンデプロイメントとかカナリアデプロイとかそういうやつ

Dockerの基本的な説明については元々あったイメージとはあまり変わらなかった。結構理解し始めているのかも?

DockerCompose(複数コンテナ一元管理) 複数のコンテナの構成情報をコードで定義して、コマンドを実行することでアプリケーションの実行環境を構成するコンテナ群を一元管理するためのツール。ただなんとなくcomposeコマンド打ってたけど、コンテナの構成情報を定義していたのか。便利ツール。composeファイルも常にコピペしてたしよくわかってなかった。

namespace コンテナを区画化する仕組み。実際のアクセスしている場所は変わらないんだけど、namespaceごとにコンテナが分けられてるように見せていることくらいはわかってるよ。

cgroups

  • リソース割り当ての仕組み

    • CPUの割り当ては親の割り当て量に依存していて、超えると親のcgroups制限にひっかかかる
  • ネットワークの仕組み

    • Dockerでは、NAPTの機能を使って接続する.1つのIPアドレスを複数のコンピュータで共有する技術で,IPアドレスとポート番号を交換する機能がある.一つのIPから複数のIPを変換する,IPマスカレードともいうらしい

$ calでカレンダー出てくるの知らなかった.衝撃すぎた.1番の学びだった

Docker networkみたいなコマンドでネットワークへの接続などの設定ができる

4章 Dockerコマンドの説明がいっぱい

Dockerのimageってインポートエクスポートのコマンドもあるっぽい. Docker container export/import 
Dockerファイルの受け渡しで個々のPCに必要なライブラリをpullすることが多いからimage直接動かせるの知らなかった

不要なイメージ・コンテナを一括削除

docker system prune

めっちゃ良さそう.知らなかった.超便利そう.暗記したいコマンド暫定No.1

5章

Dockerファイルの書き方が詳しく書いてある

マルチステージビルド アプリケーションをビルドするためのDockerイメージとプロダクション環境で実際に動作させるDockerイメージを同時に作成できる機能

ENTRYPOINT Docker container runコマンドを実行した時に実行される

ONBUILD ビルド完了後に実行される命令 若干雰囲気は違うかもだけど,ONBUILDをかくとGoのdeferコマンドみたいな感じで後で実行される,厳密にいうとイメージを設定してビルドした時に実行される Webコンテンツ開発とかで使われるっぽい

ヘルスチェック プロセスが正しく動いてるか確認する,(kubernetesでもあったなこれお)

6章

Docker hubとかgithubとかの公開とかその辺 公開したい時に調べれば良さそう.そんなにちゃんと読まなかった ラズパイでkubernetesクラスタ作りたい

7章 複数コンテナの運用管理

Docker-compose系のコマンドがめっちゃかかれている. Composeファイルの書き方,オプションの設定など

8章 マルチホスト環境でのDockerの実行環境構築

コンテナオーケストレーションツール 複数のホストマシン上でDockerを動作させて.高可用性(故障した時にも稼働できるような能力)/高拡張性(負荷が大きくなった時に処理を分散する)のアプリケーション実行環境を構築すること

9章 クラウド環境でのDockerオーケストレーション

コンテナオーケストレーションツールにkubernetesやDocker Engine, Apache Mesos, Marathonがある.Kubernetesと繋がった,なるほどね…
オーケストレーションツールにはkubernetesがメジャーなんだなこれ.

ここからkubernetes系の説明が始まる.

バックエンドデータベース(etcd) 分散キーバリューストア.etcdめっちゃみるけど何か全然わかってなかった.データベース なんだねこれ.kubernetesクラスタ構成を保持する分散KVS.どのようなpodをどう配置するかなどの構成情報を持っている(これGithubでコード見たら面白そう.

ノード > Pods(複数可能) > コンテナ(複数可能)

ReplicaSet これもめっちゃ聞くけどよく分からないやつ.簡単にいうと指定した数のPodを常に起動しておく仕組み.最低限のPod数を定義するってことかなぁ

Deployment Deployment = pods + replicaSet

Cloud source repositories GCPソースコードの管理ができるんだって,知らなかったー

GCPでDockerのイメージpushするのはやったことがあったので読み飛ばした. Blue/Greenデプロイメントのつなぎかえとかもあるので時間あったら試してみると楽しいかも

10章 クラウドを使ったDocker実行環境の運用管理

一番読みたい部分だけど一番ちゃんと読めてない.kurbernetes使ってシステム作ったときの運用管理について(正直Dockerあんまり関係ない)

ヘルスチェック 障害時に迅速に切り替えを行うために、現用機で障害が発生したことを検知する仕組み。サーバが健康かどうかを定期的にチェックする。ヘルスチェックは、サーバに対して一定間隔ごとに、なんらかの応答要求を出し、リプライが返ってくるかどうかで正常稼働を判断する。レイヤーが高くなるほど正確なヘルスチェックができますが、その分サーバに対して負荷もかかる。

2020年夏休みにやったこと

夏休みに挑戦したことやあった出来事をざっとまとめる。

8月

8/1から某社のインターンが始まった。インターンを始める前に2種類のエンジニアバイトを掛け持ちしていたため、片方は夏休み期間は休職、もう片方は週1で働くという約束で働くことにした。 インターンはフルタイムで働かなくては行けなかったため、アルバイトは土曜に働いていた。週6で働くというのはQoLが著しく下がるので全くお勧めしない。

仕事に慣れるのに必死で、インターンの最初の方は毎晩疲れて仕事が終わった後に仮眠をとっていた。幸い1,2週間で慣れたので仮眠はなくなったが。 8月の3週目くらいに初めてインターンのタスクのPRを出すことができて喜んでいたような気もする。同時期に入ってきたインターン生と比べると早かったっぽい。

8月末にはYahooのHackUに大学の友達と参加を決めていたため、その時期のあたりはインターン終わった後にチームメンバーと会議をしてたり、ハッカソンのプロダクトの実装をしていたりしていた。

ハッカソンはメンバーが後輩2人だったので自動的にリーダみたいなポジションになり、タスクの切り分けや進捗管理、サーバサイドの全実装、クライアントサイドも一部実装みたいなことをしていた。 実装はサーバサイド中心で、Goで実装してVisionAPIを呼び出す部分の実装を行った。フロントも初めてSvelt.jsを書いた インターンもあったのに良く頑張ってたな自分。

9月

9月の初めもハッカソンの続きがあり、1週目に発表をして特に賞などは得られなかったが、無事終了した。良い思い出だった。

9月の2週目にはISUCONがあり、ISUCONも他の友達と参加することを決めていたので、9月の1週目はハッカソンの実装をしながらISUCONの練習を友達としていた。 幸いISUCONの方はチームメンバーがそんなにガチではなかったため、たいして練習しないで本番を迎えた。もう少し暇だったら、もっと練習してから挑戦したかったなと思った。 本番はとても勉強になったので、来年やる気のある良い感じのメンバーと出たいなーという気持ちになった。

ちなみに9月はあまりにも忙しいことがわかっていた為、週1のアルバイトは休んでいた。(ここでバイト入れていたら流石に死ぬ)

9月の3週目は社内のハッカソンがあった。これまで超忙しい夏休みを過ごしていて、この週は休もうと考えており、全然やる気がなかったのだが、 他の人が思ったより動いてくれなく、結局サーバサイドの実装のほとんどの部分をやった。泣ける。いや超楽しかったけど。 この辺りでkubernetesとかDockerとかgRPCと言った技術にふれて結構理解度が上がったような気がする。もう忘れちゃったけどw

9月4週目はインターンの振り返りとか、インターン生に対してLTみたいなのを行った。スライド作るのに必死で特に何もしていなかったなぁ...。

まとめ

いろんなことに挑戦できて良い夏休みだった。
インターン退職エントリーとかまだ書いてないし忘れないうちに早く書きたい。

note.com