2021-11
2021-11-29
Argo CDが欲しい気持ちが日々高まっている
https://gyazo.com/f1fe885211b730b1cbe2af72684d92d7
よく考えるとkubectl apply --purge -f -という手もある(そういうことではないが)
どう考えてもkubectl + kustomizeではパワーが足りなかったという話
ききかんりー
https://gyazo.com/a488371cc48cb89acd096a3a2a57bda4
生えた
2021-11-28
実はArgo CDのCustom Manifest Generator(だっけ?)を使ってコンテナビルドする(or ビルド結果を待つ)PreSyncタスクを生成すればGitOpsなPaaSを実現できる気がしてきた
Argo Workflow使えば?って言われちゃった,そんな〜〜〜
本質としては変わらないわけだけど,CI/CDフローを組むなら専用のやつを使えというのは,そう
2021-11-26
kustomize,割といいじゃんと思って使うんだけど,「下位のマニフェストをマージして上位のマニフェストを生成する」というメンタルモデルだと不可能なことが多いな
入力のオブジェクト→出力のマニフェストという形式ではなく,どこまで行っても「そこにあるマニフェストをあるルールによって変更する」というツールでしかない
歴史的事情ではあるとは思うけど
NamespaceTransformerっていう,マニフェストのnamespaceを変更する機能が存在するんだが,この制約のせいで変更できないものがそれなりにある
RoleBindingのsubject
Serviceのドメインのグローバル表現svc-name.namespace.svc.cluster.local
kustomizeの能力不足のせいでこんなことに
bases(デプロイされる環境を規定しない設定を書く部分です)でHelmを展開せずにvaluesだけを記述してoverlays(basesにデプロイされる環境の情報を埋め込む部分です)で展開
亜種として,overlaysでの気合patch
basesにnamespaceの情報が混入することを許容して展開
異なるoverlayではpatchで頑張る
だからといってHelmがいいかっていうと,よくない
テンプレート芸をやりたいかって言うと,No
じゃあcdk8s?
別に任意コードを実行したいわけじゃないんですよ
停止性は保証されててほしい
20,000+行のmanifestをリファクタリングして分かったKustomizeの美しきアーキテクチャと拡張性 / Kustomize deep dive - Speaker Deck
naruhodo
うちだってCRD含めれば20000+行ありますよ!(ぇ
改めてソースコードを読んだところ,namespaceがdefaultになってるClusterRoleBinding/RoleBindingのsubjectは変更してくれるらしい
考えた結果,system componentsはnamespace固定でいけばいいやといった気持ちに
可変にするコストが高すぎる
2021-11-25
数時間に及ぶ苦闘の末OIDC認証環境でいい感じに動くKubernetes Dashboardを建てることに成功した
Argo CDによる継続的デリバリーのベストプラクティスとその実装 - Cybozu Inside Outで「シークレットの完全な自動管理はしてません」って書いてあって,なんで???って思ったが悩みに悩んだ Kubernetes Secrets の管理方法、External Secrets を選んだ理由 | PLAID engineer blogを読んでなんとなく理解した
マルチクラスタでうまくやるのにいい方法がない
結局Cybozuでは公開即死みたいな情報を手動で管理し,それ以外のSecretはPrivate Repoの秘匿性に任せるといった感じになってるらしい
弊サークルのクラスタではsealed-secretsを使っているが,こういった分類にして即死情報をGitHubのSecretに載せて超特権Runnerでデプロイするといった手法を考えている
2021-11-24
Kubernetes Cluster APIってブートストラップクラスタは手元PCでのkindでいいんだ
普通にこれで建ててもよかったか
でもMAASのためにラズパイか何か必要だったから面倒だな,あれでいいや
mizdra(@mizdra)
Docker Desktop for Mac の experimental build で I/O パフォーマンスを劇的に改善する実験的機能が試せるようになったとのこと。最高そう!
NowBrowsing: Docker Desktop Improve Mac File system performance · Issue #7 · docker/roadmap: https://t.co/JMU8ojf8Sd
https://twitter.com/mizdra/status/1463006849284796421
virtiofs,なるほど
virtiofsについて - Qiita
RedHatでさらになるほどになった
osxfsやgrpcfuseはネットワークレイヤを使ってるから遅いと
さらにゲスト側とホスト側にそれぞれデーモンがある
死ぬほど雑なメモですが参考までに /tosuke-diary/2020-12-15#5fda50061565b30000d33211
virtioを使ってホスト側のデーモンがゲストカーネルから直接(!)FUSEのリクエストを受け取る
virtioの速度はvirtio-netやボリュームマウントの性能からも信頼できるしな
オーバーヘッドが極小
こういう改善かっこいいぜ
それはそうとしてこれは概ねホストもゲストもLinuxであることを想定してると思うんだけど,ホストがmacOSの場合色々やらないといけないんじゃないか
QEMUの謎パワーでvirtioが使えるらしい?
そもそもホストとゲストのカーネル空間に共有メモリを用意しておしゃべりするのがvirtioだから,共有メモリを作れさえすれば何とかなるという気はするけど,ホスト側のドライバとか自前で実装してんの???
なんかそうらしい
virgl(virtio-gpu-gl)すらある……
あった!https://developer.apple.com/documentation/virtualization/vzvirtiofilesystemdevice
Kubernetes完全ガイド,読了……
完全理解してません
2021-11-22
勢い,気合,それから……
2021-11-20
えー勢いがありすぎる,ありすぎるぜ
2021-11-19
reselectでcreateSelectorに引数を持つSelectorを渡してはいけない,割と読まれてるっぽいんだけどどっかで参照されてたりするんかな
2021-11-18
AquesTalkを雑に使いたいなと思って色々調べた
SofTalkや棒読みちゃんを動かす
両者ともwineで動いたり動かなかったりする。Windows関係はインストーラとかがあってコンテナに封じにくいのでつらい
そもそもWindowsの上で動かしてうまいことやる手はある
両者ともプログラムから操作する方法を提供してはいる
直に叩く
AquesTalkは音声合成と漢字カナ変換(AqKanji2Kana)が分離されている
音声合成については、過去CCライセンスで公開されていたバージョンのAquesTalk2ならば問題なく無料で使える
「ゆっくり」の声はAquesTalk1なのでけっこう違う
ノスタルジーがたりない!
実はSofTalkのパッケージ内にWindows版のdllは存在している……
AqKanji2Kanaは無料だったことない
というか、存在がかなり後発っぽい
SofTalkが出た段階ではそんなものはなく、SofTalkは何かしらの頑張りで、棒読みちゃんはIMEの逆変換(かmecab)らしい
実は何もしないのが一番ゆっくりっぽいが、この頑張りの中身がゆっくり最後の謎として残されている……
https://gyazo.com/3792ae677aefea2ad32d2cd857e3a90b
隠れたタイトル回収を見つけた
2021-11-17
Property Based Testingとfuzzingの違いがわからなくて調べてた
gopterでステートフルなPBT - YAMAGUCHI::weblog
Property Based Testingを簡単に説明すると、テスト対象の関数に対して、入力値の条件とその関数が満たすべき性質(Property)を定義してあげて、入力時をマシンパワーに任せて自動生成しながら、テスト対象の関数の戻り値と性質を表す関数の戻り値を比較して、一致しない条件を探すという、高級なファジングです。
そうなんだ
17ステップの操作を行わないと再現しないバグを見つけるの,すごい
Property Based TestingってこうCoqとかで定理証明済みのアルゴリズムを再実装したときにバグがないのを検証するのとかに使えたりしないかな
先行研究ありそう
Facebookってちゃんと404ハンドリングしてるのかな
してました
https://gyazo.com/9fea5cae050b35f57926194731c8c183
ながくね?
2021-11-16
謎のノリで月ノ美兎は箱の中をみた
よかったですね息切れてたけど
ユーン🍆💉💉あと6日(@euxn23)
ワンマンライブはじめてやるってことは、その人がアイドルになる瞬間ってことなんですよ
https://twitter.com/euxn23/status/1460414149482016770
良
月ノ美兎の印象が完全にこれだったんだけど,そこまでは変わらなかった(最悪)
なをををををを🍚🐿skeb依頼募集中(@70_pocky)
創作2コマ漫画 その945
https://twitter.com/70_pocky/status/1460216008707227657
さすがにコイツよりは努力してるだろ
React Server Components w/ Next.js 現状
2021-11-15
ワンマン嫌すぎ,嫌と話題に
2021-11-13
人形の国読んだ
ウオン(最終巻はまだ出てないのでモゴモゴしてる)
2021-11-12
DockerでQEMUでwineや!と思ったが普通にやらせてることが重すぎて破綻した
あとでx86_64環境で試すか……
distrolessにarm64版が出てたっぽい
えらすぎ
実は太古の昔からあったのを勘違いしていただけらしい
なんとなくGKE Autopilotしらべた
vCPUの価格($0.0571/h)がe2シリーズ($0.028026/h)の倍
実はSpotも倍
e2-microじゃkubeletの消費リソースを無視できんでしょと思っていたが、こういうところに加算されているっぽい
ちなみにCloud Runは$0.0864/h(常時稼動の場合$0.0648/h)
高いデジ……
2021-11-10
/sno2wman/2021.11.09#618a17fc13a1580000c8299c
いや困ってる,困ってるんですが,最近macOSしか使ってなくて直すモチベがない……
久しぶりに困った2021-11-11
2021-11-09
macOSのWindowServerが2GBくらい食ってたので再起動した
こいつ絶対メモリリークしてるだろ
フロントエンドエンジニアのステップアップのための集合知
良……
業務まわりのあれこれ,ウーーン
2021-11-08
2021-11-07
Cloudflare WARPで自分のipアドレスが漏れることがある
ifconfig.coとか
Cloudflareから出るときにパケットの暗号化が解かれて送られているっぽい?
網内ならそのままそのサービスに向けてパケットが到達するのでipが見える
abenori/satysfi-class-jlreqのjlreq-length,すごい
多段階計算を使って文字列をパースして関数を生成する
length -> (string -> length option) -> lengthというシグネチャはまあどうなんだ……という気持ちにはなるが
ここまで来たらレコード取るようにしたほうがいいじゃないかという気はする
(必要があるのかはわからないが)remをサポートしたい場合documentに渡したconfigの値を使いたいし,vw/vhも同様
SATySFi製レポートを提出した
こいつ使えるぜ!
2021-11-06
/fsubal/useEffect の無限ループをいつの間にかしなくなった#618568bfaab3620000439d14
「ピタゴラスイッチ度」とかいう表現,かなり的確なんだけどじわじわ来るな
2021-11-05
2021-10#617b63291565b30000ba7334で「Cloudflare Workersは50msしかCPUが使えない」とか書いていたが,Cloudflare Workers Unboundを使うと30sまで伸びて従量課金になるらしい
割となんでもできるじゃないですか
MIS.W(所属してるサークル)の学祭ページのデプロイをやった
MIS.W 早稲田祭2021特設サイト
なんか若干重い
Cloudflare Pagesにデプロイされている
event.misw.jpの思い出話を書いておく
これは元々さくらのレンタルサーバーにデプロイされていた(†FTP†とかいうやつで上げていた)
さくらとかいうやつは証明書の発行にも金を取るので,ここはCloudflareのFlexibleモードを使ってTLS対応をやっていた
MISW/Portalに会員に対応するTwitter Cardを生成する機能を足したとき,画像の生成コストを嫌ってCloudflareを通してキャッシュしたい気持ちが発生した
該当機能: バーチャル会員証 by tosuke · Pull Request #380 · MISW/Portal · GitHub
ここで,PortalはMIS.WのKubernetesクラスタ上で動作していて,このクラスタ上では平文接続は弾かれるようになっていた
FlexibleモードのCloudflareは平文で接続しに行って死んでしまうので,Fullモードになった……がしかし,今度はTLSが必須なのでさくらのレンタルサーバーに置かれているevent.misw.jpが死んでしまう
ページモードで解決すればよかったらしい by /rinsuki/rinsuki.icon
その解決策としてさくらのレンタルサーバーからファイルが引き上げられ,Cloudflare Pagesに上げられる……と思いきや,当時はVercelにデプロイされていた
クラスタ側を変えず静的サイトであるこちらを変えたのはクソレガシーでFTPの体験に厳しい気持ちになってたのと静的サイトのほうが腕に覚えがあったから
VercelになったのはCLIで雑に上げられるからとかだった……はず
その後,「なんか面白そう」という理由だけでCloudflare Pages版が用意されて,テスト用ドメインで公開され続けてた
さて,例のVercel版はVercel Team(Free)という微妙なアカウントに対してメールが来ていた
キミはアーリーアダプダーだよありがたいねエンタープライズプラン安くするよみたいな話。うれしくない
そもそもユースケースとしてVercelを使い続ける気持ちがあるわけでもないので,早稲田祭サイトに合わせてCloudflare Pagesに移行することにした
Cloudflare Accessによるアクセス制御が使えるのもアツいポイント
2021-11-02
SATySFiガチャガチャり
CoPLの演習やりまくったのが役に立った回があってよかった
2021-11-01
Regular Expression Matching Can Be Simple And Fast を読んでる
direct-regexに思いを馳せてた
一般的な構文(egrepらしい)では選言|の結合順序は結合より強く,aaa|bbbは(aaa)|(bbb)と同じ文字列にマッチするらしい
|が作る暗黙的なブロックがある
direct-regexは正規表現文字列の上を進むわけで,おしまいになってしまう
次の|の位置がわからないと遷移を生成できない
どうやって効率的に経路を保持すればいいのか考えていたが,分岐には優先順位が存在するので,その優先順位を覚えておいて,経路がマージされるときに優先順位の高いものを選べばいいということに気付いた
バックトラックする実装は優先順位の順に試している
Goやgoogle/re2の実装がやっていることは結局DPなのではということを考えていた
まず,バックトラック実装をメモ化再帰でもって効率化することを考える
バックトラックの実装は正規表現に対応するNFAの状態iと今見ているマッチ対象文字列の位置jからマッチするかどうかを返す関数として実装できる
素直に実装すると$ \mathrm{a?}^n\mathrm a^nのような正規表現でa?が来る度に2つに分岐するのを繰り返して指数時間かかる。でも(i,j)をキーとしてメモ化すれば「分岐をまとめる」ことができるから計算量を減らすことができる
メモ化再帰は結局のところDP
テーブルサイズは正規表現の状態数を$ s,マッチ対象文字列の長さを$ nとすれば$ \Theta(sn)
このテーブルを埋めて(0,0)を求めるのが正規表現マッチング
ただしこれらの実装は探索を幅優先探索にすることで,テーブルのj列目からj+1列目を求めるようなことをして空間計算量を小さくしている
つまり LIS でも大活躍! DP の配列使いまわしテクニックを特集 - Qiita みたいな話なんじゃないか
#日報