Category: 開発

AgentAPI:コーディングエージェントを制御するための統合HTTP API

2025-04-17
AgentAPI:コーディングエージェントを制御するための統合HTTP API

AgentAPIは、Claude Code、Goose、Aider、CodexなどのコーディングAIエージェントを制御するために設計された強力なHTTP APIです。シンプルなAPI呼び出しを通じてインタラクションを可能にする統合チャットインターフェースを提供します。ユーザーは、1つのエージェントが別のエージェントを制御するMCPサーバーを構築することもできます。AgentAPIはターミナル出力を自動的に処理し、不要な情報を削除して個々のメッセージに解析することで、インタラクションを簡素化します。将来、大規模言語モデルが公式SDKをリリースする可能性がありますが、AgentAPIは、開発者がコーディングAIエージェントを簡単に切り替えることができる普遍的なアダプターを目指しています。

開発

Ubuntu 25.04 “Plucky Puffin”:パフォーマンスとセキュリティの強化

2025-04-17
Ubuntu 25.04 “Plucky Puffin”:パフォーマンスとセキュリティの強化

Canonicalは、Ubuntu 25.04「Plucky Puffin」をリリースしました。GNOME 48、改善されたインストールとブート体験、Springフレームワーク用の新しい「devpack」を搭載しています。このリリースは、Intel GPUでのAIワークロードのパフォーマンス向上と、AMD SEV-SNPを使用したコンフィデンシャルコンピューティングのサポートを提供します。Linux 6.14カーネルには、改善されたスケジューリングと、WineおよびProtonでのWindowsゲームのパフォーマンスを向上させる新しいNTSYNCドライバーが含まれています。Ubuntu 25.04には、最新のツールチェーン、強化された管理機能とネットワーク制御、Intel Core UltraプロセッサとARM64ハードウェアの拡張サポートも含まれています。

開発

サンドボックスでPythonコードを実行するMCPサーバー

2025-04-17
サンドボックスでPythonコードを実行するMCPサーバー

この記事では、Deno内でPyodideを使用してサンドボックスでPythonコードを実行するModel Context Protocol(MCP)サーバーを紹介します。このサーバーは、オペレーティングシステムから隔離された安全な環境をPythonコードに提供します。標準入出力(stdio)、サーバー送信イベント(SSE)、ウォームアップモードなど、複数の動作モードをサポートしており、開発者は簡単にテストやデプロイを行うことができます。PydanticAIを使用した例では、このMCPサーバーを使用してエージェントを介して大規模言語モデルとやり取りする方法を示しています。

開発

Erlang/OTP SSHサーバの重大な脆弱性により、認証なしのリモートコード実行が可能に

2025-04-17

Erlang/OTP SSHサーバに重大な脆弱性(CVE-2025-32433)が発見され、認証なしのリモートコード実行(RCE)が可能になることがわかりました。OTP-27.3.3、OTP-26.2.5.11、OTP-25.3.2.20より前のバージョンが影響を受けます。攻撃者はSSHプロトコルメッセージ処理の欠陥を利用して、資格情報なしで不正アクセスを取得し、任意のコマンドを実行できます。パッチが利用可能です。OTP-27.3.3、OTP-26.2.5.11、OTP-25.3.2.20以降のバージョンにアップデートしてください。

開発

DeepSeekのオープンソース分散ファイルシステム3FSを深く掘り下げる

2025-04-17

DeepSeekは、分散ファイルシステムである3FS(Fire-Flyer File System)をリリースしました。この記事では、分散ファイルシステムの概念と3FSの動作原理を説明します。3FSは、Meta(メタデータ管理)、Mgmtd(管理サーバー)、Storage(ストレージノード)、Client(クライアント)の4つのノードタイプで構成され、CRAQ(Chain Replication with Apportioned Queries)プロトコルを使用して強い整合性を達成します。この記事では、3FSのパフォーマンス特性を分析し、将来のパフォーマンステストと改善の方向性を示します。

開発

go-mcp: タイプセーフなGo SDKによるMCPサーバー開発

