地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

2025-01-01から1年間の記事一覧

ひとりアドカレちょっと飽きてきた話

この記事は「渡部 Advent Calendar 2025」の17日目の記事です。 ちょっと飽きてきました。いや、ちょっとじゃないかもしれないです。 ブログを書くことって自己表現の一つだし、飽きることなんてないんじゃないかと思っていました。でも、どうやら普通に飽き…

【Go】JSON型カラムとGoでの実装戦略

この記事は「渡部 Advent Calendar 2025」の16日目の記事です。 ある日、次のようなコードを見かけました // フロントエンドから送られてきたJSONボディ // ユーザー設定のような、不定形データ var data map[string]interface{} if err := json.NewDecoder(…

【C】do { ... } while(0);マクロ

この記事は「渡部 Advent Calendar 2025」の15日目の記事です。 C のコードを読んでいると、こんなマクロに遭遇することがあります。 #define FOO(x) do { \ bar(x); \ baz(x); \ } while (0) 「えっ、while(0) って絶対 1 回で終わるじゃん。なにこれ?」と…

【SRE】ネットワークプロトコルと障害耐性

この記事は「渡部 Advent Calendar 2025」の14日目の記事です。 システムの耐障害性を考えるとき、真っ先に思い浮かぶのは冗長化やオートスケール、リトライ、サーキットブレーカーかもしれません。 しかし、それらの土台には必ずネットワークプロトコルがあ…

【ポエム】読書のモチベーションが減ってきている

この記事は「渡部 Advent Calendar 2025」の13日目の記事です。 2025年目標・英語の勉強を習慣化する・執筆やり切る・健康診断でA判定 https://t.co/0JJ35BaVYR— RyuichiWatanabe@gurasan (@ryuichi_1208) 2024年12月31日 今年もたくさん本を読んだ。本を読…

周りからどう見られるかより大切なこと

この記事は「渡部 Advent Calendar 2025」の12日目の記事です。 公開初日あたりにズートピア2を見てきました。前作もめちゃめちゃ好きでブルーレイ買って何回も見返しているのですが今作もとても良かったです。動物を使って植民地問題やら人種問題という重め…

【Python】ブロッキングIOが発生しているかを見れるツールを書いた

この記事は「渡部 Advent Calendar 2025」の11日目の記事です。 IOの宛先IP:PortとSocketのフラグを出すやつを書いた。https://t.co/PzKsos2tOW— RyuichiWatanabe@gurasan (@ryuichi_1208) 2025年9月7日 github.com ブロッキング I/O とは、I/O 操作が完了す…

【Python】3.14のフリースレッディングって?

この記事は「渡部 Advent Calendar 2025」の10日目の記事です。 Python を使っていると、スレッドを使った並列処理をするときに必ず目にするのが Global Interpreter Lock(GIL) の存在です。GIL のせいで「CPU バウンドな処理を複数スレッドで並列化しても…

【Python】例外のオーバーヘッド

この記事は「渡部 Advent Calendar 2025」の9日目の記事です。 概要 Python における 例外処理 は非常に便利で強力なツールですが、効率的な利用が求められます。特に、性能が重要なアプリケーションにおいて、例外がパフォーマンスに与える影響は無視できま…

【Python】io_uringの対応状況を調べる

この記事は「渡部 Advent Calendar 2025」の8日目の記事です。 bugs.python.org io_uringって? Linux カーネルが提供する 超高速・低オーバーヘッドな非同期 I/O インターフェイス です。2019 年に Linux 5.1 の一部として導入され、従来の epoll、aio、rea…

【Linux】pthreadのTLSのオーバーヘッド

この記事は「渡部 Advent Calendar 2025」の7日目の記事です。 ja.wikipedia.org pthread の TLS(Thread-Local Storage) を扱う API(pthread_key_create, pthread_setspecific, pthread_getspecific)が “重い” と言われる理由は、実装上の構造・呼び出しコ…

【障害対応】オレオレインシデントbotツールを書いた

この記事は「渡部 Advent Calendar 2025」の6日目の記事です。 github.com 障害対応の記事を書いたり書籍を書いていたらbotについて聞かれることが多かったのでサンプルとして書いてみたやつ。現在社内で作られたものとは別のものですが概ねこんな感じでやっ…

【Linux】access(2)はなぜ使うべきではないのか

この記事は「渡部 Advent Calendar 2025」の5日目の記事です。 nxmnpg.lemoda.net ファイルシステムに関わるプログラムを書いていると、access() システムコールを見かける機会は意外と多いと思います。しかし、この access() は “知っておくと便利” という…

【Python】スレッドの並列性とGIL

この記事は「渡部 Advent Calendar 2025」の4日目の記事です。 ざっくりいうとCPU の「コア数」を使って、複数のスレッドが同時に物理的に実行されている状態。 「並列(parallel)」=物理的に同時 「並行(concurrent)」=論理的に同時(実際は切り替え)…

【ポエム】対話は難しい

この記事は「渡部 Advent Calendar 2025」の3日目の記事です。 私は対話が苦手だ。みたいな話ではなく対話って難しい営みだよなと思った話です。難しいというか面白いなと思ったポイントを書いてみます。 アドカレ2日続けてポエムかよって思いもあるが溜まっ…

