Engineer's Digest - 忙しいエンジニアのための技術情報ダイジェスト

忙しいエンジニアのための技術情報ダイジェスト。前日の話題をサクッと把握!

2025/04/10 #155 - 今日の技術情報ダイジェスト

Rust言語への愛憎

Rust言語のビルド速度の遅さ、複雑な所有権/ライフタイム、デバッグの困難さ、外部ライブラリとの連携やマルチプラットフォーム対応の難しさといった課題が挙げられていますが、実行速度とメモリ安全性、大規模開発での保守性向上といったメリットも存在し、C/C++経験者にはその利点が理解しやすいとされています。エラーメッセージは慣れると親切だと感じる人もいる一方、学習難易度は高いとされています。

zenn.dev

SiteMCPによるウェブサイトのMCPサーバー化

sitemcpツールは、任意のウェブサイトをAIがアクセス可能なMCP(Model Context Protocol)サーバーに変換するツールで、これによりAIアシスタントはウェブサイトの情報を効率的に取得し、プロンプトで使用できるトークン数を削減、LLMが不足しているマイナーなライブラリ情報などの補完が可能になり、自身のウェブサイトをMCPサーバー化してAIに参照させることもできます。

zenn.dev

『型システムのしくみ』新刊発売情報

4月18日に遠藤侑介著『型システムのしくみ』が発売予定です。TypeScriptを用いて型システムの基礎を学ぶ入門書で、型検査、静的型付け、ジェネリクスといった概念を解説しています。4月16日にはRubyKaigi 2025会場とジュンク堂池袋本店で先行発売され、『型システム入門(TAPL)』を読むための準備としても役立ちます。

www.lambdanote.com

API仕様書を読み取れるMCPサーバー自作による開発効率化

Androidアプリ開発者が、API仕様書を読み込んでLLM(大規模言語モデル)にコンテキストを与えるプロトコルであるMCPサーバーを自作し、AIによるAPI関連コードの自動生成と更新を実現することで、開発速度を大幅に向上させた事例です。このサーバーは、AIに指示を与えるだけでAPI関連コードの生成や更新に対応し、サーバーの実装自体もAIに任せることで開発時間を短縮しています。さらに、MCP化によって、複数のAIツールを使用する際のプロンプト管理コストの削減にも成功しています。

zenn.dev

Model Context Protocol (MCP)入門

Model Context Protocol(MCP)は、AIアシスタントが外部データやツールにアクセスするための共通プロトコルで、JSON-RPCを用いてホスト、クライアント、サーバ間で通信を行います。LINEのようなアーキテクチャを採用し、ホストが複数のクライアントを管理、各クライアントはサーバと1対1で通信し、サーバは特定機能を提供、クライアントはホストからの指示でサーバと通信します。標準的なトランスポート層としてstdioとStreamable HTTPが利用可能です。

zenn.dev

Google CloudのAgent2Agentプロトコル発表

Google Cloudが、複数のAIエージェントを安全かつ効率的に連携させるためのオープンソースプロトコル「Agent2Agent(A2A)」を発表しました。これは、AnthropicのMCPを補完するもので、異なるAIエージェント間の通信と協調作業を容易にし、既存システムとの統合やセキュリティ確保にも配慮した設計となっています。既に50社以上の企業がサポートを表明しており、開発キットも公開されているため、幅広いAIアプリケーションへの適用が期待されます。

www.publickey1.jp

ObsidianとClaude Desktop連携

Obsidianと連携するMCPサーバー「obsidian-mcp」を用いて、Claude Desktop上でObsidianのノートを検索・参照する方法について解説した記事です。Node.jsとnpxコマンドを用いたobsidian-mcpのインストール手順、インストール後の「search_notes」と「read_notes」ツールの使用方法、AIアシスタントとの連携によるノート検索や文章レビューへの活用方法、そしてセキュリティ上の注意点についても言及しています。

dev.classmethod.jp

ソフトウェアエンジニアによる別荘建築事業

ソフトウェアエンジニアの井上恭輔氏が、自然豊かな場所に別荘を提供するスタートアップSANUの執行役員兼CCXOに就任し、同社のシステム開発、既存システム刷新、AI活用による業務効率化、環境負荷の少ない建築手法の導入、技術による体験価値向上などに携わっている様子を紹介しています。自身のワイナリー経営との両立も踏まえ、多様な働き方を推進するSANUでの活動について記述されています。

