あるcommunityで発表した雑LT.
最近作ったもの紹介Drumato
View Slide
雑談最近やっていること
Scrapboxになんでもない技術メモ
scrapboxは脳のL1 cacheに良さそう
Controller-runtimeCode reading & understanding
本題
最近趣味codingしてない
なまっているか心配
LTのためになんか作る
即席で作ったもの2つ紹介
おもちゃ1
tinetdみたいなのを作る所要時間: 2~3時間ぐらい
tinet,使わせてもらっています● よくわかっていなくても使える○ 適当にREADME読んだら使えました(便利!○ Examplesに要件を満たすものが落ちてれば新たに設定書くこともない● Scrap and Buildがサクサクできる -> 検証に最適!○ いちいちVM image落としてきて, confして, FRR installして...とやるのは大変○ Localで動いてすぐ消せる
以下のようなものを作ってみたくなった● なんとなく以下ができたら"楽しそう"○ 実行するとup - confを実行○ Signal投げたら勝手にdownする○ 設定追加したら自動で反映してくれる...?■ fileを監視するcodeを書いたことがないので,やってみたい○ testが断続的に動いてくれる● 結果的に本家tinetのほうが全然便利,だけど楽しかったのでよし
実装イメージ
Original behavior
tinetd behavior
作る
作り方● tinet資源は利用せず,1から作る○ 理由1: コードが小さくわかりやすかったので十分理解できた○ 理由2: 一方でtinetの多機能に全部追従するのは大変そう○ 結論: コードを読んで最低限の機能を移植すれば良さそう● fsnotifyとかsignalの使い方は勉強● あとは頑張って作る
結果● Goで400行くらいで出来た○ fsnotify/signal/tickerは使い方はかんたん● 設定とstateの差分でcommand execは意外と大変○ 同じnode nameはあるが中身は異なるかも -> reflect.DeepEqual()○ Nodeが減ってるかも -> map - mapにして差分はdownを実行すればできそう■ とりあえず無視
DEMO
tinetdから学んだこと● fsnotifyの仕組みはちゃんと知りたいな○ まずはinotifyとかから勉強することになるのかな● fsnotifyの用途はなんだろう○ "時々fileを開いて読む"で十分なことも多そうなイメージ○ Controller-runtimeはtls certificateの監視に使っている● tinetは便利● それよりnetworkの勉強自体をしなきゃ
おもちゃ2
eBPF disassembler
ありがとうございました