2025-04-17
go-mcp: タイプセーフなGo SDKによるMCPサーバー開発

go-mcpは、MCP(Model Context Protocol)サーバーの開発を簡素化するGo SDKです。タイプセーフで直感的なインターフェースにより、開発プロセスが効率化されます。コード生成によってツールとプロンプトパラメーターの静的型付けが保証され、コンパイル時にエラーが検出されます。クリーンなAPIと開発者フレンドリーな設計により、学習と使用が容易です。このプロジェクトには包括的な例とドキュメントが含まれており、ツール、プロンプト、リソース管理、ログ記録などの機能をサポートしています。動的なツールの追加は現在サポートされていませんが、将来のバッチ処理、ストリーム可能なHTTPトランスポート、進捗通知などが計画されています。MITライセンスで提供されています。

開発

Rustのコンパイル時間:25分から2分へ

2025-04-17
Rustのコンパイル時間:25分から2分へ

Felderaチームは、大規模なSQLから生成されたRustコードのコンパイル時間に非常に長い時間を要する問題に直面しました。8562行のSQLプログラムを約10万行のRustコードに変換するのに25分かかっていました。型消去やコード重複排除などの手法を試みましたが、効果は限定的でした。最終的に、生成されたRustコードを1106個の小さなクレートに分割することで、並列コンパイルが可能になり、コンパイル時間を2分未満に大幅に短縮し、マルチコアプロセッサをフル活用できるようになりました。

UTM を使用した Apple Silicon 上での Linux 開発環境構築

2025-04-17
UTM を使用した Apple Silicon 上での Linux 開発環境構築

この記事では、UTM 仮想マシンを使用して、Apple Silicon Mac 上に Linux 開発環境を構築する方法を示します。Homebrew を使用して UTM と cdrtools をインストールした後、cloud-init スクリプトを使用して、Git、Docker などの必須開発ツールのインストールと SSH アクセスの設定を自動化します。仮想マシンの作成、イメージのインポート、cloud-init スクリプトの設定、一時ドライブの削除など、手順を詳しく説明し、機能する Linux 開発環境を構築します。

開発

微分可能なプログラミング:第一原理からの深い探求

2025-04-17

この記事では、微分可能なプログラミングについて包括的な説明を行い、微積分における微分の定義から始め、勾配、方向微分、ヤコビ行列などの概念へと進みます。数値微分、記号微分、自動微分(順伝播と逆伝播モード)の3つの微分手法を詳細に説明し、それぞれの長所と短所を比較します。最後に、逆伝播モードの自動微分と勾配降下法を組み合わせて、画像のぼけ除去の例を用いて現実世界の最適化問題を解決する方法を示します。

arXivLabs:コミュニティとの共同作業による実験プロジェクト

2025-04-17
arXivLabs:コミュニティとの共同作業による実験プロジェクト

arXivLabsは、共同作業者がarXivの新しい機能を直接ウェブサイト上で開発・共有できるフレームワークです。arXivLabsに関わる個人や組織は、オープン性、コミュニティ、卓越性、ユーザーデータのプライバシーというarXivの価値観を受け入れています。arXivはこれらの価値観に尽力しており、それらを遵守するパートナーのみと連携します。arXivコミュニティに価値を加えるプロジェクトのアイデアをお持ちですか?arXivLabsについて詳しく学びましょう。

開発

NPを超えて:より直感的な複雑性問題

2025-04-17
NPを超えて:より直感的な複雑性問題

著者は、停止問題をNP困難よりも難しい問題の典型的な例として用いることに異議を唱え、それが混乱を招き、直感的でない点を主張しています。決定不能である一方、「はい」という答えの検証は、プログラムを有限ステップ実行することで行えます。より理解しやすい代替案として、無限グリッド上でトークンを移動させ、目標地点に到達できるかどうかを判断する問題が提示されています。この問題は、低次元ではPSPACE完全ですが、次元の増加に伴い複雑さが爆発的に増大し、最終的にアッカーマン完全になります。これは、NP問題をはるかに超える複雑性を視覚的に示しています。