note.com

マイクロソフトのデータセンター開発縮小

マイクロソフトがインドネシア、英国、オーストラリア、米国の一部州で計画していたデータセンターの建設プロジェクトを縮小または延期したと複数の報道機関が伝えています。これは世界的なデータセンター供給過剰の懸念が背景にある可能性が示唆されていますが、マイクロソフト側は顧客需要への対応は十分であり、投資計画は継続すると説明しています。報道内容には相違点があり、縮小の規模や詳細については情報が錯綜している状況です。アナリストの間でも、供給過剰を懸念する声と、通常のビジネス上の判断と捉える声があり、見解が分かれています。

cafe-dc.com

製品ドキュメントへの質問システム開発

GitHub Copilotと連携し、自社製品ドキュメントを自然言語で質問できるシステムが開発されました。SphinxとreStructuredText形式のドキュメントをLangChainとUnstructuredで処理し、OpenAI Embeddings APIを用いてベクトル化、DuckDB-VSSで高速な検索を実現しています。これにより、従来のドキュメント検索における課題を解決し、正確な回答を迅速に得られるようになりました。OpenAI Embeddings APIの低コスト性も確認されており、今後顧客向けサービスへの展開や、コード生成機能の追加も計画されています。

voluntas.ghost.io

Googleの無料オープンソース脆弱性スキャンツール「OSV-Scanner V2.0.0」公開

Googleが無料のオープンソース脆弱性スキャンツール「OSV-Scanner V2.0.0」を公開しました。本バージョンではコンテナースキャンに対応したほか、.NET、Python、JavaScript、Haskellなど様々な言語の依存関係ファイルの解析、Node modules、Python wheelsなど様々なパッケージ形式への対応、Debian、Ubuntu、Alpineなど複数のLinuxディストリビューションのサポートといった機能強化が図られています。OSV-SCALIBRとOSV-Scannerを用いた脆弱性検知システムの説明も含まれており、Googleとの連携による脆弱性情報に基づいた修正支援も提供されます。

atmarkit.itmedia.co.jp

GitHubの機能とサービス紹介

GitHubのmakenotion/notion-mcp-serverリポジトリはNotion MCP Serverの公式リポジトリであり、GitHubが提供するAIによるコード作成支援(Copilot)、脆弱性検知(Advanced Security)、ワークフロー自動化(Actions)、開発環境(Codespaces)、コードレビュー、課題管理、共同作業機能といった様々な機能を活用して開発・運用されていることが分かります。GitHubは企業規模、用途、業界別に様々なソリューションを提供しており、本リポジトリもその一環として、オープンソース支援(Sponsors)や学習リソースも豊富に提供することで開発を促進していると考えられます。

github.com

ChatGPTのDeep Research機能の使い方

ChatGPTのDeep Research機能の使い方を解説した記事で、Web検索とレポート自動生成機能による大量データ分析やインサイト発見への活用方法、2万文字超のレポート生成事例、様々な分野への適用例、月額料金プランによる利用回数制限などが紹介されています。

forest.watch.impress.co.jp

Thunderbirdの有料クラウドサービス提供開始

オープンソースのメールクライアントとして知られるThunderbirdが、メールサービス「Thundermail」、ファイル共有サービス「Thunderbird Send」、スケジュールツール「Thunderbird Appointment」、AIアシスタント「Thunderbird Assist」を含む有料クラウドサービス「Thunderbird Pro」を発表しました。GmailやMicrosoft 365に対抗するサービスを目指しており、ファイル共有はエンドツーエンド暗号化、AIアシスタントはプライバシーを重視した設計となっています。現時点では有料サブスクリプションのみの提供ですが、将来的には無料プランも検討されているとのことです。具体的な料金や提供開始時期は未発表です。

forest.watch.impress.co.jp

JavaScriptにおけるArrayBufferの理解

JavaScriptにおけるバイナリデータ処理の中核を担うArrayBufferと、それを様々なデータ型として扱うビューオブジェクトであるTypedArrayについて解説しています。ArrayBufferはメモリの連続領域を確保し、TypedArrayはその領域を異なるデータ型(Int8, Uint16など)でアクセス可能にすることで、メモリ効率の良いバイナリデータ処理を実現します。WebGL、Canvas、Web Audio APIといった多くのWeb APIで使用されており、TypedArrayと通常のArrayの違いを理解することで、開発におけるデータ構造の適切な選択が可能になります。

