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