2025-01-01から1年間の記事一覧
C言語でこんなコードを書くとどうなるでしょうか? #define NUM_THREADS 5 #define TARGET_IP "127.0.0.1" #define TARGET_PORT 8080 void *thread_func(void *arg) { int sockfd; struct sockaddr_in serv_addr; sockfd = socket(AF_INET, SOCK_STREAM, 0);…
概要 PostgreSQLのインデックスは非クラスタ化インデックスです。非クラスタ化インデックスはでは、インデックス自体はテーブルのデータと直接的に並んで格納されるわけではなく、インデックスのエントリにはテーブルの行への参照(ポインタ)が格納されます…
Pythonのプロパティは、クラスの属性に対して、特定のロジックを組み込んでアクセスや変更を制御するための機能です。通常の属性と異なり、プロパティを使うと、アクセスや代入時に関数を通じて処理を行えるようになります。 プロパティは、@property デコレ…
SSTable(Sorted String Table)は、LSM-Treeでデータを永続的に保存するためのファイルフォーマットです。SSTableは、ディスクに効率的にデータを格納するためにソートされたキーとバリューのペアを格納します。主に以下の構造を持っています。 SSTableの基…
planetscale.com MySQLでのオンラインスキーママイグレーションは、変更内容や環境によって適切な手法を選択することが重要です。 INSTANTは、適用可能な変更に対して非常に高速で効率的ですが、リバートが必要な場合や変更内容が複雑な場合には注意が必要で…
概要 AWS SigV4 (Signature Version 4) は、AWSのAPIリクエストを認証するための署名方法です。この署名プロトコルは、リクエストが正当なものであり、AWSアカウントの認証情報を使って送信されたことを証明するために使用されます。SigV4は、AWSのサービス…
import redis r = redis.Redis(host='localhost', port=6379, db=0) r.set('mykey', 'Hello, Redis!') value = r.get('mykey') print(value.decode('utf-8')) # 出力: Hello, Redis! 何もしないとこんな感じのコードになる。exponential_backoff_retryを仕込…
techcommunity.microsoft.com Azure SQLの接続ポリシーをデフォルトで作るとそういった設定になる。TCP KeepAliveだけでは接続を維持できないのでコネクションをプールするならなんかしらのクエリを実行してあげる必要がある。または接続ポリシーをリダイレ…
docs.python.org 今日のハマり。15分くらい溶かした。 >>> t = (10) >>> type(t) <class 'int'> >>> t = (10,) >>> type(t) <class 'tuple'></class></class>
これでcsvを変換する import pandas as pd import pyarrow as pa import pyarrow.parquet as pq df = pd.read_csv('test.csv') table = pa.Table.from_pandas(df) pq.write_table(table, 'test.parquet') パースする # parquetファイルのパースを行う import…
どのPythonのコードの行で clone(2) が呼ばれたかをbpftraceで追えるんか...?— RyuichiWatanabe@gurasan (@ryuichi_1208) 2025年5月13日 というのをやりたかった過程で調べたメモ。これはちょっと便利そう。 bpftrace -e ' tracepoint:syscalls:sys_enter_cl…
概要 Python × 非同期IOなアプリケーションで色々あったので調査メモ 本編 非同期IO環境で同期IOを発行する場合、asyncio.to_thread または loop.run_in_executor を使用することで、イベントループをブロックせずに同期処理を実行できます。asyncio.to_thre…
docs.docker.com docker buildx build コマンドの --cache-to オプションは、ビルドキャッシュを保存する方法を指定します。 --cache-to: ビルドキャッシュを保存する場所を指定します。キャッシュはビルドプロセスの高速化に役立ちます。 キャッシュの保存…
httpリクエストの同時実行数制御しつつ色々やりたい時に便利 asyncio.create_task()+semaphore.acquire()/release() で明示的に並列数を制御 async_timeout を使い 5 秒でタイムアウト 例外が起きても最後まで走らせ、結果を URL ごとに保持 import asyncio…
なんだろう。今はとても楽しいし周りにも優秀なメンバーも多くて日々楽しい。それだけでもだいぶ理想的な職場な気がする。何かあるとしたら割り込みが増えてきていて今後も増え続けていくのが見えていてこのままだとまずいなみたいな感覚はある。 みたいなこ…
docs.aws.amazon.com 楽しい。データベースのo11yって割と職人技的に色々テクニックありきでトラブルシュートが進みがちでOSのプロセスの状態とかスロークエリとかそういったものの組み合わせが必要だったりした。その中で登場したCloudWatch Database Insig…
PythonでQueueを実装するには、標準ライブラリのqueueモジュールを使うのが一般的です。queue.Queueはスレッドセーフなキューの実装です。 以下は、基本的な使い方の例です: import queue # Queueの作成(デフォルトではFIFO) q = queue.Queue() # アイテ…
deepwiki.com リポジトリ単位でWikiをソースから生成してくれるサービスでDevinの会社がやっている。 これまでのコードリーディンがは cloneしてctagsして読む cloneして不明なコードをChatGPTとかに貼って聞く cloneして不明なコードをCopilotChatとかで聞…
nginx.org nginx-1.28.0 stable version has been released, incorporating new features and bug fixes from the 1.27.x mainline branch — including memory usage and CPU usage optimizations in complex SSL configurations, automatic re‑resolution o…
ECS Service Connectは、AWSのECS環境でサービス間通信を簡単かつセキュアに管理するための機能。 サービス間の通信の簡略化 ECS Service Connectは、ECSクラスター内のコンテナ間での通信を簡素化します。これにより、サービスディスカバリーやロードバラン…
愛媛県松山市で開催された RubyKaigi 2025 に参加してきました。その参加レポートです。 はじめてのRubyKaigi インフラやSRE、Go関連のイベントにはこれまで何度か参加してきましたが、言語そのものにフォーカスしたカンファレンスは初めてでした。「自分に…
github.com 時代はSIPです。ハマっています。とりあえずフローとかを把握するためにとりあえず書いてみました。 SIPサーバーは簡易的な実装であり、実際のVoIP通話を確立するためのシグナリングに使用できますが、実際の音声パケットの転送(RTP)は含まれて…
Nginxでリクエストの処理開始時刻をログに出力するためには、ngx_luaモジュールを使用して、リクエストの処理開始時刻を取得し、ログフォーマットに追加することができます。以下はその実現方法の例です。 http { lua_package_path '/path/to/lua/?.lua;;'; …
※Mackerelアンバサダープログラムに参加しています github.com MCPが話題なので何かやれないかと思っていたので書いてみた。Cursorとかからいい感じにMackerelのホストを取ってきたり退役させたりと言うのができます。お試しで書き始めたが結構楽しいですね…
github.com 最近はVoIPをやってます。TCPだけやってきた(厳密にはDNSとかあたりで学んでいるので再入門)ので正直わからんことが多いですが色々調べながら勉強してます。TCPに比べて覚えることはあまりないとはいえリアルタイムでのやりとりとかが入ってくる…
-i'' -i '' Ubuntu 正常 '' がsedコマンドに OS X '' が無視される 正常 今日だけで3回くらいミスったw
merge(map1, map2, ...) 2つ以上のmapを結合したmapを返します。keyが重複している場合、対応する値は順に上書きされていきます。 merged_map_1 = "${merge(map("key_1", "val_1"), map("key_2", "val_2"))}" # merged_map_1 = {"key_1": "val_1", "key_2": …
sre-lounge.connpass.com やってきました。2年連続でやれて良かったです。今年も会場をお貸しくださった楽天さんには大変感謝です SRE NEXT本編まで走り続けます 油揚げに醤油かけるのがマイノリティな飲み会が仙台であって驚いた。— RyuichiWatanabe@gurasa…
PostgreSQLにおけるHOTの解説 PostgreSQLにはHOT(Heap Only Tuples)という機能があります。これは特定の条件下でUPDATEやDELETE処理のパフォーマンスを改善する仕組みです。本記事では、このHOTについて解説します。 PostgreSQLのUPDATE/DELETEの基本動作…
/** * Slack APIにPOSTする * @param {string} apiMethod - 使用するAPI * @param {Object} payload - tokenやパラメータ * @returns {GoogleAppsScript.URL_Fetch.HTTPResponse} */ function postSlackApi(apiMethod, payload) { const PARAMS = { 'method'…