Formance:開発者と金融のインタラクションを再定義

2025-04-17
Formance:開発者と金融のインタラクションを再定義

Formanceは、開発者がお金と第一級のプリミティブとしてやり取りし、金融と連携する方法を再定義することをミッションとしています。現在、許可されたベンダーロックインされたインフラストラクチャに隠されているお金は、製品重視の企業に革新的な金融アプリケーションを作成する能力を与えるために、再構築する必要があります。Formanceプラットフォームでは、エンジニアとそのチームに非依存的なプリミティブを提供しています。これらのプリミティブはオープンソースパッケージとして利用でき、選択した金融パートナーに接続できます。Formanceはグローバルネイティブであり、世界中の企業に24時間365日サービスを提供し、金融アプリケーションの構築とスケーリングを支援しています。

開発

フレームワークの悪:ライブラリを作るべき理由

2025-04-17
フレームワークの悪:ライブラリを作るべき理由

この記事では、関数型ライブラリの設計原則、特に合成可能性とコールバックの回避に焦点を当てて解説しています。著者は、フレームワークは合成、調査、テストが困難であり、コード構造を制限すると主張しています。対照的に、ライブラリは開発者に多くの制御を与え、インタラクティブな調査を促進し、複数の抽象化レイヤーをサポートします。ゲームエンジンを例に、非同期ワークフローとイベントベースのプログラミングがコールバックの欠点をどのように軽減できるかを示しています。FsLabなどの例は、ライブラリの合成可能性を示しています。最終的に、著者は、硬直したフレームワークではなく、合成可能で簡単に調査できるライブラリを作成することを提唱しています。

C言語のstdint.hに隠された宝石:limits.hを超えた整数型定義

2025-04-17
C言語のstdint.hに隠された宝石:limits.hを超えた整数型定義

このブログ記事は、C言語を学んでいる著者が整数型定義について予期せぬ発見をしたことを記しています。C言語初期において、整数のサイズは異なるアーキテクチャ間で大きく異なっていたため、Microwareのtypes.hのようなカスタム型定義を作成するコンパイラベンダが存在しました。その後、ANSI C標準でstdint.hが導入され、uint32_tのような標準的な型定義や、limits.hのINT_MAXのような最大値定義が提供されました。しかし、著者は最近、stdint.hにはINT8_MAXやUINT32_MAXのような定義も含まれており、特定のサイズの整数型の最大値と最小値を直接定義するために使用でき、これによりコードの移植性が向上し、プラットフォームの違いによって発生するエラーを防ぐことができることを発見しました。

開発 整数型

Haskellの並行処理:スレッド地獄からの脱出

2025-04-17

この記事では、著者がC/C++/Rustによる組込みシステム開発からHaskellへの転向を語り、Haskellの並行処理における利点を強調しています。Haskellはグリーン スレッドとイベント駆動型I/Oを使用することで、従来のスレッドモデルの複雑さを回避します。`async`パッケージとSTM(ソフトウェア・トランザクショナル・メモリ)によって、Haskellは並行タスクに対するよりクリーンで安全なアプローチを提供します。`concurrently`、`race`、`mapConcurrently`といった関数や、`TVar`、`TBQueue`といったデータ構造により、並行処理を簡素化し、デッドロックや競合状態といった一般的な並行処理の問題を回避します。

開発

ピュアNix三角関数ライブラリ:Pythonを捨ててパフォーマンス向上

2025-04-17
ピュアNix三角関数ライブラリ:Pythonを捨ててパフォーマンス向上

手動でのpingテストなしに17個のVPSノード間のネットワークレイテンシを計算するために、著者はNixを使用してノード座標間の物理距離を計算することでレイテンシを近似しようとしました。Nixにネイティブの三角関数がなかったため、彼はsin、cos、tan、arctan、sqrt関数をピュアNixで実装し、Haversineの公式を使用して距離とレイテンシを計算しました。このプロジェクトは、Pythonなどの外部依存関係を回避し、効率性と再現性を向上させます。

