Claude Codeのログとメトリクスをさくらのクラウド「モニタリングスイート」に送る

Claude Codeには OpenTelemetry (OTel) のサポートがある。 これを使ってログやメトリクスを収集し、さくらのクラウドの「モニタリングスイート」に送信する試みをした。 Claude CodeのOpenTelemetry設定 otel-collectorで受ける otel-collectorからモニタリ…

Claude CodeをWebブラウザ上で操作するツールをClaude Codeで作っている

経緯 ターミナルでの日本語入力問題 技術仕様 backend claude CLIによるstreaming出力 Claude Code SDK session_idによる会話の継続 permission制御 Denoについて frontend Claude Codeによる実装 GitHub上でOSSとしての開発進行 ワークフローの整備 記録と…

macOSのbashでエスケープシーケンスをechoするときは気をつける

普段使っているzshで echo '\e[0;31;47m CAUTION!! \e[0m' みたいに書くと、色付き表示される。 これでヨシッ! と思ってうっかり #!/bin/bash echo '\e[0;31;47m CAUTION!! \e[0m' とshell scriptを書いてしまうと、これは意図した表示にならない。 macOSのbash…

AI Agentで動くSNS人格に、ベクトル検索MCPで外部知識を持たせる

Bluesky MCP serverを自作し、SNS上に架空の友達を作る - すぎゃーんメモ の記事の続き。 「今後の課題」として挙げていた: 一番どうにかしたいのは、知識について。 プロフィールに書いたことしかインプットされないのでやはり偏りがあるし専門知識が足りな…

Bluesky MCP serverを自作し、SNS上に架空の友達を作る

内容・目的 注意書き 使用したもの OpenAI Agents SDK (AI Agent) RMCP (MCP server) 人格の作成 1人目 2人目 動作とプロンプト アカウント作成 投稿 返信 その他 作成されたもの MCP serverを自作することについて Rustでビルドし配布できる LLMは使いこな…

Rust製AT Protocolライブラリ「ATrium」をorganizationに移管した

作りはじめた記事を書いてから約2年が経った。 memo.sugyan.com 開発を続けてきたRustライブラリ ATrium を、先日ついにorganizationに移管した。 github.com 経緯 昨夏からAT Protocolの OAuth に対応する実装を進めていたものの、プライベートの事情なども…

apprun-cliを使ってさくらクラウドAppRun β版をActionsで自動deployする

触ってみたという記事がいくつか出ていて、自分も気になったので触ってみました。 さくらのクラウド AppRun β版 とは 関連記事 作ったもの アプリケーション作成 Terraformで作成 apprun-cli でデプロイ Actionsで自動デプロイ バージョン情報を含める一工夫…

自宅環境監視への入門

どうも自分は監視についての知識や技術が乏しい、ということに気付いた。 そもそも何かを監視するという習慣を持っていないのがまず良くないと反省し、まずは自宅の環境を監視する練習から始めてみることにした。 監視とは役割ではなくスキルであり、チーム…

開発環境現状確認 2025

blog.handlena.me 「あの頃はこれ使っていたのか〜」と振り返れるのは良さそう。ということで自分もスナップショットとして残しておこう。2025年1月現在の状況。 エディタ code.visualstudio.com 自分のdotfilesの履歴を見る限り、2016末くらいから使い始め…

Advent of Code 2024 を完走した

毎年12月に開催されている Advent of Code に、2019年から参加している。 過去記事: Advent of Code 2019 に挑戦している - すぎゃーんメモ Advent of Code 2020 完答した - すぎゃーんメモ Advent of Code 2022 を完走した - すぎゃーんメモ Advent of Code…

ブラウザで動く3D螺旋葉序シミュレータ

先日、Eテレ「ミミクリーズ」で、「あのもよう」という回が放送されていたのを子と一緒に観た。 www.nhk.jp その中で、自然界に出現する不思議な模様として黄金比・黄金角によって作られる模様を紹介していた。 実際に木に模した棒に等間隔で等角度ずつずら…

「だんご屋のひまつぶし」完全解析

「だんご屋のひまつぶし」とは 最長手順の問題は…? 組み合わせ、グラフ問題 プログラムで解く 状態の列挙 グラフの構築 最短経路問題を解く WASM化して、ブラウザ上で解く もしもすべて異なる団子だったら さらに一般化していくと 到達可能性 頂点数 本数を…

BlueskyのTUI Client Appを作り始めてしまった

memo.sugyan.com の続き…? I've published `tuisky`, a TUI Client for Bluesky, as v0.0.1. (It's still a work in progress.) Were there already other clients available for use in the terminal? #atdev #bluesky-client #tui crates.io/crates/tuisk…

Expressに22個以上の要素の配列クエリを渡すときは気をつける

自作ライブラリを使ったBlueskyクライアントを実装していて遭遇したバグ。 ATriumからのfeed.getPostsでurisが21個までなら大丈夫だが22個以上だとエラーになることが発覚した。問題切り分け中… ここまで自作クライアント実装してようやく気付く問題があるん…

BlueskyのDesktop Client Appを作り始めている

ATProtocolのRustライブラリを作っている 活動の続きとして、ライブラリの動作確認も兼ねてDesktop Applicationを作ってみることにした。 Tauri RustでDesktop Application作成、といえば今もっとも普及しているのがTauriだろう。 tauri.app ステータスとし…

Rustのserdeで、データフォーマットによって異なる型にserialize/deserializeする