ics.media

小中学生向けデジタル機器安全利用ガイド

製品安全協会(NITE)が、小中学生が使用するデジタル機器の安全な取り扱いについて、水濡れ、キズ、落下による故障や事故の危険性、充電コネクタへの異物混入や破損、電池の傷や変形による発熱・発火の可能性などを指摘し、注意を呼びかけています。子供には機器の故障を大人に報告するよう指導し、故障時は販売店やメーカーへの相談も推奨しています。

internet.watch.impress.co.jp

Ryzen AI Max+ 395搭載ミニPC「GMKtec EVO-X2」予約開始

GMKtecが、Ryzen AI Max+ 395プロセッサを搭載し、GeForce RTX 4090の2倍の速度でLLMを実行可能と謳うAI性能に優れたミニPC「EVO-X2」を発表しました。Windows 11搭載で開発者やクリエイター向けに設計されており、4月15日に予約開始、5月上旬に発売予定です。

pc.watch.impress.co.jp

Google CloudのAgent Development Kitオープンソース公開

Google Cloudが、AIエージェント開発を簡素化するフレームワーク「Agent Development Kit」をオープンソースで公開しました。100行程度のコードで、GeminiやVertex AI、Anthropicなど様々なAIモデルを用いたエージェントを開発でき、マルチクラウド対応やセキュリティ確保のためのMCP、動作制御のためのガードレールも搭載しており、ローカル環境やCloud Runなど様々な環境へのデプロイにも対応しています。

www.publickey1.jp

MCPサーバー利用におけるセキュリティリスク

MCPサーバーはAIアプリケーションと外部データのやり取りを標準化する便利な技術ですが、悪意のあるコードが埋め込まれたサーバーからの情報漏洩、ツール汚染攻撃やラグプル攻撃などの様々な攻撃手法、コマンドインジェクション脆弱性などのサーバー自体の欠陥、トークン窃取によるアカウント乗っ取りといったセキュリティリスクが存在します。これらのリスクを理解した上で利用することが重要です。

zenn.dev

Terraform設計ガイドライン公開

フューチャー技術ブログにて、TIG社が作成したTerraform設計ガイドラインが公開されました。社内でのTerraform利用増加に伴い、設計や記述方法の統一、知見共有を目的としており、コメント方法、環境変数分離、開発フローといったベストプラクティスが、Terraform初心者からリーダーまでを対象に網羅的に解説されています。プロジェクト間の設計・記述方法の差異解消に貢献する内容となっています。

future-architect.github.io

米セキュリティ研究者の失踪と中国の関与疑惑

米国のセキュリティ研究者が失踪し、FBIが自宅を捜索した事件で、中国政府との関連が疑われています。FBIは、中国のスパイ容疑で逮捕された人物のWebサイト作成に関与した疑いで、この研究者を逮捕しました。研究者は中国政府関係者と連携し、影響力作戦に関与していた可能性があり、そのWebサイトは中国政府の宣伝活動に利用されていた可能性も指摘されています。この事件は、米中間の情報戦の激化を示唆し、中国政府による情報操作や影響力拡大への懸念を高めています。

www.itmedia.co.jp

Notion公式MCPサーバーとCursor/Claude連携

Notion公式のマルチチャネルプロトコル(MCP)サーバーが公開されたことにより、CursorやClaudeといったAIツールからNotionを直接操作できるようになりました。Node.js、Notionアカウント、Cursor/Claude Desktopをインストール後、Notionでインテグレーションを作成しアクセストークンを取得、それをCursor/Claude Desktopに設定することで、作成したインテグレーションを対象のNotionページに接続し、Cursor/ClaudeからNotionへの情報取得、ページ作成、コメント追加などが可能になります。

zenn.dev

VSCodeをMCPサーバー化する拡張機能開発