開発 三角関数

Kotlinにおける型クラスとデータ検証:Arrowライブラリを用いたアプローチ

2025-04-17
Kotlinにおける型クラスとデータ検証:Arrowライブラリを用いたアプローチ

この記事では、Kotlinにおける型クラスをデータ検証に用いる方法を探ります。Fintechスタートアップのユーザーポートフォリオ検証システムを例に、Arrow KtライブラリとKotlinのコンテキストレシーバーを用いて、汎用的で再利用可能な検証フレームワークを構築する方法を示します。オブジェクト指向アプローチと型クラスアプローチを比較し、保守性と拡張性の観点から型クラスの利点を強調します。また、Arrowの`EitherNel`型を用いた関数型エラー処理についても説明します。`zipOrAccumulate`関数の詳細も解説します。

Spotify卒業!私の音楽セルフホスティングの旅

2025-04-17
Spotify卒業!私の音楽セルフホスティングの旅

Spotifyに飽きてしまい、完璧な代替案を探す旅に出ました。Winamp、foobar2000を試したり、自作のウェブミュージックプレイヤーを作ったりした後、最終的にJellyfinを選びました。Jellyfinはセルフホスティングのメディアサーバーで、ストリーミングサービスに頼ることなく、いつでもどこでも自分の音楽ライブラリにアクセスできます。技術的な設定が必要ですが、驚くほど簡単で、古いパソコンでも十分です。モバイルアプリと組み合わせることで、オフラインでの音楽再生も快適です。これによりデジタルな自立を実現できただけでなく、Immichなどの他のアプリのセルフホスティングも始めました。

ZFS圧縮のパラドックス:論理ブロック vs. 物理ブロック

2025-04-17

圧縮を有効にしたZFSファイルシステム上で、`dd`コマンドを使って作成した256KBのゼロファイルが、奇妙な挙動を示します。`ls -l`では256KBと表示されるのに対し、`ls -s`と`ls -slh`でははるかに小さいサイズ、ほぼゼロと表示されます。これは、ZFSの高効率な圧縮によって物理ブロック数が最小限に抑えられているためです。この記事では、ファイルサイズの測定方法として、論理サイズ(バイト数)、物理ブロック数、論理ブロック数の3つの方法を検討し、POSIXの`st_blocks`フィールドがどのサイズを報告すべきかを明確に指定していないため、ファイルシステム間でファイルを移動すると`st_blocks`の値が変化し、場合によってはファイルサイズが膨張して新しいファイルシステムに収まらなくなる可能性があることを指摘しています。

開発

データベースクエリエンジン:プッシュ型対プル型

2025-04-16

この記事では、データベースのクエリエンジンにおけるプッシュ型とプル型の違いについて詳しく説明します。プル型システムは、イテレータモデルと同様に、コンシューマ主導型であり、データは必要に応じて取得されます。一方、プッシュ型システムはプロデューサ主導型であり、データをダウンストリームオペレータに積極的にプッシュします。プッシュ型システムは、DAG型のクエリプラン(例:SQLのWITH句)の処理に優れており、データを複数のダウンストリームオペレータに効率的にプッシュすることで、冗長な計算と不必要なバッファリングを回避します。しかし、プル型システムは、特定のアルゴリズム(マージ結合やLIMIT句など)の処理に利点があります。この記事では、キャッシュ効率、コードの簡潔さ、およびさまざまなシナリオにおける各モデルの適合性についても検討し、どちらのモデルも普遍的に優れているわけではなく、選択は具体的な要件によって決まるという結論に至ります。

Plandex:大規模プロジェクト向けAIコーディングエージェント

2025-04-16
Plandex:大規模プロジェクト向けAIコーディングエージェント

