TypeScript はJS由来の言語仕様が根本的に不安定、Rust はアプリケーション層を書くのには低レベルすぎる、そんな不満はありませんか? MoonBit はそういう不満を解決してくれる言語です。ただし、今はエコシステムの力を借りず、全部自力で書く前提ですが。 この記事は 2025/11 時点の MoonBit への所感になります。 2024/4 時点と比べて、ネイティブバックエンド対応、組み込みJSON型、例外のサポート、非同期サポートと大きく進化しています。 そろそろ実用できるんじゃないか?と思い、自分は MoonBit を使って React のバインディングを書いて、SPAとして動作するのを達成しました。その所感を含めての記事になります。 Moonbit のここが嬉しい MoonBit は自分がTypeScript に感じる不満の多くを解決しています。 Rust風の構文の静的型
MoonBit 最高 2025DeNA 社様で AI コーディングの社内勉強会の講師をやってきました。 最近、フリーランスでこのような仕事を依頼されていることがあり、余裕があるときに請けています。AI コーディングの講師は 3 回目です。4 回目の予約も入っています。 この記事では、AI を使ったプログラミングの講師として受講者に伝えたかったことや、他の方が講師をするときに何を考えるべきか?を一応書き出して、まとめておきたいと思います。 ノウハウを秘匿しておいても自分の食い扶持にもなりそうではあるんですが、それ以上に AI コーディングが一般化してほしいと願っています。 事前準備 事前に作例のリポジトリは用意しておきます。が、これを意図的に使わないようにしています。 なぜなら、これをフォークしてしまうと、AI は既存実装を「チラ見」してしまいます。結果ゼロからプロンプティングして組み立てているという体験を損ねてしまいま
AIコーディングハンズオンの講師をやりました(株式会社DeNA様の事例)関数型まつり以降、Unison 言語が気になっています。 最近、試しにAI用のLSPとか作ってたんですが、既存のプログラミング言語処理系にやや限界を感じています。既存言語の人間用のファイル参照と line:character の補完というインターフェースが、AIの操作単位と噛み合ってないじゃないか?という懸念です。 関数型まつりでも発表があった、関数型ドメインモデリングの Scott Wlaschin 氏いわく「副作用のない関数だけでプロジェクトを構成すれば、関数名はただの名前空間のルックアップテーブルに過ぎなくなり、その合成だけでドメインを表現できる」とし、関数を組み合わせるスタイルの Railway Oriented Programming を提唱していました。 関数型まつりで Unison 関連の発表があったわけではないんですが、関数型言語のうち自分がほしい特性をAIに相談したら、そ
Unison 言語から、「次」の言語を考察したい講習会用にまとめたもの。可能なら公式ドキュメントを参照するのを推奨するが、この資料ではサッと使いはじめるために要点を絞って解説する。 claude-code は claude-code 自身で開発されており、恐ろしい速度で更新されてる点に注意。この資料は一瞬で古くなる。 アカウントの契約等は省略 インストールと実行
速習 Claude Code前回は TS に特化した MCP サーバーを作ったが、今回 LSP (Language Server Protocol) を使って任意の言語に対応できるように一般化するのに成功した。 https://github.com/mizchi/lsmcp TL;DR typescript-mcp の TypeScript 特化機能を LSP ベースに一般化 Rust、Python、Go、Moonbit など任意の LSP と連携可能 npx -y @mizchi/lsmcp --bin="rust-analyzer" のように LSP プロセスを握って起動するので、任意の言語に対応可能 (実際にリネームや Auto Import のような各コマンドに対応する操作ができるかは、LSP 側の実装に依存) 実際に Rust プロジェクトで動いている例: # Rust でのシンボルリネーム ●くろまる lsmcp
lsmcp - 汎用的な LSP の MCP サーバーを作った(この記事の AI 成分は 5 割ぐらいです) claude-code や gemini-cli を触った人なら、やたらリッチな CLI のインターフェースが一体どうなってるか疑問に思ったはずです。 これは ink というライブラリで実装されています。実体は React のカスタムレンダラーで、React の差分レンダリングで CLI を構築することができます。 中では yoga というレイアウトエンジンが使われており、これは React Native でも使われているもので、 Web で display: flex を使ったときと同じレイアウト計算モデルになります。 つまり、 React や ReactNative の知識で CLI (TUI) の アスキーアートの UI を作ってるわけですね。 実際に作ってみた例 React Ink の可能性を探るべく、ターミナルで動くゲームを実装して
React Ink によるリッチ CLI (ClaudeCodeの裏側のアレ)$ gemini -p "Webで「Gemini APIの料金」について調べて" Gemini APIの料金は、主に従量課金制で、使用するモデルや機能、利用量によって変わります。無料利用枠と有料プランが提供されています。 ### 料金体系の概要 課金は、以下の要素に基づいています。 * **入力トークン数**: APIに送信するテキストやデータの量。 * **出力トークン数**: APIが生成・応答するテキストやデータの量。 * **キャッシュされたトークン数**: 会話の履歴を記憶させる機能を利用した場合のトークン数。 (略) brave search や perplexity がなくともこれで、馴染み深い Google の結果が返ってくるので、非常に使いやすいです。 自分は今からとりあえずこれを claude-code に繋いでみます。 => した。 .claude/commands/
gemini-cli の google_web_search が最高claude-code sdk を使えば、TypeScirpt/Python コードから claude-code を呼べる。 これを使って、自動テスト中に自然言語によるアサーションをするという、(最悪な)アイデアを思いついたのでメモしておく。 // node --test ask-claude.test.ts import { test } from "node:test"; import { query, type Options } from "@anthropic-ai/claude-code"; // claude-code が起動し、prompt が条件を満たしたら MARKER を投げて停止する。 async function assertAI(prompt: string, options: Options = {}): Promise<void> { const MARKE
AI による自然言語アサーションTypeScript ツールチェインは多種多様で、毎回目的に沿ってプロジェクトを設定するのが非常に大変です。 なので、再現性のある環境構築手順を作って LLM に丸投げすることにしました。 (この記事の7割はAIに書かせて、自分で30分かけて書き直しました) tl;dr Claude Code に読ませる前提のTypeScriptの環境構築ガイドラインを作った docs/ts-guide/ にドキュメントを配置して、LLM(Claude)にそれを読ませる プロジェクトの要件を伝えて、LLMに適切な設定を追加させる ベースラインとなる基礎部分から始めて、対話的に必要な機能を追加していく How to use すごい雑に実態を説明すると共通セットアップとただのライブラリの使い方のドキュメントです。 # 新しいプロジェクトを作成 mkdir my-app cd my-app # ts-guide
TypeScript 環境構築ガイドラインを書いてLLMに再現させる最近もっぱら Roo から Claude Code をメインに移しているが、その界隈の進歩は今までの変化とは明らかに質が違うという感覚がある。それを今の時点で言語化しておきたい。 最初にいっておくと、自分はシンギュラリティ論自体には否定派というか、シンギュラリティが来たところで世の中の問題の大多数が解決されるとは思っていない。(特にレイ・カーツワイルは典型的なフェイク野郎だと思っている) 実現したところで、そんなものかになるという程度の話だと思っている。実現したところで、シンギュラリティ万能論者はゴールをずらし続けることで否定するだろう。終末論はいつもそうだ。 という前置きの上で、今確実に転換期を迎えている AI とプログラミングの話をしたい。 特異点があるとしたら、今はその瀬戸際。 tl;dr Claude Code は Claude Code によって 90%が開発されている その改善
Claude Code による技術的特異点を見届けろclaude code 安くて便利。 自前 MCP を大量に持ってると、手元に用意しておいた MCP サーバーに繋ぎたくなります。 以下のドキュメントによると、 claude --mcp-config=... でローカルな MCP サーバーを叩けるみたいです。 以下、claude code に手元の MCP サーバーを登録する例です。 追記: .mcp.json プロジェクトルートの .mcp.json が自動で認識されます。 ~/.zshrc 用のエイリアスを削除 ローカル MCP につなぐ MCP サーバー実装を書きます。 これは指定した URL を本文抽出して markdown で取得する実装です。 // .claude/mcp-server.ts // npm add -D @modelcontextprotocol/sdk zod @mizchi/readability impo
claude code でローカルなMCPサーバーを叩けるようにするtskaigi で susisu さんの Generator で Promise ランタイムを作る発表をみて、昔作ったやつがもっとやれそうな気がしたので、やってみた話。 やりたいこと TS の言語システムが物足りなくて、ドメインを表現しきれない。とくに副作用を持つ関数に、なんとかして副作用の型を宣言したい。 過去に、 Async Generator でこれができるのを確認した。 function print(): void & Eff<Operation.Console> { console.log("hello"); } async function* main() { yield print(); } for await (const _eff of main()) { } // この型が最終的に発生した副作用の合計を表現する export type MainOps = GetEffe
TypeScript でエフェクトシステムを再現したいDeno + Claude4 + RooCode。Claude 4 が進化しているので、それに合わせて Roo のプロンプトを書き直した。 リポジトリはここ たぶん .roo/rules/rules.md と .roo/rules-orchestrator/01_workflows.md だけ見ればいいです。 オーケストレーター用のプロンプト システムプロンプト側 AI へのお題はダイクストラによる経路探索の実装。 効いたこと ハイラムの法則と単一責任原則に言及しながらリファクタさせる https://ssaits.jp/promapedia/glossary/hyrums-law.html eslint の warn でかなり積極的なルールを採用して、それを根拠にリファクタリングさせる 最初は 単体ファイルだけで eslint を回す 通常のテストではログが邪魔になるので通所の CI で
RooCode に自動でリファクタさせるオーケストレーター用プロンプトtskaigi で発表した https://tskaigi.mizchi.workers.dev/ のコピペしやすい用にしたバージョンです。 ほぼ marp のソースコードそのままですが、プロンプトのコピペ用にそのまま公開します。 本資料の内容 うまくいくプロンプト うまくいかないプロンプト、その理由 現状認識 注意: 前日リリースのClaude 4 の評価は間に合ってません!!!! Claude 4 Opus の高すぎる怖い 数時間触った感じ: 改善傾向だが、抱えてる問題も同じ傾向 主張: 言語特化プロンプトが必要(今は) Coding Agent は言語ごとのユースケースに最適化されていない ベストプラクティスをユーザーが取捨選定する必要 TS 周辺は技術選定で発散しがち プログラミング言語間の転移学習は不安定 GitHub を丸暗記しても、コンテキストに応じて翻訳&参照できるかは別の
TS特化Clineプログラミング(テキスト版)やりたいこと Zenn で Git 連携時、リポジトリ内の images/xxx.png は  でアクセスできる。 また、vscode の markdown モードは Ctrl-V でクリップボードから画像を貼り付けることができる。GitHub や Zenn の Web 上のテキストエリアのような挙動。 これを組み合わせて、Windows の Win-Ctrl-S から vscode の Markdown 編集バッファで Ctrl-V を押した時、次のようにクリップボードから画像を挿入したい。
GiHhub+Zenn 連携で vscode markdown で画像を Ctrl-V したい気合の脱 create-react-app からの、AIによるフロントエンド改修の自動化 (株式会社イルシル様) 株式会社イルシル様の依頼で、フロントエンドの近代化とパフォーマンス分析を行った事例を紹介します。 「イルシル」は、生成AIでスライド資料作成を自動化し、誰でも簡単にスライドやパワポが作れるサービスで、スライドのデザインは1,000種類以上あり、入力したテキストからスライドを自動生成できるだけでなく、オリジナルで作成することも可能です。 いわゆる、複雑フロントエンドの事例です。ブラウザ上でAI経由でスライドを生成して、それをUIから編集でき、最終的には PDF や パワーポイントとしてエクスポートします。 LCP や CLS ではなく、 TBT やメモリリークの調査がメインになります。 長くなったので最初に要約します。以下の内容を含みます。 泥臭い CRA => Vite 移行
気合の脱 create-react-app からの、AIによるフロントエンド改修の自動化 (株式会社イルシル様)現状たぶんこれが一番安いと思います。(※(注記)個人開発前提のスタックです) 実現したこと opennext for cloudflare prisma (no-rust, no-engine) prisma-postgres (free plan) つまり Cloudflare 上で Next.js を動かして、現実的なビルドサイズで Prisma を動かせました。 自分の手元のビルドサイズです。 ┌ ○しろまる / 149 B 102 kB ├ ○しろまる /_not-found 978 B 103 kB ├ ○しろまる /prisma-test 149 B 102 kB # ... + First Load JS shared by all 102 kB ├ chunks/770-76939705ff65587a.js 46.5 kB ├ chunks/96e220d1-21a0fdc894793ec0.js 53
遂に Cloudflare + Next.js(OpenNext) + Prisma 6.7.0(No Rust) が動く時代が来た現時点で個人の感想です。流動的なので、明日にでも意見は変わってると思います。 モデル Claude-3.7-sonnet コーディング性能が圧倒的に良い。迷ったらとりあえずこれを使っておけばよい だいたい1ファイル1000行ぐらいが管理できる限界 Gemini 2.5 今なら無料で使える。今のうちに使い込んでクセを把握するといい。 巨大コンテキスト理解ができるので、「大量にコードを読んでちょっとだけコードを書く」つまり一般的な業務プログラミングに向いてる。 リリースから一週間は負荷が高くて不安定だったが、最近安定してきた さすがに単純なコーディング性能は Claude-3.7-sonnet に劣る deepseek-chat Cline で使うには遅すぎて役に立たない AIツール作るときの壁打ちに使っている。雑に巨大データ送りつけても安くて安心 コーディングエージェント/拡張 Cline
プログラミング用途の生成AI関連ツールの評価 2025年04月14日pglite + pgvector で文章の類似度検索を実装します。 動機 とにかく手っ取り早くローカルにデータを突っ込んでおいて検索する RAG の雛形がほしかったんですが、調べても大規模ストレージを前提とした大掛かりな実装が多いです。 スクリプトを書いたらポンと実行できるセットアップ不要なものがあると、色々と実験ができます。 mastra/rag を読んでたら、簡単にできる気がしたのでやりました。ただ、chunk のドキュメント分割相当のものはまだ作ってません。そこまで難しい概念でもないので、雑に作れそうではあります。 qrdrant も検討しましたが、サーバーを建てるのが面倒でした 準備: ベクトル化用の関数 今回は @ai-sdk/openai を使ってベクトル化をします // OPENAI_API_KEY= import { openai } from "@ai-sdk/open
PGlite + pgvector で100行で実装するベクトル検索 (node/deno/drizzle)参加してみたら結構面白かったので、フロントエンド/Node.js エンジニアはやってみてほしい。 あれこれ盛り上がりたいので。 (自分は作問担当でも中の人でもなんでもない。ハッカソン参加者) 自分の最終結果はスコア上は 365/1200 で 12位だったが、レギュレーション失格で落ちた、というかレギュレーションを通せた人が上位16人で1人だけ。 結果から言えばレギュレーション守って300点以上とるゲームだった。 学べること クライアントサイド ランタイム負荷の計測 静的解析によるバンドル解析 やばいアセットの発見 CSSの静的抽出による(CLS改善) サーバーサイド sqlite のチューニング SSR実装 動画配信のプロトコル とにかく大量のライブラリツールチェインを乗り越える力(現場っぽい) 富豪的な実装のライブラリを自分で置き換える力(時間内無理) 環境構築 node.js / pn
WebSpeedHackathon2025 をやってみようリリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く