VSCode拡張機能「vscode-as-mcp-server」は、Claude Desktopなどのアプリケーションと連携して、Cline風のコーディング体験を提供します。コード編集、コマンド実行、プレビュー、デバッグといった機能をVSCode内で完結に実行でき、複数VSCodeインスタンスの切り替えや、内蔵MCPサーバーのリレー機能も備えています。Roo Codeの高コストを背景に開発され、その機能設計はRoo Codeを参考にしています。Visual Studio Marketplaceからインストール可能です。

zenn.dev

Notion公式MCPサーバー活用事例

DevelopersIOの記事「Notion公式MCPサーバーを使ってどんなことができるか試してみた」では、Notion公式MCPサーバーとClaude Desktopを用いたNotionとAIの連携について、実際に試した結果が報告されています。Notion API連携設定とClaude Desktopへのサーバー追加を行い、タスク追加・検索などのプロジェクト管理、ナレッジ検索、議事録作成といった作業をAIに指示できることを検証しました。ただし、API制限やインテグレーション設定の複雑さといった課題も見つかっており、今後のNotionとAI連携の更なる発展に期待が寄せられています。

dev.classmethod.jp

Playwright MCPを用いたAIによるブラウザ操作

Microsoftが発表したPlaywright MCPを用いて、生成AIによるブラウザ操作を可能にする方法を解説した記事です。ブラウザ操作テストツールであるPlaywrightとMCPを組み合わせることで、AIがブラウザを操作し、情報抽出などを自動化できます。ClineまたはGitHub Copilotを利用した簡単な環境構築手順も紹介されており、日本語による指示でAIにブラウザ操作を指示できるため、様々な場面でのAI活用が期待されます。

qiita.com

AIモデル進歩に関する懐疑的な指摘

AIモデルの性能評価における問題点を指摘する記事で、近年報告されるAIモデルの進歩が、実際には誇張されている可能性があるという内容です。具体的には、性能評価に用いられるベンチマークの基準が統一されておらず、モデル開発側が都合の良い指標を選んでいる可能性や、既存のベンチマークが実際の応用能力を反映していないこと、数学オリンピックの問題を用いた実験でそのことが示されたことなどが述べられています。より現実的なタスク、例えばポケモンゲームプレイなどを用いた評価指標の必要性も提案されており、AIの社会への影響を鑑みると、その能力を正確に評価する重要性が強調されています。

gigazine.net

Rustの学習難易度に関する考察

Rustは高い学習コストに見合うだけのメリットを持つプログラミング言語ですが、その学習の難しさは、所有権・借用・ライフタイムといった独自のメモリ管理、他の言語経験が逆に妨げになる可能性のある独特の言語仕様・型・トレイト、tokioなどの習得が必要なデファクトスタンダードなライブラリ群、そして未完成なライブラリも多く最新情報への追従が必要な点などにあります。

zenn.dev

文書をパラメータ化してLLMに直接注入する手法

論文で提案された新しいRAG(Retrieval Augmented Generation)手法「DyPRAG」は、従来のRAGが抱える入力文字数が多いとLLMが誤答する問題を、関連文書をLLMのパラメータに変換して直接注入することで解決し、精度向上を実現しています。事前に文書をパラメータに変換する変換器を学習させることで運用コストを削減し、小さいLLMでも効果を発揮し、従来手法と比較して20%以上の精度向上を達成したと報告されています。

zenn.dev

pgliteとpgvectorを用いたベクトル検索実装

pgliteとpgvectorを用いて、ローカル環境で文章の類似度検索を簡単に実装する方法を解説した記事です。小規模なRAG(Retrieval Augmented Generation)システムの構築を想定し、1536次元のベクトルに変換した文章をコサイン類似度で比較します。pgliteのインメモリ機能とドライバ不要な点を活かし、DenoとDrizzle ORMを使った100行程度の簡潔なコード例で実装方法を示しています。

zenn.dev

クラス設計の基礎知識

Javaを用いたアプリケーション開発におけるクラス設計の基礎知識を初級・中級・上級の3段階で解説し、習得シナリオを示した資料です。関心の分離、依存関係、モジュール性の3つの視点からクラス設計の課題と解決策を提示し、入出力と計算判断の分離、中核と周辺の分離、業務特化データ型、契約プログラミング、不変性といった5つのクラスとメソッド設計の技法を解説しており、『ドメイン駆動設計をはじめよう』、『リファクタリング』といった関連書籍も紹介しています。

speakerdeck.com