Plandexは、ターミナルベースのAI開発ツールであり、複数ステップと多数のファイルにまたがる大規模なコーディングタスクに対処するために設計されています。最大200万トークンのコンテキストを直接処理し(ファイルあたり約10万トークン)、tree-sitterプロジェクトマップを使用して2000万トークン以上のディレクトリをインデックスできます。累積的な差分レビューサンドボックスにより、AI生成の変更は準備が整うまでプロジェクトファイルから分離され、コマンドの実行は制御され、容易なロールバックとデバッグが可能になります。Plandexは、Anthropic、OpenAI、Google、オープンソースプロバイダーのモデルを組み合わせ、完全な自律性と細かい制御の両方を提供し、大規模プロジェクトの複雑さにも対応します。プロジェクトを認識するチャットモード、Git統合、開発者フレンドリーなCLIインターフェースを備えています。

プログラム最適化:書き直す前に試すべき4つのアプローチ

2025-04-16

プログラムの実行速度が遅いことは、プログラマーにとってよくある問題です。この記事では、長年の最適化経験に基づき、著者が4つのアプローチを提案しています。1. より良いアルゴリズムを使用する;2. より良いデータ構造を使用する;3. より低レベルのシステムを使用する;4. 精度の低いソリューションを受け入れる。冒泡ソートと選択ソートを例に、アルゴリズム選択の重要性を詳しく説明し、データ構造やプログラミング言語を選択する際には、実際的な状況を考慮する必要があることを強調しています。著者は、最適化を試みる前に、厳密なプロファイリングを行うことの重要性を警告しています。

Codex:ターミナルで動作する軽量コーディングエージェント

2025-04-16
Codex:ターミナルで動作する軽量コーディングエージェント

Codexはターミナルで動作する軽量なコーディングエージェントで、OpenAI APIを使用してChatGPTレベルのコード推論機能を提供します。インタラクティブモードと非インタラクティブモードの両方を備え、コード補完、実行、依存関係のインストール、さらには単体テストの生成を自動化します。堅牢なサンドボックスにより安全性が確保されます。ユーザーは指示と承認モードをカスタマイズでき、簡単なコードの説明から複雑なリファクタリングまで、さまざまなタスクに対応できます。複数のOSに対応し、オープンソースであるため、コミュニティからの貢献も歓迎されます。Codexは開発ワークフローを効率化します。

開発

Llama 3.3ライセンス:あなたは本当に遵守していますか?

2025-04-16
Llama 3.3ライセンス:あなたは本当に遵守していますか?

オープンソースとして販売されているMetaのLlama 3.3ですが、そのライセンスには多くの開発者が見過ごしている可能性のある制限が含まれています。この記事は、モデルまたは派生製品を配布する際に「Built with Llama」を目立つように表示し、派生モデル名に「Llama-」を接頭辞として付ける必要があることを強調しています。さらに、許容可能な使用ポリシーでは、バイアスや不正確さなど、AIシステムの既知のリスクをエンドユーザーに開示する必要があります。著者は、開発者にライセンスを注意深く確認し、遵守するかどうかを決定して、潜在的な法的問題を回避するよう促しています。

開発

OpenAI、ローカルAIコーディングエージェント「Codex CLI」を発表

2025-04-16
OpenAI、ローカルAIコーディングエージェント「Codex CLI」を発表

OpenAIは、ターミナルから実行できるローカルコーディングエージェント「Codex CLI」を発表しました。Codex CLIは、OpenAIのモデル(新しいo3とo4-miniを含む)をローカルコードとタスクに接続し、AIによるコードの記述、編集、ファイル移動などの操作を可能にします。これは、「代理ソフトウェアエンジニア」というOpenAIのビジョンの実現に向けた一歩です。オープンソースで軽量なCodex CLIは、ソフトウェア開発プロジェクト向けに100万ドルのAPI助成金プログラムによってサポートされています。AIコーディングツールには固有のリスクがありますが、Codex CLIはAI支援プログラミングへの新しいアプローチを提供します。

開発

RakuAST:コンパイラフロントエンドの壮大な書き換え

2025-04-16

