2021年の目標リスト

  • 2021 年は手を動かしていきたいので、漠然とするより具体的に手が動く範囲に目標を小さく分割したいと思いました。宣言すると後に引けなくなるので日記帳に書いてみます。
  • 今まで書き溜めていた日記ややりたいことリストを結合したものになります。

2021 年の目標

  • #1 SNS 作る。

    Misskey を使ううちに非中央集権的な SNS に興味が湧いて、ActivityPubというプロトコルに対応した SNS を作りたいなと思った。IIJ の分散 SNS を使って技術を覚えるという記事を見て、インフラと分散 SNS というテーマでやると、僕が将来働きたい SRE のようなレイヤに求められる知識もつくのではないかと思っている。あと、昔から好きだったサマーウォーズという映画で出てくる OZ という仮想世界への憧れが未だにあって、SNS と格闘ゲームは作ってみたいとずっと思っている。

  • #2 CTF 開催する

    2020 年は国内で多くの初心者向けのよい CTF が開催された。僕は競技(競技プログラミング、CTF、ICTSC、ISUCON…)のインフラがどうなっているのか、どうやってリクエストをさばいているのかに関心があるので、開催してみることで裏側が分かるかもしれないと思っている。しかし、2020 年の初心者向け CTF の多くが非常に問題の質がよかったと思っているので、もう少し僕自身が強くなければ満足の行く CTF は開催できないだろうと感じた。したがって、サークル内など内輪向けに CTF を開催することを 2021 年の目標にしたい。

  • #3 ハリネズミ本を読む

    ハリネズミ本は内容が古くなっているので修正しながら読んでいる。気になったところをすべて追いかけているのでだいぶ進みが遅いけど、そろそろ読み終わりそう。

  • #4 Kindle バイナリ本を読む

    この本 →はじめて学ぶバイナリ解析さらっと目を通しただけなので、ハリネズミ本を読んで現代版に修正した知識が合っているか答え合わせの感覚で読む。

  • #5 Car hackers handbook (humble)を読む

    Humble Bundle のセールの時にたくさん購入したセキュリティ系の洋書、読めてないです…(:D)| ̄|_ なかでも一番関心のある車のハッキングについて読みたい、読みたいと思っております。

  • #6 cs-edu を充実させる

    cs-edu は自分が書いているメモのことです。もっと充実させたい。最近は Vim と golang に力を入れている。漠然としているので、東大の理学部情報科学科のシラバスを見て内容を推測して教材を決めているやつを 3 年生終わり分までやること、にします。

  • #7 codereview システム作って HiCoder 内で運用

    codereview というか、もっと気軽にソースコードを公開しそれについて話をする文化をサークル内に生やしたい。

  • #8 Neovim に習熟する

    kurenaif さんの動画、実践 Vim、mercari の Youtube channel の高速に Vim を操る動画を見て自分なりの高速なテキスト編集のやり方を身につける。Thinkpad X240 を GUI なしで TextConsole のみにして、マウスを使わずキーボードも choco60 で矢印を使わずにテキスト編集する練習ができるようにしたので、ここで英文やソースコードの写経をしてトレーニングする。

  • #9 やりきったログにやりきったことを書く。主に本と読み切ったら対応するブログをセットで書く。

    やりきったことが大事なので、手を動かして本を読み切ることを大事にする。セットで外向けの形にして出力する癖をつける。kusuwada さんのブログを見習う。

  • #10 FL Studio 買ってデモ曲を作る

    インターンでお金を手に入れて FL 買おうと思っています。それまではピアノの練習して自分にとって心地よいフレーズを探して録音する作業を続ける。

  • #11 お絵描き 色塗って仕上げるまでやる。

    Clip Studio Paint 買いました。何枚か書いたけどてんでだめで悲しい。ikanago さんの 2020 年振り返りで知ったこの記事が参考になりそうなのでこれ読んで計画立てよう。

  • #12 OS Slack に入る

    osdev-jpへの憧れがうーちゃんさんのことを知った時あたりからずっとあって、今のところ自分には OS についての熱い想いと言えるほどのものがなく、ただの憧れだけなので行動を起こして憧れを熱意に変換したいです。

  • #13 lang-sys slack に入る

    プログラミング言語処理系が好きな人の集まりも憧れがあります。こちらは誰でもシュッと入れるようです。でも自分の中で憧れが熱意に変わるときに入りたいなと思っています。

  • #14 CPU Slack に入る

    CPU 自作のためのコミュニティがあるようです。最近 FPGA 周りを調べたり物を購入したりしているので、これも一定のかたちになったらこちらの Slack にお邪魔したいと思っています。

  • #15 サービスを立ち上げて世の中にホストするまでの流れを掴む。(rs-web-starter を完成させる)

    2020 年にインターンの面接で「実際にサービスを運用するまでの流れは分かる?」と言われて、運用まではやったことがなくうまく答えられなかったのが悔しく残っています。継続的にデプロイし続ける体験を積みたいです。rs-web-starter は Rust で対ハッカソン用に高速に Web サービス作成を行うための GitHub template です。ただいろいろ限界を感じたので、高速性なら Rails じゃないかとか、go の net/http レベルのライブラリを作成すれば、Rust でもほぼ標準ライブラリのみで戦えるのではないかとか、いろいろ試行錯誤しています。2021 年は Rust で Web サービスを作ることについて、学生目線でロマンを追い求めた結論を出したいです。

  • #16 CTF のホスティングを自分が納得する形になるまで考える

    任意コード実行環境を提供することに対する解を自分なりにずっと追っていました(Rootless Docker がいいのではという結論になった)が、TSG の mora さんの記事によって解決されてしまった感があります。ありがたいことです。これを試してみてなにか悪いことができないか調べることを 2021 年の目標にします。

  • #17 k8s を学ぶ

    CTF で k8s を使うとリソース管理とか楽になるという話を聴いて気になり始めました。これと別に CyberAgent のインターンで行われたおうち k8sも楽しそうです。学ぶことがたくさんあって嬉しいですね。

  • #18 GCP を CTF のホスティングのために学ぶ

    CTF は GCP でホスティングする例が多く、僕が調べた限り、セキュリティ周りの申請が AWS だと必要で GCP は不明(いらない?)という感じなので GCP でホスティングしようと思っています。kCTFみたいなのもあるし google で CTF やっても特に怒られない気がする(適当)

  • #19 今持っている物理本を読み切る

    これは無理ですね。でもがんばります。

  • #20 今持っている電子本を読み切る

    これはもっと無理ですね(洋書が多いので)でもがんばります。

  • #21 cs-edu サークル向け web-edu を自分用に持ってきて update する。

    web 入門記事を書きたい。go+TypeScript で Web サービスを作成する感じの。

  • #22 F#入門してみた記事を書く。構想として、自作言語から wasm ターゲットのコンパイラを、F#の機能をフルに使いながら書くチュートリアルが欲しい。

    kodai さんの F#についてのツイートを見て、型推論/判別共用体/パターンマッチング/アクティブパターン/コンピュテーション式/型プロバイダ/SRTP (静的解決される型パラメータ)を調べるやつをやりきりたい。F#のチュートリアルとして、言語機能を無駄にふんだんに使ったものがほしいなあと思っているので、調べながらコンパイラを書けばよさそう!という楽観的な考えをしている。

  • #23 コード書く量の可視化と公開。generated なコードも含まれるけど、それは含めて良いことにする。self.uta8a.net で公開したい。

    自分のメトリクスを公開してプレッシャーを与えたいという気持ち

  • #24 自宅 git サーバ周りの環境の update self.に export して自動ビルドまで行きたい。

    一家に一台サーバの時代が来ると思っているので、それに向けた準備をしたい。

  • #25 ACM に入り、jiccho さんのコンパイラ論文紹介記事を読む。

    Jiccho さんのサーベイ記事が非常によい指針になりそうなので、ACM 契約して論文を読みたい。

  • #26 ACM に入り、オライリー日本語を読む

    オライリー日本語が入ったらしいので確かめたい。

  • #27 自作キーボードを組み立てる(ファーム書き込み調べる)

    片手キーボードではんだごての練習から。

  • #28 iPad Air 2020 第 4 世代を買う。スタイラスペンを買う。

    お絵描きを今はペンタブでやっているので、iPad ほしいな〜と。物欲です。

  • #29 iced を使って GUI software の素振りをする。

    GUI のアーキテクチャ(Elm architecture を他で使う)に興味があります。XML を使うようなアプローチよりもっといい GUI の扱い方があってもいいんではと思っている。

  • #30 アニメをたくさん観る。

    d アニメで 2020/12/31 現在まで 675 話観たので 2021 年は 300 話ちょい観て 1000 の大台に乗りたい。

  • #31 講師としての素振りをしたいので、ハンズオンを発表できる場を立ち上げる。seccamp 風のなにかをしたい。

    これは suburi-dev やサークルでできそう。camp をしてハンズオンをするやつやりたいので、まずはハンズオンできるようになるくらいに理解度を深く自分に要求していきたい。

  • #32 discord で精進を記録する。低レイヤ精進は特に gitlab wiki で管理する。リードタイムを意識する。

    進捗の記録をしよう。これはやりきることとリンクしています。

  • #33 プログラム意味論の基礎を読み切る

    TaPL, CoPL の前段階として

  • #34 uta8a/uta8a(GitHub)に svg アニメーションつける

    GitHub の README で遊べるみたいなので、遊びましょう。

  • #35 rs-web-starter で terraform をやる。

    rs-web-starter(対ハッカソン用の Rust template)はもし完成させるなら terraform 含めて完成させたい。

  • #36 自作 30 日 OS 本を読み切る

    前は半分くらいであきらめたので、手を動かして読み切りたいです。

  • #37 Raspberry pi OS 資料を読み切る

    こちらの資料をやる。

  • #38 blog-os を読み切る

    こちらの資料をやる。

  • #39 craftinginterpreter を読み切る

    こちらの資料を途中までやっているのでやり切る。

  • #40 Rust から wasm で mini-react を実装する。yew は使わない。

    yewを触っていてどうもテスト周りがまだ不十分なこと、結局 wasm-bindgen などで js を叩くしかない感じがすることから、自分で mini-react を作れないだろうか?という気持ちが芽生えた。preact の再実装などの例もあるしチャレンジしてみたい。

  • #41 Verda(LINE private cloud)について、同時に Cybozu や CyberAgent の private cloud も調べる

    IT4 社合同 エンジニア新卒採用説明会でプライベートクラウドが気になったので調べてみる。

  • #42 企業ブログを読む

    企業ブログ読めていないな。RSS で流すなど、いい感じにしたい。

  • #43 oak, DeClang といった LLVM Obfuscutor について調べる。言語処理系とセキュリティ。

    このへん気になるけど知識がないから調べたい。

  • #44 プロダクトを作る。kusuwada さんの qiita 記事に沿ってやってみる。

    この記事に沿ってサービスを立ててみたい。仮説検証などの部分も体験しておきたい。

  • #45 HTTF2021 復習 2-opt

    マラソンを Rust でやってちょっぴり改善できたのが嬉しかったので、復習をしたい。焼きなましなど理解したいな。

  • #46 TOEIC に向けて英語勉強

    リスニングの機会を増やし、英語の文章の写経をしてタイピング速度を上げたい。

  • #47 101/assume-role が古いので書き直したい。

    assume-roleがメンテされてない気がしたので書き直してみたい。これくらいなら Rust でやるよい題材になりそう。

  • #48 CS 6120 Compiler の講義。動画もあるようだし年内に手をつけたい。(翌年になって内容なくなるかもしれないので)

    Advanced Compilersという講義でビデオもついているので、早めに手をつけたい。

  • #49 運動する。散歩と筋トレ(効果的、体を傷めない方法を調べる)

    健康に過ごすことは達成できてきたので、健康のベースラインを上げて、体力値を上げたい。

  • #50 効率化 分割キーボードを使う。キーキャップを blank にしてタイピング矯正をする。

    テキスト編集の効率化について考えていて、分割キーボードがよいという結論になった。まだ使いこなせてないので X240 で練習して Ubuntu デスクトップの方に導入していきたい。

  • #51 typing を暇なときにやるのを習慣づける。

    友人が暇な時寿司打やっているのを見て真似したくなった。

  • #52 カメラを売る(Nikon D5100, Nikon Lens)

    価値が下がっているのでもう二束三文だけどスペースとるので売りたい。

  • #53 TEE について調べる(ComSys の復習)

    TEE、何者か分からなかったので調べたい。

  • #54 raspberry pi OS のために raspberry pi 買う。できればおうち k8s に再利用したいので、どの世代のどのスペックを買うか要検討

    物欲

  • #55 CTF 作問 つまらないものも作ってみたら案外いろいろ調べるので、作り切ることを大事にする。ただ出題するのはつまらないのはよくない(初心者向けならつまらなくても教育的ならよいと思うが)

    CTF の作問を頑張る。つまらなくても作るとなるといろいろ調べて勉強になるので、面白いものを作ろうとせずにいい性質と感じたら形にするまでの動作が大切だと思った。

  • #56 Blog OGP 自動生成を GitHub Actions で行う

    OGP ほしい。でも今のままでもいいかもしれない。

  • #57 Podman について調べる

    k8s 同様、このあたりの用語何も知らないので 2021 年は基礎的なことを理解したい。

  • #58 Crypto Nigel Smart 本を読み切る

    Nigel Smart の書いた基礎的な暗号の教科書を読み切る。今年 6 月頃ずっと集中してやっていたので続きから。格子もこの中に軽くあったのでそこで勉強する。問題はこのへんが CVP 回りを扱っていて参考になりそう。

  • #59 リンカローダ実践開発テク本読み切る

    リンカローダ本、何回か読んでいるけど理解できてないので今度は納得するまで時間かける。

  • #60 terraform pdf 読み切る

    クラウド破産回避本も読みたい。

  • #61 github などに公開されている CTF の問題、セットごとにすべて解き切ってブログに書く(まずは ctf4b)

    まず ctf4b から。最近ソースコード公開してくれる CTF 増えてきて嬉しい。

  • #62 CSS Painting API を調べる

    Houdini とかどうなったんだろう?という疑問

  • #63 webGL をやる

    VJ とかやりたい。

  • #64 Ruby で作る Ruby 読み切る

    内容は軽いらしいけどちゃんと手を動かして読みたい。

  • #65 TaPL 読み切る

    これは厳しいけど、プログラミング言語の基礎概念 →CoPL→TaPL の順に攻めたい。

  • #66 京大の関数型について学ぶやつ IoPL やる

    これをやる

  • #67 Nand2Tetris をする

    bokuweb さんのツイートでこれだこれとなったので、ぼくのかんがえたさいきょうの Nand2Tetris(FPGA 上に実装した CPU 上に載せた OS、言語処理系、ネットワークプロトコルスタック、ブラウザ)を目指す。

  • #68 golang で ChatOps ソフトウェア作る

    ChatOps がシュッとできるようなプロダクトを go で書きたい。

  • #69 Fargate 自動デプロイ機構を terraform, CI 化する

    Fargate+CFn はやったことあるので、uta8a/gopingを改良したい。

  • #70 full stack reverse engineer の動画にあることを実践する

    もっと低レイヤに強くなりたい。この動画を何度も見て憧れを募らせているので今年は少し踏み出したい。

  • #71 Slack, discord からデータ Export して閲覧検索する手段を整える

    検索手段が特に欲しい。

  • #72 情熱を持ってできることを探す

    ハードウェアとソフトウェアの関わる技術的に困難な挑戦が最終的に楽しそうだと感じるので、自動運転などを調べてみる。

  • #73 インターンに行く、就活を自分の心の健康を守って進める

    インターンどこに行くか、会社の業績など事前に調べて転職時も使えるような知識を頭に入れておきたい。お金や社会は大事。

終わりに

  • これ 1 年じゃ足りない気がする!