背景 CidLink serde_json, serde_ipld_dagcbor 問題点: データフォーマットによって対象の型が異なる 最初の解決策: is_human_readable() による分岐 うまくいかないケース 解決策(?): Ipld を経由しデータの構造によって分岐する 汎用的? な解決策: Untag…

Cloudflare Workersで、自分のはてブをBlueskyに流す

bsky.app そういえば、古き良き時代は自分のブックマークは自動でTwitterに投稿されていたのだった。 今はBlueskyがメインになっているので、同じ仕組みが欲しい、と思った。ので、作った。 github.com 要件 先行事例 Rust版 WASM対応 Cloudflare Workersで…

Rustで将棋の局面画像生成、そしてCDN Edgeで動的生成

背景 先行・類似事例 自作のメリット Rustで局面画像生成 盤・駒画像の素材 画像処理 入出力 Generatorと下準備 Publish Web Appで使う CDN Edgeで動かす wasm-packでWebAssembly作成 Deno Deploy Vercel Edge Functions Cloudflare Workers Fastly Compute@…

Advent of Code 2023 を完走した

毎年12月に開催されている Advent of Code に、2019年から参加している。 過去記事: Advent of Code 2019 に挑戦している - すぎゃーんメモ Advent of Code 2020 完答した - すぎゃーんメモ Advent of Code 2022 を完走した - すぎゃーんメモ 2023年のAdvent…

自動でtokenをrefreshして再送するRustの非同期HTTP Client

半年ほど前から、BlueskyのAT ProtocolのRust版ライブラリを作っている。 memo.sugyan.com github.com その中で最近実装した機能の話。 API Agent AT Protocolの認証 tokenの管理と自動更新機構 ATriumでの実装 XrpcClient trait session管理するwrapper tok…

PentominoをBitboardを使って解く

子どもが百均で買ってきたパズルをやってみたら、全然うまく出来なくて悔しかったのでプログラムで解を探すことにした。 Pentominoとは 探索アルゴリズムと実装 計算量概算 効率的な探索の方針 backtracking Bitboardによる検索と判定 候補の事前計算 実装と…

AT Protocol(Bluesky)のためのRustライブラリを作った

前記事 でOCamlやってくぞ、と書いたけど結局Rustです。 Bluesky AT Protocolとエコシステムの現状 (〜2023/04) Rust版の実装 Lexiconとコード生成 自作Rust版実装: ATrium Lexicon schema コード生成 API設計 Lex CLI 今後 Bluesky Twitter代替の候補として…

40歳から始める関数型言語、OCaml

動機 Why OCaml 学習方法 Real World OCaml Github Copilot と ChatGPT オンラインジャッジ (競プロ) Advent of Code その次? 所感 関数型という概念 OCamlの書き味 Rust, Python の経験 AIとの親和性 まとめ 某Nさんがここ最近Haskellとか勉強してて楽しそ…

YAPC::Kyoto 2023 に参加した #yapcjapan

yapcjapan.org おそらく YAPC::Tokyo 2019 以来?4年ぶりにオフラインのイベントに参加しました。地元開催ということで日帰りで行けてありがたい…! 最初だけちょろっと家族で参加。 子ゃーんたち連れて #yapcjapan 会場。異様な雰囲気のおじさんたちに囲ま…

Advent of Code 2022 を完走した

毎年12月に開催されている Advent of Code に、2019年から参加している。 過去記事: Advent of Code 2019 に挑戦している - すぎゃーんメモ Advent of Code 2020 完答した - すぎゃーんメモ 2022年のAdvent of Codeにも挑戦していて、年が明けてしまったが先…

2023パズル をRustで解いてみる

tkihiraさんの問題が面白そうだったので挑戦してみた。 2023年クイズ!上の例のように、数字の合間に四則演算(+−×÷)や括弧を入れることで、2023 を作ってください。- 数字の間に必ず演算子を 1 つ入れてください- ただし 9 と 8 の間には既に ÷ が入って…

Rubyでバイナリデータに対するrindex検索の挙動でハマったので調べたことメモ

自分の手元の環境でこんなことが起きた。 $ ruby -v ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin21] $ irb irb(main):001:0> "\x01\x80\x00\x00".index("\x01") => 0 irb(main):002:0> "\x01\x80\x00\x00".rindex("\x01") => 1 \x01 は 0…

spherical linear interpolation(slerp)によるlatent spaceでのnoise補間

memo.sugyan.com の記事を書いてから、先行事例の調査が足りていなかったなと反省。 Latent Seed の Gaussian noise 間での morphing はあんまりやっている人いないんじゃないかな、と書いたけど、検索してみると普通に居た。 why settle for a few images f…

Stable Diffusionでmorphing

#stablediffusion 完全に理解した pic.twitter.com/IR5yjnL07Y— すぎゃーん (@sugyan) August 31, 2022 ということで少し触って遊んでみたのでメモ。 Stable Diffusion をザックリ理解 先月公開された Stable Diffusion。 stability.ai 高精度で美しい画像を…

Slackの家庭内日記をはてなブログに同期していく

弊家庭ではSlackを日記ツールとして使っていて、 #diary channelに夫婦1日1投稿ずつ3~4行程度で今日あったこと・子の成長記録・感想などを書く、というのを続けてるんすよね。SNS感覚で気楽に書けて編集も出来るし遡ったり検索したりしやすくて何気に便利だ…