サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ChatGPT
memo.sugyan.com
yapcjapan.org 参加してきました。昨年の函館は参加できなかったので、その前の広島以来の参加。 登壇 今回はついにCfPが採択され、登壇することができました。(広島、函館と応募はしていたけど落選だったので 3度目の正直!) YAPCは2009あたりから何度も参加しているけど、登壇できたのは2010年が最後だったようで、実に15年ぶり(!)のYAPC登壇でした。 2日目の最後の方だったのでなかなか気が抜けなくて厳しかった… すぎゃーん見に来た! #yapcjapan [image or embed]— Yoshiori (@yoshiori.bsky.social) November 15, 2025 at 2:16 PM Track Dは、すぎゃーんさん(@sugyan)による「やり方は一つだけじゃない、正解だけを目指さず寄り道やその先まで自分流に楽しむ趣味プログラミングの探求」
「Kyoto.なんか #7」に参加してきた。 Kyoto.なんか #7 - connpass そこで id:nagayama さんがReact Three Fiberの話をしていて、Reactの宣言的な書き方でThree.jsの3Dシーンを描画できるの良いなと思った。 r3f.docs.pmnd.rs 以前にThree.jsを使ってみたときにちょっと書いたけどなかなか書き方難しいな、と感じていたのだった…。 memo.sugyan.com そして会の終了後に id:Windymelt さんがインターネットくす玉をReact Three Fiberで作ろうとしていたのが面白そうだった (懇親会中には完成しなかった)。 blog.3qe.us ので、自分でも書いて練習しようと思って作ってみた。 Vibe Codingでは手直しが多くなりそうだったので主にCopilotと相談しながら自分の手で。
yoshiori.hatenablog.com この記事を以前に読んでいてずっと記憶に残っていた。最近になって子どもたちが夏休みに入り家にいる時間が増えたこともあり、必要に迫られて実際に真似してみることにした。 MTG中に妻や子どもたちが部屋に乱入する事故が起こるので yoshioriさんの真似してみることにした。まずは設置まで [image or embed]— すぎゃーん (@sugyan.com) July 25, 2025 at 11:48 AM 成果物 github.com macOSでのカメラ起動検出 macOSではLinuxとは異なり/dev/以下にカメラデバイスファイルが表示されないため、デバイスファイルの使用状況を監視する方法での検出はできない。また、macOSではVDC Assistant(Video Device Control Assistant)プロセスがカメラデ
Claude Codeには OpenTelemetry (OTel) のサポートがある。 これを使ってログやメトリクスを収集し、さくらのクラウドの「モニタリングスイート」に送信する試みをした。 Claude CodeのOpenTelemetry設定 otel-collectorで受ける otel-collectorからモニタリングスイートへ送る メトリクスの設定 ログの設定 さらにHooksも メトリクス可視化 まとめ Claude CodeのOpenTelemetry設定 ほぼすべてのことがここに書いてある。 docs.anthropic.com 最も簡単には、以下の設定を .claude/settings.local.json などに書けば確認できる。 { "env": { "CLAUDE_CODE_ENABLE_TELEMETRY": "1", "OTEL_LOGS_EXPORTER
経緯 ターミナルでの日本語入力問題 技術仕様 backend claude CLIによるstreaming出力 Claude Code SDK session_idによる会話の継続 permission制御 Denoについて frontend Claude Codeによる実装 GitHub上でOSSとしての開発進行 ワークフローの整備 記録としてのissue駆動開発 templateは人間向けのツール 開発速度のインパクト 今後の展望 まとめ 経緯 6月某日より、Claude Pro Planに加入すると従量課金ではなく月額固定でClaude Codeを使えるようになった。そこで自分もようやくPro Planに加入し、改めてClaude Codeを試してみた。課金額を気にせずに使い続けられるのは、やはり心理的に大きな違いがあると感じる。 Claude CodeのTUIは十分に操作性に優れて
普段使っているzshで echo '\e[0;31;47m CAUTION!! \e[0m' みたいに書くと、色付き表示される。 これでヨシッ! と思ってうっかり #!/bin/bash echo '\e[0;31;47m CAUTION!! \e[0m' とshell scriptを書いてしまうと、これは意図した表示にならない。 macOSのbash echoにはバグがあるらしい bash+windows terminalではこういう問題起きていない、ということだったので調べたところ、特にmacOSの標準のbashに問題があるようだった。 unix.stackexchange.com 新しめのbashだったら -e オプションをつけると問題なく表示されるっぽい。 printf, 8進/16進数で回避する こういった環境の差異にハマることないよう、そもそも echo を使わずに print
Bluesky MCP serverを自作し、SNS上に架空の友達を作る - すぎゃーんメモ の記事の続き。 「今後の課題」として挙げていた: 一番どうにかしたいのは、知識について。 プロフィールに書いたことしかインプットされないのでやはり偏りがあるし専門知識が足りない。 プリキュア全シリーズ好きなはずなのにひたすらスマプリのことばかり呟いてしまうし、最新作のキミプリについてはまったく知識が無い。オタクとしてあるまじき失態。 「重度のプリキュアオタクなギャル」という人格を作ったが、その肝心のプリキュアについての知識があやふやだったり足りていなかったりする、といった問題があった。 LLMは最新のプリキュアについて知らない RAGとベクトル検索MCP ベクトル検索MCPの作成 文書の収集と整理 Embedding、DB構築 動作確認 MCP Server作成 指定した人格として振る舞うLLMに
内容・目的 注意書き 使用したもの OpenAI Agents SDK (AI Agent) RMCP (MCP server) 人格の作成 1人目 2人目 動作とプロンプト アカウント作成 投稿 返信 その他 作成されたもの MCP serverを自作することについて Rustでビルドし配布できる LLMは使いこなしてくれない 今後の課題とアイデア まとめ Repository 内容・目的 最近流行りのMCP(Model Context Protocol)を使ったAIエージェントの機能を試して、何か面白いことができないかと考えていました。 普段よく使ってる Bluesky のAT Protocolと組み合わせたら、SNS上でAIが自分の友達として動くのでは?と考え、自作ライブラリを使用してMCPサーバーを作成し、AIエージェントにアカウントを運用させる実験をしてみました。 GPT-4はチ
作りはじめた記事を書いてから約2年が経った。 memo.sugyan.com 開発を続けてきたRustライブラリ ATrium を、先日ついにorganizationに移管した。 github.com 経緯 昨夏からAT Protocolの OAuth に対応する実装を進めていたものの、プライベートの事情などもあってなかなか順調には進まなかった。何度かPull Requestをもらって実装方針を議論したりもしたが、進捗は芳しくなかった。 @erlend-sh 氏からDiscordで「organizationに移管したらどうか?」とアドバイスを受けたこと、また自分自身も継続的な開発・メンテナンスを強い意志で続けていける自信が持てなかったこともあり、前向きに検討を始めた。 そして先日ようやく atrium-oauth をリリースしたところで一区切りとし、自分の個人repositoryからorg
どうも自分は監視についての知識や技術が乏しい、ということに気付いた。 そもそも何かを監視するという習慣を持っていないのがまず良くないと反省し、まずは自宅の環境を監視する練習から始めてみることにした。 監視とは役割ではなくスキルであり、チーム内の全員がある程度のレベルに至っておくべきです。 入門 監視 ―モダンなモニタリングのためのデザインパターン 環境 Ansible from macOS Ansible Galaxy VictoriaMetricsによる監視 Metricsの取得、収集 Node Exporter VictoriaMetrics (vmsingle, vmagent) SwitchBotによる温度/湿度/CO2濃度の取得 Exporter Grafanaによる可視化 Alertmanagerを使ったアラート通知 Alertmanagerのインストール vmalert によ
blog.handlena.me 「あの頃はこれ使っていたのか〜」と振り返れるのは良さそう。ということで自分もスナップショットとして残しておこう。2025年1月現在の状況。 エディタ code.visualstudio.com 自分のdotfilesの履歴を見る限り、2016末くらいから使い始めているっぽい。Emacsから乗り換えてから8年くらい経っているのか…。 主に使っているextensionは github.copilot golang.go ms-python.python rust-lang.rust-analyzer tamasfe.even-better-toml tuttieee.emacs-mcx zhuangtongfa.material-theme など。 基本操作としてはEmacsキーバインドはやはり体に染み付いているのでそれは必須。 themeは One Dark
「だんご屋のひまつぶし」とは 最長手順の問題は…? 組み合わせ、グラフ問題 プログラムで解く 状態の列挙 グラフの構築 最短経路問題を解く WASM化して、ブラウザ上で解く もしもすべて異なる団子だったら さらに一般化していくと 到達可能性 頂点数 本数を固定し、高さを変える 高さを固定し、本数を変える まとめ Repository 「だんご屋のひまつぶし」とは 「ハノイの塔」の派生型のようなパズル。 高さ3の串が3本あり、3色の団子2個ずつ計6個が刺さっている。これらを1個ずつ移し替えて、ある状態からある状態へと遷移させる、というゲーム。 移動できるのは各串で一番上にある団子だけ。 団子の大きさのような概念はなく、高さ3以内であればどこにでも動かせる。 単純なルールだがなかなかに奥が深く、じっくり考えて動かさないと最適な手順で達成するのは意外に難しい。 パズルオーディションというもので最
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/tuisky [image or embed]— すぎゃーん (@sugyan.com) Jul 1, 2024 at 12:12 AM 経緯 RatatuiによるTUI開発 Asynchronous Event Handling Components Architecture 自作Client用の設計 機能 完全に分離された Multi
自作ライブラリを使ったBlueskyクライアントを実装していて遭遇したバグ。 ATriumからのfeed.getPostsでurisが21個までなら大丈夫だが22個以上だとエラーになることが発覚した。問題切り分け中… ここまで自作クライアント実装してようやく気付く問題があるんだから やっぱりドッグフーディング大事やな、、— すぎゃーん (@sugyan.com) Apr 21, 2024 at 10:21 AM 問題の詳細と対応は以下の通り。 `app.bsky.feed.getPosts` fails with more than a certain number of arguments `uris` · Issue #160 · sugyan/atrium · GitHub feat: Replace serde_qs to serde_html_form by sugyan · P
bsky.app そういえば、古き良き時代は自分のブックマークは自動でTwitterに投稿されていたのだった。 今はBlueskyがメインになっているので、同じ仕組みが欲しい、と思った。ので、作った。 github.com 要件 先行事例 Rust版 WASM対応 Cloudflare Workersでの実装 1MB制限との戦い Fetch API KVでのSessionStore? 要件 自分のブックマークはRSSで取得できる。定期的にチェックして新しいのがあれば、といったロジックで検出できる。 なので、基本的にはプログラムを定期実行できる場所があればGitHub Actionsとかでも良い。 ただ、対象のブクマ内容をpostする前に、それを既にpostしているか否かを知る必要がある。 専用のbotアカウントとかであれば、そのアカウントのpost feedを取得して最近のものをチェックす
背景 先行・類似事例 自作のメリット Rustで局面画像生成 盤・駒画像の素材 画像処理 入出力 Generatorと下準備 Publish Web Appで使う CDN Edgeで動かす wasm-packでWebAssembly作成 Deno Deploy Vercel Edge Functions Cloudflare Workers Fastly Compute@Edge その他 まとめ Repository 背景 ATrium という AT Protocol のためのライブラリを自作している が、まったくドッグフーディングしていなかった ので、Blueskyに詰将棋の問題を放流するBotを作ってみることにした gfx氏が作ったBot を参考に というわけで、詰将棋の問題の局面を画像で投稿したい が、あまり自分好みの画像を生成できるライブラリやWebサービス等がない ので、結局それ
前記事 でOCamlやってくぞ、と書いたけど結局Rustです。 Bluesky AT Protocolとエコシステムの現状 (〜2023/04) Rust版の実装 Lexiconとコード生成 自作Rust版実装: ATrium Lexicon schema コード生成 API設計 Lex CLI 今後 Bluesky Twitter代替の候補として噂される(?)分散型SNS Bluesky。 現状ではまだprivate betaということで招待コードが無いと使えないのだけど、先月運良くコードをいただくことができて使い始めてみている。 一通りのSNS的な動きはしているものの、まだまだ鋭意開発中ということで足りていない機能があったり 日々新機能が追加されたりと目紛しく動いている世界のようだ。 AT Protocolとエコシステムの現状 (〜2023/04) AT Protocolについてはこち
動機 Why OCaml 学習方法 Real World OCaml Github Copilot と ChatGPT オンラインジャッジ (競プロ) Advent of Code その次? 所感 関数型という概念 OCamlの書き味 Rust, Python の経験 AIとの親和性 まとめ 某Nさんがここ最近Haskellとか勉強してて楽しそうで真似してみたくなって、自分も今さらながら何か関数型言語はじめてみるか〜と周りに相談したところOCamlをオススメされたので 今年に入ってからひたすらOCaml書く練習してる。AtCoder Boot camp for BeginnersのEasy 100をようやく終わらせたところ。 pic.twitter.com/POBWhvHHCn— すぎゃーん💯 (@sugyan) April 9, 2023 大西さんが動画の中で感極まっていたけど、宮川さ
yapcjapan.org おそらく YAPC::Tokyo 2019 以来?4年ぶりにオフラインのイベントに参加しました。地元開催ということで日帰りで行けてありがたい…! 最初だけちょろっと家族で参加。 子ゃーんたち連れて #yapcjapan 会場。異様な雰囲気のおじさんたちに囲まれひたすら萎縮していたw— すぎゃーん💯 (@sugyan) March 19, 2023 子ゃーんの相手をしてくださった方々、ありがとうございました。 久しぶりすぎて誰と会ってもキョドってしまうくらいだったけど、とにかく色んな人たちとリアルで再会できて嬉しかった!! そんなに長居はしてなかったのでトークは多くは訊けなかったけど、 id:ar_tama さんの『あの日ハッカーに憧れた自分が、「ハッカーの呪縛」から解き放たれるまで』がとても良かったです。 このトークを聴いた若手のエンジニアがこれを心に刻んで大
tkihiraさんの問題が面白そうだったので挑戦してみた。 2023年クイズ! 上の例のように、数字の合間に四則演算(+−×÷)や括弧を入れることで、2023 を作ってください。 - 数字の間に必ず演算子を 1 つ入れてください - ただし 9 と 8 の間には既に ÷ が入っています - 括弧は複数重ねて使用できます - 10×(-9 ÷ 8) のようなマイナス記号の使用は禁止です pic.twitter.com/K0w2miMXJA— Takuo Kihira (@tkihira) December 31, 2022 既に解説記事が出ているので解答はこちらをどうぞ。 nmi.jp 結局自分は自力では解けなくて 他の人の解法や上記の解説記事を読んでようやくできた、のだけど… 自分なりに理解して改めてRustで実装してみた。 RPN(逆ポーランド記法)の backtracking 探索の高
自分の手元の環境でこんなことが起きた。 $ 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 番目にしかないのだから、 .index でも .rindex でも 0 が返ってくるはずではないの?? 先に結論 きっかけ String#rindex の謎挙動 もう少し深く追う Encodingと実行環境 つまり再現条件は Rooの問題 Rubyのバグではないの? 3.2 先に結論 バイナリデータを扱うときには必ずEncodingを ASCII-8BIT
#stablediffusion 完全に理解した pic.twitter.com/IR5yjnL07Y— すぎゃーん💯 (@sugyan) August 31, 2022 ということで少し触って遊んでみたのでメモ。 Stable Diffusion をザックリ理解 先月公開された Stable Diffusion。 stability.ai 高精度で美しい画像を出力できる高性能なモデルながら、Google Colab などでも手軽に動かせるし、 Apple silicon でもそれなりに動かせる、というのが魅力だ。 中身については 以下の記事の "How does Stable Diffusion work?" 以降のところが分かりやすい。 huggingface.co 図をそのまま引用させていただくと という仕組みになっていて、受け取る入力は "User Prompt" と "Late
自作Rust製将棋合法手生成ライブラリ、計算の高速化のためBitboardの128bit計算をSIMDで行うようx86_64のAVX2、AArch64のNEON、wasm32のsimd128で動くようにそれぞれ実装して 各環境で多少速く探索できるようになった。https://t.co/h7Dz3X6BhT— すぎゃーん💯 (@sugyan) July 2, 2022 ということでSIMDでの高速化のメモ。 SIMDとは 実装 x86_64 基本演算 飛び利き計算 AArch64 同値判定、ゼロ値判定 飛び利き計算 Iterator WebAssembly Benchmark x86_64 AArch64 WebAssembly 感想 SIMDとは ja.wikipedia.org の通り、複数のデータを1命令で同時に演算する、というもの。 将棋Bitboardは81マスのデータを表現する
memo.sugyan.com の続き。 前記事時点でだいたい合法手の生成が出来ていたが、速度面でやや問題があった。 perft の計測してみるとRust版Aperyと比較して2倍程度遅い。 だいたい同じ手順になるよう実装しているはずなんだけど どうしてそんなに差がついているのかなぁと気になって、調べながら色々修正し、ようやく遜色ないくらいの速度まで改善できたのでメモ。 改善PR: Improve performance by sugyan · Pull Request #5 · sugyan/yasai · GitHub build options まず大事なのが、 PEXT が有効に使えていなかったこと。 前記事で書いた通り bitintr crate を使って簡単に記述できるようにしていたが、これは内部で target_feature attribute で分岐されていて、 bmi2
昨年末に出版された「強い将棋ソフトの創りかた」という本を読んで、自分も将棋AIを作ってみたいと思った。 強い将棋ソフトの創りかた 作者:山岡忠夫,加納邦彦マイナビ出版Amazon この本では主にPythonでの実装が紹介されていたが、自分は最近はRustが好きなのでRustで自分で実装してみたい、と考えた。 最近では自作詰将棋SolverもRustで書いている。 memo.sugyan.com 局面探索、パフォーマンス まず、局面の探索について考えた。 詰将棋Solverの場合も同様だが、将棋ソフトを作る場合にも、とにかく「今の局面からこの先どのような局面が発生し得るか」を高速に大量に探索していく必要がある。 現局面を根とするゲーム木を、合法手を辿って次々と子ノードに移ったり戻ってきたりして探索することになる。 これは、「各局面における合法手の列挙」と「指し手の適用(また、その巻き戻し)に
ついカッとなって先週からRustで詰将棋ソルバを書き始めてしまい、ようやくdf-pnで何らかの解答を出せるようになったところ。ここからもうちょっと調整していくぞ、、 pic.twitter.com/XM9iPJqocv— すぎゃーん💯 (@sugyan) November 2, 2021 というわけで突然Rustで詰将棋ソルバを作りたくなり、作った。 github.com 現時点ではまだ完成度は低くて6割ほどかな…。 とはいえそこらの素直な詰将棋問題なら普通に解けると思う。 冒頭の画像は看寿賞作品の3手詰「新たなる殺意」を2秒弱で解いたもの。 先行事例 将棋プログラムの多くはC++で書かれていて 最近はRustも増えてきているのかな? しかし「詰将棋を解く」ことに特化しているものはあまり多くはなさそうだった。 なかでもRustで書かれているものはna2hiroさんによるものくらいしか無さ
子ゃーんに喜んでもらいたくて、creative coding入門してp5.jsで色々作る練習してる。今はフワフワでキラキラな可愛いシャボン玉を表現しようと試行錯誤しています pic.twitter.com/qGeRYCelqh— すぎゃーん💯 (@sugyan) October 6, 2021 動機・目的 上記の通り、「子に喜んでもらえるものを作る」ことを目指す。 特にshort codingなどにチャレンジしたりはせず、またgenerative artのようなものよりはどちらかというと"触って遊べる"インタラクティヴなものを優先的に。 1歳半の我が子は最近はiPadの操作も慣れてきていて、幼児向けアプリなどで画面を指で触って楽しむことは出来るようになっている。複雑な操作はまだ難しいが 直感的に動かせるようなものなら楽しんでくれるのでは(という勝手な期待)。 …とはいえ 単純に自分が面白
ISUCON11 予選おつかれさまでした。 ここ数年は参加者として予選敗退を繰り返してきたのだけど、今年はちょっと違う関わり方をしてみるか、と思い 「参考実装の移植」に立候補してみました。 isucon.net Node.js担当として採用していただき、ちょっと不安もあったので id:hokaccha 氏にレビュアーとしてついてもらって、言語移植チームとして加わりました。 ISUCON11予選おつかれさまでした。今回は言語移植チームとしてNode.js実装を担当し、その他 バグ直し太郎として幾つかの言語の実装にcontributeしました— すぎゃーん💯 (@sugyan) August 22, 2021 Node.js 実装 github.com 中身としては素朴な express のアプリケーションで、TypeScriptで実装しました。 mysql clientには mysql2/
乗り物大好きな子ゃーんに遊ばせてあげよう、と 救急車の3Dモデルデータを購入してThree.jsでグリグリ動かせるようにしてPWAにしてあげた pic.twitter.com/61MUg3MrOR— すぎゃーん💯 (@sugyan) August 1, 2021 子(1歳5ヶ月)が最近すごく消防車とか救急車に興味を持っているようで、またiPadを人差し指で操作することを覚えてきているので、じゃあ好きな車を表示してグリグリ動かせるのを作ってあげよう、と思った。 Web系エンジニアとしてはやはりブラウザで動くようなものが作りやすいな、と思い Web技術を軸に実装してみた。 モデリングデータ まずは3Dモデルを探してみた。海外の救急車のものなどはよくヒットしたが、国内のものでそれっぽく良いものはなかなか見つからなかった。 最終的にこれを購入。 booth.pm 消防車も欲しいけどここには無さそ
次のページ
このページを最初にブックマークしてみませんか?
『すぎゃーんメモ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く