Diary

Diary

日々学んだことをアウトプットする場として初めてみました

2023-11-01から1ヶ月間の記事一覧

zsh: history から失敗したコマンドを削除する

課題 terminal 上のコマンドは実行履歴が残っており、それを shell の history と呼ぶのですが、そんな history は情報の山となってます。 自分は主に『過去のコマンドを history から呼び出し fzf で曖昧に検索する』みたいな用途で使っているのですが、そ…

k8s 内部でホスト名を指定するときのベストプラクティス

k8s

『Kubernetes と名前解決』という記事が非常に面白くためになったため、自分なりに実験したものもまとめさせていただきます。 [目次] まとめ DNS をみるための準備 環境 サービスを持つ minimum の k8s 構成を kind と helm で作成する サービス名で名前解決…

GitLab プロジェクトの go get で『The project you were looking for could not be found or you don't have permission to view it.』

まとめ GitLab の Go module には、リポジトリの終わりに .git をつける GitHub の Go module には .git をつけない

python を VSCode で使っていてコード定義へのジャンプが効かなかった

原因 pyenv で複数のバージョンを使っており, VSCode の解釈する python のバージョンとターミナル(実際に実行する部分)でのバージョンに差異があったことが原因。 解決方法 VSCode で python のプロジェクトを開いてる時、下のバーに python Interpreter …

どうしてもヌルバイトを使用したい

どうしてもヌルバイト (NUL) を出力・使用したいことがあったで、その時の出し方についてメモしておきます。 [目次] ヌルバイトとは ターミナルからの出力 どんな問題が? db: postgresql コマンドの結果が期待値とならない シェル設定によってはセパレータ…

context ネイティブ世代の semaphore を使いこなし効率的な流量制御を

Go

典型的な『worker pool』パターンを実装するのに便利な semaphore の紹介です。 チャネルを使った流量制御のパターンと比べ、デフォルトで ctx のキャンセルに対応していることを実動で確認します。 [目次] channel パターン sync/semaphore パターン おまけ…

システムコールを元に HTTP サーバーの解像度を上げる (with Go 実装)

HTTP サーバーってどんな仕組みで動いてるのかずっと気になっていたのですが、 『ふつうのLinuxプログラミング』に説明 + c での実装があったため、その理解を元に適当に Go でやってみました。 ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるg…

mac と Linux で特定のポートを使用しているプロセスを調べる

lsof を使うのが簡単で良さそうです。 lsof -i:8080 $ lsof -i:8080 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME main 77228 kokoichi 4u IPv6 0x50df81af803226e5 0t0 TCP *:http-alt (LISTEN) # その後該当プロセスを削除する場合。 # 77228 は上…

Jetpack Compose による Wear OS 開発入門

最近 pixel watch を買ってみたので WearOS を少し触ってみています。 今更ですが『Jetpack Compose で始める WearOS 開発入門』という内容で、Android 開発との違いに焦点を当てて記事を書いてみます。 (Jetpack Compose での wear os 開発の基礎となる an…

パイプの中身をシステムコールレベルで理解・実装する

パイプの中身をシステムコールレベルで理解・実装する 『ふつうのLinuxプログラミング』を読んで勉強させてもらったメモになります。 コードは載ってなかったため自分で実装してみました。 ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べる…