RakuASTプロジェクトは、Rakuプログラミング言語のコンパイラフロントエンドの完全な書き換えと再設計を行いました。作者は、失敗した仕様テストを体系的に1つずつ修正することで、プロジェクトに取り組みました。これには、プライベートメソッド、メタメソッド、ハイパーメソッド呼び出しなど、Rakuの構文の複雑さを処理することが含まれていました。最大の課題は、Rakuコンパイルプロセス内で必要な複雑なタイミングとシーケンスであり、コンポーネントのコンパイル順序を正確に制御する必要がありました。900回以上のコミットを経て、プロジェクトは主要な目標を達成しました。さらに、コンパイラをブートストラップし、自己コンパイルを可能にしました。これは、循環依存関係の管理と広範な標準ライブラリの複雑さを処理する上でさらに課題をもたらしました。プロジェクトの成功は、コミュニティの複数のメンバーからの貢献によって支えられました。

CVE危機の解決策:プロフェッショナル認定と脆弱性報告の義務化

2025-04-16

MITREのCVE契約の期限切れが近づいていることが論争を巻き起こし、ソフトウェアセキュリティ改善の提案につながっています。現在のCVEシステムは不正確な報告であふれており、価値が低下しています。著者は、スコアではなく脆弱性の属性に基づいたシステムと、プロフェッショナルソフトウェアエンジニア(PSWE)認定を提案しています。決められた時間内に正確に脆弱性を報告しなかった場合、資格が取り消されるため、問題の報告が促進されます。この提案には、将来のPSWEの資金提供とトレーニングが含まれており、アクセシビリティの問題にも対処し、最終的にソフトウェアセキュリティとFOSSプロジェクトの持続可能性にとってウィンウィンとなるシナリオが作成されます。

UCSD p-Systemの復活:クロスプラットフォームコンパイルの伝説

2025-04-16
UCSD p-Systemの復活:クロスプラットフォームコンパイルの伝説

著者は、1970年代のクロスプラットフォームOSとコンパイラであるUCSD p-Systemを再訪します。p-machine仮想マシンにより、PDP-11からApple IIまで様々なマシンへの移植を実現しました。著者は高校時代にApple PascalとUCSD Pascalを使った経験を共有し、Rustでp-machineエミュレータを再構築する計画を立てています。これは、既存ツールのドキュメント不足や古いコンパイラ依存性の問題に対処するためです。

開発

12ファクターエージェント:信頼性の高いLLMアプリケーション構築の原則

2025-04-16
12ファクターエージェント:信頼性の高いLLMアプリケーション構築の原則

この記事では、信頼性が高く、スケーラブルで、メンテナンスしやすいLLM駆動型ソフトウェアを構築するための原則、12ファクターエージェントについて探求します。著者は、既存のエージェントフレームワークは本番環境では不十分であり、多くのいわゆる「AIエージェント」は、主にLLMステップを散りばめた決定論的なコードであると主張しています。著者は、より堅牢なエージェントを構築するための原則を提案し、既存の製品に小型でモジュール化されたエージェントの概念を統合するモジュール化されたアプローチを強調することで、非効率的なグリーンフィールドの書き直しを回避します。これは、AIアプリケーション開発に焦点を当てたエンジニアや起業家にとって貴重な読み物です。

開発

ActorCore:どこでも実行できるステートフルサーバーレス

2025-04-16
ActorCore:どこでも実行できるステートフルサーバーレス

ActorCoreは、ステートフル、AIエージェント、コラボレーティブ、またはローカルファーストアプリケーションを簡単に構築するためのTypeScriptフレームワークです。データベースとORMの必要性を排除し、状態を計算と同一マシンに保存することで、超高速な読み書き速度を実現します。Rivet、Cloudflare、Bun、Node.jsなどにデプロイできます。組み込みの低遅延イベントにより、リアルタイムの状態更新と変更のブロードキャストが可能です。独自のEdgeデータストレージにより、即時的なインタラクションを実現します。現在、OLAP、データレイク、グラフデータベース、高度にリレーショナルなデータには最適ではありませんが、継続的に改善されており、ステートフルサーバーレスアプリケーションの構築とスケーリングのための普遍的な方法を目指しています。

1 2 110 111 112 114 116 117 118 214 215