【ポエム】not for meなものとの向き合い

この記事は「渡部 Advent Calendar 2025」の2日目の記事です。 ITエンジニアとして10年目に差しかかろうとしている。これまで分野がバラバラというわけではなく、システムプログラミングやインフラ、SREといった領域を中心に経験を積んできた。どれかひとつ…

ひとりアドベントカレンダーをやる

この記事は「渡部 Advent Calendar 2025」の1日目の記事です。 概要 やります。https://t.co/MHBzH1RNXB— RyuichiWatanabe@gurasan (@ryuichi_1208) 2025年11月29日 ひとりアドベントカレンダーをやってみようと思います。2017年くらいからアドベントカレン…

SRE Lounge#19をやった

やりました!私は運営と会場スポンサーとパネルディスカッションをやりました。会場周りは何もわからずでしたが同僚の皆さんに助けてもらいながらなんとかなりました(いなかったらどうなっていんだと考えるとゾッとします。本当にありがとうございました☺️) …

変わらないことは緩やかな死

散歩をしていたら、あたり一面に落ち葉が積もっていた。ついこの前まであんなに鮮やかだった紅葉も、いまは地面を覆う茶色の層に変わっている。光に透けて輝いていた葉も、風に吹かれて乾いた音を立てるばかりだ。季節が確かに進んだのだと、足元の感触で知…

雑談は難しい

私は雑談が苦手だ。オフィスにいても、自然発生する雑談に乗っかっていく程度で、得意な方ではなかった。リモートになってからは、その苦手意識がさらに強まっている気がする。なぜ自分は雑談が難しいと感じるのか、少し考えてみた。 リアルタイム性が求めら…

転職して1年が経った

早くも1年が経った。変化とかに絞ってつらつらと文章を書いてみようと思う。 音声対話システムのEmbedded SREになった 大きな変化の一つ。直近はo11yの実装をやっていっている。音声対話システムはとても面白くて難しくて大変だが周りにすごいメンバーがたく…

【SRE】プロセスがレイテンシーになるとき

rootly.com 「プロセスがレイテンシーになるとき」とは、インシデント対応のプロセスや手順が過剰に詳細または複雑すぎると、迅速な対応が遅れ、問題解決に時間がかかる状況を指します。過度に規定された手順や承認プロセス、情報整理の遅延が対応を停滞させ…

【SRE】同じインシデントは二度と起こらないが、パターンは繰り返す

surfingcomplexity.blog 記事は、ヘラクレイトスの言葉「同じ川に二度と足を踏み入れることはない」を引用し、インシデントが再発する際に、同じ状況や原因が再現されるわけではないことを指摘している。たとえば、データベースの障害が再発した場合、前回と…

【Python】asyncio.Semaphore

asyncio.Semaphore は、非同期プログラムでのリソースの制限を管理するために使用される同期プリミティブです。セマフォは、リソースの同時アクセス数を制限するために用いられます。asyncio.Semaphore は非同期タスクがリソースを安全に共有できるようにす…

【SRE】堅牢性と回復力

uptimelabs.io ユーカリの木の回復力は、風や環境のストレスに柔軟に適応し、成長し続ける能力を指します。記事では、ユーカリの木を例にとって、回復力の概念を説明しています。 具体的には、ユーカリの木が風に耐えるために支柱を立てるのではなく、風によ…

あってよかった問題

「あってよかった問題」は、ある機能や仕組みが“ちゃんと働いているほど存在感が消える”ため、価値が過小評価される現象のことです。SRE文脈だと、信頼性が高いほど障害が目立たず、運用・予防・改善の努力が見えなくなるパラドックスを指します(= “Invisib…

【Python】音声ファイルを仮想デバイスに流すツールを書いた

github.com 用途は限られているがあらかじめ録音したデータを流すことができるようになるツール。とりあえず音声ファイルのみで使えるがこれを応用することでAIでのシステムに対してAIで会話をさせることが可能となる。 将来的な展望としてはこの辺 入力イン…

【Pydantic AI】LLMのフォールバック処理を実装する

from pydantic_ai import Agent, ModelHTTPError from pydantic_ai.models.fallback import FallbackModel from pydantic_ai.models.google import GoogleModel from pydantic_ai.models.anthropic import AnthropicModel gemini_model = GoogleModel('gemin…

【旅行記】沖縄

4泊5日で去年に引き続き行ってきた。 ryuichi1208.hateblo.jp 泊まったのはロワジールホテル那覇に2泊とヒルトン瀬底に2泊 奥は土砂降りかな? pic.twitter.com/X0fZ74m5V2— RyuichiWatanabe@gurasan (@ryuichi_1208) 2025年8月29日 行ったところ 首里城 瀬…

音声ファイル入門

概要 私たちが普段から扱っている「音声ファイル」。音楽、ポッドキャスト、会議録音、そして音声認識の前処理など、さまざまな場面で利用されています。 しかし「MP3とWAVって何が違うの?」「サンプリングレートって何?」と聞かれると、意外と答えに困る…