2025-01-01から1年間の記事一覧
SwiftUIでテキストの連続入力を実装したいと思ったが、iOSで一瞬ソフトウェアキーボードが閉じてしまう問題があった。そのあたりの解消の工夫をしたのでブログに書いておく。 やりたかったことと課題 以下のように、入力 => done => 入力 => doneと繰り返し…
最近Claude Codeなどのコーディングエージェントによる開発が非常に便利になっていて、何か作りたいなと思ったら今までにないスピードで開発ができるようになった。自分だと https://github.com/shibayu36/mysql-schema-explorer-mcp はCursor AgentやClaude…
一度ClaudeのMax Planで定額課金状態で、Claude Code + Opus 4を体験してみようと思い、https://github.com/shibayu36/mysql-schema-explorer-mcp で以下の2つをVibe codingしてみた。 e2eテスト作成 データベース固定モード機能開発 結論としては、この規模…
前回の自分の知りたい領域をDeep Researchでハンズオン資料を作って学ぶの記事でDeep ResearchでReasoningを理解するためのハンズオン資料を作った。その実践の中でReActの動きを深掘りしたら、ClineやCursor Agentのようなコーディングエージェントの動きの…
CursorやClineなどで生成AIを使ってコーディングをしていると、Reasoningモデルとか、Thinkingモードとか、そういったワードに出会うことが多い。これらが意味することについて理解できてないと感じていた。 何かを学ぶとき、資料を読むだけではなく手を動か…
ソフトウェアエンジニアリングの学び方には、書籍を読む、サンプルコードを写経するなど色々とある。その中で、同僚とのコードレビューや対話による新しい発見も1つの学習方法として非常に役立っていた。他人との対話による学習は、他の学習と違って自分が想…
前回紹介したMySQLのスキーマ情報を圧縮して提供するMCPサーバーは、かなりの部分をVibe Codingで作った。その時にVibe Codingのやり方を調べていたのだが、Tipsは色々出てくるものの、具体的にどうAIと会話していったかなどはあまり分からず困っていた。 そ…
複数のpngを全部pdfに結合する処理を書いていて、その中でJPEG圧縮について興味が湧いた。JPEG圧縮全体はまだ全く理解出来てなかったけど、その工程の中のクロマ・サブサンプリングについて調べたのでメモしておく。間違ってる可能性も高いので、ツッコミあ…
MySQLのスキーマ情報を圧縮して提供するMCPサーバーを作ったの記事で紹介したmysql-schema-explorer-mcpを英語化してみた。 https://github.com/shibayu36/mysql-schema-explorer-mcp/pull/1 機能としてはtool callの説明文や出力を英語にしたとしても、普通…
最近CLINEに全部賭けろのような記事もあったように、AIエージェントによるコーディングが非常に話題になっている。一方自分は色々試してみるものの、仕事上ではなかなかAIエージェントによるコーディングをうまく使いこなせていない。 ただAIエージェントに…
AIを使ってMySQLのクエリを書くときは、自分が関わっているプロジェクトのスキーマ情報を読み込ませることが必須である。ただし超巨大プロジェクトに携わっていると、特定データベースのテーブル数が数百規模になってしまう。この場合スキーマのダンプ情報を…
Cluster Scriptを書く時は、TypeScript用の型定義ファイルが用意されていて、それを使うことで型チェックや補完が効くようになる。型定義ファイルは https://docs.cluster.mu/script/index.d.ts にある。 これをJavaScriptからそのまま使ってVSCodeで保管で…
GitHub上のOSSにcontributeするためにcommitメッセージやPullRequestのコメントを英語で書くことがある。もう自分で英語を書くのは無理なので自動翻訳を活用したい。この時DeepLなどを使ってもいいのだが、もう少しチューニングを加えたい。たとえば 英語非…
clusterのリアルタイム通信サーバーの漸進的な進化のような仕組みを理解したいなと思い、手習い用にMQTT+Protocol Buffersを使ってリアルタイムに2次元位置を同期するサーバーを書いてみている。今回はリアルタイムに2次元位置を同期するサーバーでプレイヤ…
Google Spreadsheetを使っているとき、別のマスターデータシートから特定列だけ読み込みたい時がある。この時簡単に読み込む方法としてはIMPORTRANGEやQUERY関数を組み合わせて使う方法がある。 ただこのやり方だと、マスターデータシートに列が追加された時…
最近はGoの並行プログラミングを学んでおり、ちょうど「Go言語で学ぶ並行プログラミング」という本が出たばかりだったので読んでみた。この本は自分にめちゃくちゃ刺さって面白かった。 Go言語で学ぶ並行プログラミング 他言語にも適用できる原則とベストプ…
最近Goの並行処理を理解する必要が出てきたので、「Go言語による並行処理」を読んだ。 Go言語による並行処理作者:Katherine Cox-BudayオライリージャパンAmazon 並行処理とはそもそも何か、goroutineやsyncなどの並行処理のためのパーツ、さらにchannelの基…
並行プログラミングを学ぶ一環で、「Contextを完全に理解する」というテーマでGo Conference 2021 Autumnに登壇しました の記事を見つけ、contextのcancel伝播の実装方法が気になった。そこで自分でcontextのcancel部分だけを自作することで伝播の理解を深め…
clusterのリアルタイム通信サーバーの漸進的な進化のような仕組みを理解したいなと思い、手習い用にMQTT+Protocol Buffersを使ってリアルタイムに2次元位置を同期するサーバーを書いている。今回はリアルタイムに2次元位置を同期するサーバーでプレイヤーか…
git grepにはさまざまな便利グッズがあるのだけど、どうやっても覚えられなくて困っていた。たまに使いたいものとして、特定ファイルは除外する方法があるが、この記法が覚えられない... 例えば、golangでテストファイルとgen/ディレクトリ以下にあるもの以…
clusterのリアルタイム通信サーバーの漸進的な進化のような仕組みを理解したいなと思い、手習い用にMQTT+Protocol Buffersを使ってリアルタイムに2次元位置を同期するサーバーを書いてみている。今回はリアルタイムに2次元位置を同期するサーバーにアイテム…
clusterのリアルタイム通信サーバーの漸進的な進化のような仕組みを理解したいなと思い、手習い用にMQTT+Protocol Buffersを使ってリアルタイムに2次元位置を同期するサーバーを書いてみている。今回はMQTT+Protocol Buffersを使ってリアルタイムに2次元位置…
MQTT+Protocol Buffersを使ってリアルタイムに2次元位置を同期するサーバーを書いてみたで作ったレポジトリにgolangci-lintを導入したのでメモ。 以下の資料を参考にした。 golangci-lint の enable-all で コーディングルールを明確にする試み | ドクセル K…
terminalの256色のカラーに何が設定されているか手軽に見たかった。ChatGPTに聞いたらめっちゃ良いコマンドを教えてもらえたのでメモ。 こういうコマンドを実行する。 for i in {0..255}; do printf "\033[48;5;%sm %3d \033[0m" "$i" "$i" if [ $(( (i+1) %…
clusterのリアルタイム通信サーバーの漸進的な進化のような仕組みを理解したいなと思い、手習い用にMQTT+Protocol Buffersを使ってリアルタイムに2次元位置を同期するサーバーを書いてみた。 できたもの 簡単にclientも書いて、こういうものを作った。 termi…