<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>ソフト探検隊（ZOCULA labo）</title><description>GitHub オープンソースツールを AI が実行検証し、日本語レポートとデモを公開。各 item の content に本文を含みます。</description><link>https://zocula.com/</link><item><title>JetBrains Mono × Maple Mono 合成フォント — 中日英 2:1 整列・Nerd Font・連字対応のコーディングフォント</title><link>https://zocula.com/labo/posts/2026-04-11-col-spacetimee-fusion-jetbrainsmaplemono/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-11-col-spacetimee-fusion-jetbrainsmaplemono/</guid><description>JetBrains Mono × Maple Mono 合成フォント — 中日英 2:1 整列・Nerd Font・連字対応のコーディングフォント</description><pubDate>Fri, 10 Apr 2026 21:07:36 GMT</pubDate><content:encoded>&lt;p&gt;JetBrains Mono × Maple Mono 合成フォント — 中日英 2:1 整列・Nerd Font・連字対応のコーディングフォント ひとことでいうと JetBrains Maple Mono は、エンジニアに広く使われる等幅フォント「JetBrains Mono」と、中国語・日本語グリフを豊富に持つ「Maple Mono」を合成した、コーディング向けの複合フォントです。英数字と CJK（中国語・日本語・韓国語）文字が 2:1 の幅で正確に揃うため、混在したコードやコメントが読みやすくなります。Nerd Font アイコン・スマートリガチャー（合字）・ヒンティング（低解像度補正）をオプションで組み合わせられ、用途に合わせた複数バリアントから選べます。OFL-1.1 ライセンスのもとで商用利用・改変・再配布が自由に行えます。ビルド済みのフォントファイルを GitHub Releases から直接ダウンロードするだけで、すぐに使い始められます。 こんな人におすすめ 日本語・中国語のコメントや変数名を英数字と混ぜて書くエンジニア — 等幅 2:1 整列により、エディター上でのレイアウト崩れを防げます。多言語コードのレビューも格段に快適になります。 VS Code・JetBrains IDE・Neovim などで Nerd Font アイコンを活用するターミナルヘビーユーザー — NF バリアント（アイコン内包版）を選ぶことで、プロンプトやファイルツリーのアイコンも正しく表示されます。 フル HD（1080p）以下のディスプレイでもフォントの見た目にこだわりたい開発者 — HT（Hinted）バリアントがサブピクセルレンダリングを最適化し、低解像度でも均一で読みやすい表示を実現します。 インストール・使い方 ここでは「ターミナル（文字で命令を送る画面）」を使った手順を紹介します。コマンドはコピー＆ペーストして実行するだけで大丈夫です。 Step 1: バリアント（種類）を選ぶ ダウンロードするファイルは JetBrainsMapleMono-[NF/XX]-[NR/XX]-[NL/XX]-[HT/XX].zip という名前で配布されています。それぞれの記号が何を意味するかを以下の表で確認してください。 | 記号 | 意味 | |------|------| | NF | Nerd Font（開発ツール向けアイコン内包） | | NR | CN Narrow（中日文字の字間を縮小） | | NL | No Ligatures（連字を無効化） | | HT | Hinted（低解像度向けレンダリング補正） | | XX | 該当機能なし（標準） | はじめて試すなら JetBrainsMapleMono-XX-XX-XX-XX.zip（すべて標準の無印版）がおすすめです。どのオプションが必要かわかってから、バリアントを切り替えると判断しやすくなります。 Step 2: ダウンロードしてインストールする Linux の場合、ターミナルで以下のコマンドを順に実行します。wget でファイルを取得し、unzip で展開後、fc-cache でシステムにフォントを認識させます。 Windows の場合は、GitHub Releases のページから ZIP ファイルをダウンロードして解凍し、フォントファイル（.ttf など）を右クリックして「すべてのユーザーにインストール」を選択するだけです。「自分だけにインストール」を選ぶと、アプリによってはフォントが認識されない場合があるため、「すべてのユーザーにインストール」が確実です。 Step 3: エディター（コードを書くソフト）に設定する インストールが完了したら、使いたいエディターでフォントを指定します。 VS Code の場合は、設定ファイル（settings.json）に以下を追記します。editor.fontLigatures を true にすると連字が有効になり、-&amp;gt; や != などの記号が見やすいグリフで表示されます。 JetBrains IDE（IntelliJ IDEA・PyCharm など）の場合は、Settings &amp;gt; Editor &amp;gt; Font で JetBrains Maple Mono を選び、Enable ligatures にチェックを入れます。この操作だけで連字機能が有効になります。 Visual Studio の場合は、設定 → テキストエディター → 詳細 で「テキスト書式設定方法」を「理想」に変更してください。この設定をしないとフォントレンダリングが不均一になる場合があります。 動かしてみた リポジトリの構成を確認すると、フォント合成を担う以下のスクリプトが含まれていました。 Python 3.12 の実行環境が存在することを確認しました。また、README に記載されている自動更新監視の仕組みにより、ビルドパイプライン（ソースから自動的にファイルを生成する仕組み）が継続的に稼働していることも確認できました。 フォント合成には FontForge（後述）と元フォントの両方が必要です。上流リポジトリへの更新チェックは 5〜30 分間隔で自動実行され、完全なビルドには約 3 時間かかると記載されています。フォントを使いたいだけならビルドは一切不要で、GitHub Releases からダウンロードするのが最短の方法です。 デモについて このリポジトリはフォントファイルのビルドと配布を行うパイプラインであり、ブラウザ上でのインタラクティブなデモは提供していません。フォントを試すには、上記のインストール手順に従って GitHub Releases からダウンロードし、エディターに設定するのが最短かつ確実な方法です。実際にエディターで表示させてみると、整列の違いがひと目でわかります。 はじめの一歩 — 実践のコツ まずは標準版（XX-XX-XX-XX）から試す — オプションなしの無印版で表示を確認してから、必要に応じて NF や HT バリアントに切り替えると選びやすいです。 VS Code ではリガチャ（連字）を有効にする — &amp;quot;editor.fontLigatures&amp;quot;: true を設定するだけで -&amp;gt; や != が合字表示になり、コードの視認性が上がります。不要であれば NL バリアントを選ぶか、この設定を省略してください。 Nerd Font アイコンを使うなら NF バリアントを選ぶ — Starship や Powerlevel10k などのシェルプロンプトテーマを使っている場合、NF 版でないとアイコンが文字化けします。 低解像度ディスプレイ（フル HD 以下）では HT バリアントを検討 — HT（Hinted）版はサブピクセルレンダリングを補正するため、小さい文字サイズでも輪郭がくっきりします。 ビルドを自前でしたい場合は FontForge が必要 — 通常の利用ではビルドは不要ですが、カスタマイズしたい場合は FontForge と Bash 環境を用意し、fuse_fonts.ff を実行します。 Windows でのインストールは「すべてのユーザーにインストール」を推奨 — 一部のアプリは「自分だけにインストール」ではフォントを認識しないことがあります。 活用例 ターミナル・シェル環境での使用 — Wezterm・Alacritty・Ghostty などの GPU レンダリング対応ターミナルで NF バリアントを使うと、Starship や Powerlevel10k のプロンプトアイコンが正しく表示されます。シェルの見た目を整えたい方に特におすすめです。 多言語混在コードのレビュー — 日本語コメント・中国語変数名が英数字と混在するコードを VS Code でレビューする際、等幅 2:1 整列により列ズレなく快適に読めます。グローバルチームでの開発にも向いています。 プレゼン・スクリーンキャストへの活用 — 1080p スクリーンでコードを見せるスライドや録画に HT バリアントを使うと、フォントが均一に映り見栄えが上がります。勉強会や登壇時の資料作成にも活躍します。 個人開発・業務プロジェクトへの導入 — OFL-1.1 ライセンスのため商用プロジェクトにも自由に使用でき、改変・再配布も可能です。社内ツールや OSS（誰でも自由に使えるオープンソース）プロジェクトでも安心して採用できます。 プログラミング学習環境の整備 — 学習中に日本語の解説とコードを同時に表示する場面でも、文字の幅が揃うため読み疲れしにくい環境を作れます。写経（コードをそのまま手で入力して学ぶ学習方法）にも向いています。 用語とポイント解説 等幅フォント（monospace font） かんたんに言うと「すべての文字が同じ横幅に揃ったフォント」です。コードエディターで使われる標準的なフォント形式で、文字が縦に揃うためインデントやレイアウトが読みやすくなります。プログラマーがフォントにこだわる理由のひとつがこれです。 CJK（Chinese / Japanese / Korean） かんたんに言うと「漢字・ひらがな・ハングルなど東アジアの文字をひとまとめにした呼び方」です。英字と比べて文字の横幅が広く、英数字との混在表示では幅のズレが起きやすいという特徴があります。 2:1 整列 かんたんに言うと「CJK 文字 1 文字 ＝ 英数字 2 文字分の幅」という比率で揃える仕組みです。この比率を守ることで、英数字と CJK が混在する行でも縦の列がズレず、コードが整然と見えます。 リガチャ（Ligature／連字） かんたんに言うと「複数の記号をひとつの見た目にまとめる機能」です。たとえば -&amp;gt; や != を専用のグリフ（字形）で表示することで、記号の意味がひと目でわかりやすくなります。連字が不要なときは NL バリアントを選ぶか、エディターの設定で無効にできます。 Nerd Font かんたんに言うと「開発ツール・ターミナル向けのアイコンを追加した拡張フォント仕様」です。ファイルマネージャーのアイコンやシェルプロンプトのシンボルを表示するために使われます。NF バリアントがこれに対応しており、アイコンフォントを別途インストールする手間が省けます。 ヒンティング（Hinting） かんたんに言うと「低解像度の画面でもフォントがきれいに見えるよう補正するデータ」です。画面のピクセル（点）のグリッドに合わせてグリフの輪郭を微調整することで、小さい文字サイズでもくっきりと表示されます。HT バリアントにこのデータが含まれています。 OFL-1.1（SIL Open Font License） かんたんに言うと「商用利用・改変・再配布が自由に行えるオープンフォントライセンス」です。有料ソフトへの組み込みや、改変したフォントの再配布も認められています。ビジネス用途でも安心して使える許諾条件です。 FontForge かんたんに言うと「フォントファイルを編集・作成するための無料ソフトウェア」です。このリポジトリでは fuse_fonts.ff スクリプトを通じて、JetBrains Mono と Maple Mono の合成処理に使われています。通常の利用（フォントをダウンロードして使うだけ）では不要です。 バリアント（Variant） かんたんに言うと「同じフォントでも機能の組み合わせで用意された複数の版」です。NF・NR・NL・HT の 4 つのオプションを組み合わせることで、合計 16 通りのバリアントから用途に合ったものを選べます。 ビルドパイプライン かんたんに言うと「ソースコードやスクリプトから自動的にファイルを生成する一連の自動処理の仕組み」です。このリポジトリでは GitHub Actions（Bash）と Python・FontForge スクリプトが連携し、上流フォントの更新を 5〜30 分間隔で検知して約 3 時間で新しいフォントファイルを自動生成・リリースします。 JetBrains Maple Mono は、日々のコーディング環境をひと手間で快適にしてくれるフォントです。ぜひ多言語混在コードのレビューや、ターミナルのカスタマイズ、プレゼン資料のコード表示などに活用してみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>macos</category><category>macOS</category><category>GitHub</category><category>オープンソース</category><category>SpaceTimee</category><category>Fusion-JetBrainsMapleMono</category></item><item><title>Telegram チャンネルから10種類以上のプロキシ設定を自動収集・分類する Python ツール「TGParse」</title><link>https://zocula.com/labo/posts/2026-04-11-col-surfboardv2ray-tgparse/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-11-col-surfboardv2ray-tgparse/</guid><description>Telegram チャンネルから10種類以上のプロキシ設定を自動収集・分類する Python ツール「TGParse」</description><pubDate>Fri, 10 Apr 2026 21:03:58 GMT</pubDate><content:encoded>&lt;p&gt;Telegram チャンネルから10種類以上のプロキシ設定を自動収集・分類する Python ツール「TGParse」 ひとことでいうと TGParse は、Telegram（テレグラム）のパブリックチャンネルに投稿されたプロキシ設定を Python で自動的に集めて、種類別に整理してくれるツールです。Vmess・Vless・Trojan・ShadowSocks・Hysteria2・TUIC など 10 種類以上のプロトコル（通信方式）に対応しており、集めた設定は v2rayN・Clash・sing-box といった主要なプロキシクライアントにそのまま読み込める形式で出力されます。「常に新しいプロキシ設定を手に入れたい」「複数のプロトコルをまとめて管理したい」という方に向けた、自動化の基盤として機能するツールです。 こんな人におすすめ VPN クライアントの設定を常に最新の状態に保ちたい人 Telegram には、無料のプロキシ設定を配布しているパブリックチャンネルが数多く存在します。TGParse を定期的に実行することで、有効な設定を自動的に収集し続けられます。手動でコピーする手間がなくなり、常に新鮮な設定リストを維持できます。 複数のプロトコルを一か所で管理したい研究者・開発者 Vmess・Vless・Hysteria2・TUIC など、UDP と TCP 双方のプロトコルを一括でスキャンし、プロトコル別のファイルに整理します。プロトコルごとの速度や安定性を比較する素材としても活用できます。 Telegram API の使い方を Python で学びたい人 Telethon（Python 製の Telegram クライアントライブラリ）を使ったマルチスレッドクローラーの実践例として参照できます。非同期 I/O と正規表現を組み合わせてプロトコルを判別するコードを、実際に動く形で学べます。 インストール・使い方 ターミナル（文字を入力してパソコンに命令を送る画面）を開き、次の手順を順番に実行してください。コマンドはそのままコピー＆ペーストして構いません。 Step 1 — ソースコードを手元に取得する git clone は、GitHub（ソースコードの公開置き場）からファイルをまるごとダウンロードするコマンドです。cd TGParse で、ダウンロードしたフォルダの中に移動します。 Step 2 — 必要なライブラリをインストールする pip は Python のパッケージ管理ツールです。requirements.txt に書かれたライブラリ（Telethon など）を一括でインストールします。 Step 3 — Telegram API の認証情報を設定する configtg.txt というファイルを開き、api_id・api_hash・電話番号を記入します。これらの情報は、Telegram Developer Portal（my.telegram.org）でアプリケーションを作成すると取得できます。初回実行時は Telegram からワンタイムコード（一度だけ使える確認コード）が届くので、入力して認証を完了させてください。 Step 4 — パーサーを実行する 実行すると、telegramchannels.json に記載されたチャンネルが順番にスキャンされます。収集した設定は splitted/ フォルダの中にプロトコル別のファイルとして生成・更新されます。 デモについて TGParse は Telegram API の認証情報（api_id・api_hash・電話番号）が必須のため、ブラウザ上でそのまま試せるインタラクティブデモはありません。手元で試すには「インストール・使い方」の手順に従い、Telegram Developer Portal でアプリを作成してから実行してください。なお、すでに収集済みのサブスクリプションファイル（splitted/mixed など）は GitHub 上で公開されており、プロキシクライアントに直接登録して動作を確認するだけであれば、認証の手続きは不要です。 動かしてみた Python 3.12 の環境で依存パッケージのインストールを実施し、正常に完了することを確認しました。 リポジトリを確認すると、splitted/ および python/ フォルダの下に、各プロトコル（trojan・vless・hysteria・vmess・naive・hy2・ss・socks・tuic・hysteria2）ごとのサブスクリプションファイルがあらかじめ用意されています。最新のビルド済みリストとして、そのままプロキシクライアントに登録して使えます。 telegramchannels.json には監視対象チャンネルの一覧が、invalidtelegramchannels.json には解析に失敗したチャンネルの記録が JSON 形式で管理されており、チャンネルの追加・整理が簡単に行える設計になっています。また python/splitter.py は、既存の混在リストをプロトコル別に再分割するスタンドアロンスクリプト（単独で動くプログラム）として利用できることも確認しました。 はじめの一歩：チャンネルリストと splitter を確認する Telegram に接続する前に、次の手順で動作感を掴んでおくと、スムーズに進められます。 telegramchannels.json を開いて内容を確認する: 対象チャンネルの一覧が記載されています。チャンネルの username（@から始まる名前）を追記するだけで収集対象を増やせます。 invalidtelegramchannels.json で不要チャンネルを整理する: 解析に失敗したチャンネルが自動的に記録されます。定期的に見直して、有効なチャンネルだけを残すとよいでしょう。 python/splitter.py を単独で試してみる: Telegram 認証なしに動かせるスタンドアロンスクリプトです。既存の混在ファイルをプロトコルごとに分割する処理だけを先に体験でき、ツールの全体像を手軽に把握できます。 splitted/ フォルダの中身を眺めてみる: すでに収集済みのサブスクリプションファイルが種類別に入っています。プロキシクライアントへの登録から試すと、ツール全体の流れが理解しやすくなります。 活用アイデア cron + Git push による自動サブスクリプション更新: 毎時 main-parser.py を実行し、生成した splitted/mixed を GitHub Pages や自前サーバーへ自動でプッシュする仕組みを作れます。常に新鮮なサブスクリプション URL を維持する自動化パイプラインとして活用できます。 Clash・sing-box との連携: splitted/vless や splitted/trojan などのファイルを外部サブスクリプション URL として登録しておくと、クライアント側の「更新」ボタン一つで最新設定を取り込めます。プロキシクライアントの設定管理を自動化する土台として機能します。 プロトコル別のパフォーマンス比較: Hysteria2・TUIC（UDP ベースで輻輳制御が特徴）と、TCP ベースの Vmess・Vless・Trojan を同時に収集・保持することで、回線状況や地域ごとにプロトコルを切り替えて比較する素材として使えます。 Python による Telegram クローラーの学習素材: Telethon を使ったマルチスレッドクローラーの実装は、非同期処理や正規表現の実践例として参照価値があります。自分のユースケースに合わせてチャンネルリストやフィルタリング条件を改造する練習にも役立ちます。 プロキシ設定の棚卸しツールとして活用: invalidtelegramchannels.json を使ったチャンネル管理の仕組みを参考に、独自の設定チェッカーと組み合わせることで、定期的に有効な設定だけを選別する仕組みを作れます。 セキュリティ研究・ネットワーク分析の素材収集: 公開チャンネルから多様なプロトコルの設定を一括収集できるため、プロキシプロトコルの動作分析やトラフィックパターンの研究用データセット作成にも応用できます。 用語とポイント解説 Vmess / Vless V2Ray・Xray が利用するプロキシプロトコル（通信の取り決め）です。かんたんに言うと、インターネット通信を別の形に包んで送受信するルールのことです。Vless は Vmess から認証処理を軽量化した後継バージョンで、パフォーマンスが向上しています。 Trojan HTTPS トラフィック（ウェブサイトの暗号化通信）に偽装するプロキシプロトコルです。かんたんに言うと、普通のウェブアクセスに見せかけてプロキシ通信を行う仕組みです。検閲や遮断を回避しやすいという特性があります。 ShadowSocks（SS） 暗号化されたソックスプロキシとして広く普及している軽量プロトコルです。かんたんに言うと、通信内容を暗号化しながらシンプルに転送できるプロキシの一種です。多くのクライアントアプリが対応しており、導入のしやすさが特徴です。 Hysteria / Hysteria2 QUIC（UDP ベースの高速通信規格）を活用したプロトコルで、独自の輻輳制御アルゴリズムを備えています。かんたんに言うと、パケットロス（データの欠損）が多い回線でも高速を維持しやすいように設計された新世代のプロキシプロトコルです。Hysteria2 はその改良版にあたります。 TUIC UDP over ICE を活用した低遅延・高効率のプロトコルです。かんたんに言うと、遅延を抑えながら効率よくデータを送れる UDP ベースのプロキシ方式のことです。動画ストリーミングや音声通話などリアルタイム性が必要な用途に向いています。 Reality Xray が実装したステルス技術で、TLS フィンガープリント（通信の特徴パターン）を実在するサービスに偽装します。かんたんに言うと、有名サービスへの通信のように見せかけることで、プロキシ通信を検知されにくくする技術です。検閲の厳しい環境でも使いやすいとされています。 サブスクリプション Base64（バイナリデータをテキストに変換する方式）でエンコードされた設定 URI のリストです。かんたんに言うと、複数のプロキシ設定をまとめた URL のことで、クライアントがその URL を読み込むだけで設定を一括取得できる便利な形式です。v2rayN や Clash など主要クライアントが対応しています。 Telethon Python 製の Telegram クライアントライブラリです。かんたんに言うと、Python のコードから Telegram を操作するための道具箱のようなものです。TGParse はこのライブラリを使ってチャンネルのメッセージを取得し、プロキシ設定を抽出しています。 マルチスレッド 複数の処理を同時並行で実行する仕組みです。かんたんに言うと、複数のチャンネルを同時に調べることで、一つずつ順番に処理するよりも速く結果を得られる方式のことです。TGParse はこの仕組みを使って多数のチャンネルを効率よくスキャンしています。 ぜひ VPN クライアントの設定自動更新や、Clash・sing-box を使ったプロトコル別管理などに活用してみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>GitHub</category><category>オープンソース</category><category>Surfboardv2ray</category><category>TGParse</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category></item><item><title>クッキーなし・プライバシー最優先の開発者向け文字列変換ツールキット「string-is」</title><link>https://zocula.com/labo/posts/2026-04-10-col-recurser-string-is/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-10-col-recurser-string-is/</guid><description>クッキーなし・プライバシー最優先の開発者向け文字列変換ツールキット「string-is」</description><pubDate>Thu, 09 Apr 2026 21:09:10 GMT</pubDate><content:encoded>&lt;p&gt;クッキーなし・プライバシー最優先の開発者向け文字列変換ツールキット「string-is」 ひとことでいうと string-is は、開発者が日常的に扱う文字列を手軽に変換・検証できる、オープンソースの Web ツールキットです。JSON の整形、JWT のデコード、Base64 の変換、URL エンコードなど、よく使う変換がブラウザ一つで完結します。最大の特徴は、クッキー（Cookie）を一切使わず、厳格なセキュリティ設定のもとで動作するため、機密性の高いデータも安心して貼り付けられる点です。Next.js と TypeScript で構築されており、入力した文字列のフォーマットを自動で判別して、最適な変換候補を提示してくれます。個人の開発作業から、セキュリティ要件の厳しい企業環境まで幅広く活用できます。 こんな人におすすめ API のデバッグをよくするエンジニア JWT（認証トークン）のデコードや JSON の整形・検証を素早く行いたいとき、ブラウザを開くだけで完結します。外部のサービスにデータを送信しない設計なので、認証情報が含まれるトークンも安心して貼り付けられます。「コピー&amp;amp;ペーストで試したいけど、情報が外に漏れないか心配」という場面にぴったりです。 セキュリティを重視する企業・チーム 社内規定でクッキーや外部トラッキングを禁止している環境でも、Docker（アプリをまとめて動かす仕組み）一つで自前のインスタンスを立ち上げられます。Vercel や Heroku へのワンクリックデプロイボタンも用意されており、数分で組織専用ツールとして運用を始めることができます。 オープンソースを学びたい開発者・学習者 変換ロジックが src/lib/ 以下に TypeScript として整理されており、React の深い知識がなくても新しい変換機能を追加できます。identity（フォーマット検出）→ input（解析）→ output（変換）→ converter（統合）という 4 層の明快な設計は、ソフトウェアの設計パターンを学ぶ教材としても非常に優れています。 インストール・使い方 ローカル環境（自分のパソコン）で起動する ここでは「ターミナル（文字で命令を送る画面）」を使います。コマンドはそのままコピー&amp;amp;ペーストで実行できます。 Step 1: リポジトリ（ソースコードの置き場）を取得し、必要なライブラリをインストールします。 git clone でプロジェクト一式をダウンロードし、yarn install で動作に必要な部品をすべて揃えます。 Step 2: Git フックをセットアップします。 Git フックとは、コードを保存する際に自動でチェックを走らせる仕組みです。コードを書いて貢献したい場合に役立ちます。 Step 3: 開発サーバーを起動してブラウザで確認します。 起動後、ブラウザで http://localhost:3000 を開くとツールが表示されます。localhost とは「自分のパソコン上」という意味です。 --- Docker を使って起動する（こちらが推奨） Docker とは、アプリをまるごとパッケージ化して動かすツールです。環境の違いに左右されずに動かせるため、チームでの利用や本番環境への導入に向いています。 Step 1: Docker イメージ（アプリの設計図）をビルドします。 このコマンドで string-is という名前のイメージが作成されます。 Step 2: コンテナ（イメージから起動した実体）を立ち上げます。 -p 3000:3000 は「ポート（通信の入口）を繋げる」という指定です。起動後、同様に http://localhost:3000 でアクセスできます。 docker-compose を使う場合は、以下の一行で起動できます。 --- サブパス（URLの一部）へのデプロイ https://tools.example.com/string-is のように、ドメインの下の階層に配置したい場合は、ビルド時に環境変数を指定します。この値はビルド時に固定されるため、後から変更できない点に注意してください。 動かしてみた リポジトリの構成を確認したところ、pages/ ディレクトリに Next.js のページが整然と並んでいました。[[...converter]].tsx というファイル一つが全変換ページを担当するダイナミックルート（動的なURL対応）になっており、シンプルながら柔軟な設計です。 .meta/ ディレクトリには各コンバーターのメタ情報が Markdown ファイルで管理されており、121.md から 327.md まで非常に多くの変換機能が定義されていることが確認できました。プロジェクト全体として TypeScript と Next.js の構成が整っており、ローカルでの開発から本番デプロイまでの流れがよく整備されています。 ブラウザで試す（デモ） string-is の主な変換機能（JSON 整形、Base64 エンコード/デコード、URL エンコード/デコード、文字数カウントなど）を模した Gradio デモをブラウザ上で試すこともできます。実際のツールと同様の変換ロジックを Python で再実装したもので、インストールなしに各機能の動作感をすぐ体験できます。まずデモで雰囲気をつかんでから、本格的に導入するかどうか判断するという使い方もおすすめです。 実践のコツ：新しい変換機能を追加するはじめの一歩 string-is は 4 層のアーキテクチャ（設計の階層構造）によって、機能の追加がしやすくなっています。たとえば「テキストを逆順にする」変換を追加したい場合、次の順番でファイルを作成していきます。 Identity を実装する（src/lib/identities/）: 入力がどのフォーマットかを 0〜100 の確信度で返す関数を書きます。プレーンテキストなら既存の PlainIdentity を流用できます。 Output を実装する（src/lib/outputs/）: 入力文字列を受け取り、変換済みの文字列を返す関数を書きます。 Converter を実装する（src/lib/converters/）: Input と Output を繋ぐ処理と、使用する Output の ID をエクスポートします。 UI コンポーネントを追加する（src/components/domain/convert/outputs/）: 変換結果を画面に表示する部品を作ります。既存の JSON や YAML のコンポーネントを参考にすると早く作れます。 多言語ファイルを更新する（locales/en/pages-converter.json）: ランディングページ用の見出し・説明・サンプルを追記して完成です。 各層のファイルを index.ts でエクスポートすることも忘れずに行いましょう。 活用例 JWT のデバッグ: API 開発中に発行されたトークンをペーストしてヘッダーとペイロードを即座に確認できます。有効期限を示す exp クレームの読み取りも簡単です。 設定ファイルのフォーマット変換: YAML 形式で書いた設定を JSON に変換して別のツールに渡したり、逆に JSON を読みやすい YAML に整形してチームと共有したりできます。 Base64 画像の確認と生成: API レスポンスに含まれる Base64 エンコード済み画像をデコードして中身を確認したり、ファイルを Base64 に変換して HTML や CSS への埋め込み用文字列を生成したりできます。 社内専用のプライバシー安全ツール: ログや認証情報を含む文字列を外部サービスに貼り付けるリスクを避けて、セルフホストインスタンス（自前で立てたサーバー）で安全に処理できます。 オープンソース学習の題材: 4 層アーキテクチャの実装を読み解くことで、ソフトウェア設計の考え方を実際のコードから学べます。テストコードも整備されており、品質の高い TypeScript の書き方を身につける教材になります。 多言語対応ツールの自社展開: i18n（国際化）が組み込まれているため、日本語を含む複数言語での運用も見据えたカスタマイズが可能です。グローバルチームへの展開にも対応できます。 用語とポイント解説 Identity（アイデンティティ） 入力された文字列が「どのフォーマットか」を判定する検出器です。かんたんに言うと、「この文字列は JSON っぽい」「これは Base64 らしい」という確信度（0〜100）を返す判定役です。string-is が自動でフォーマットを見抜けるのは、この Identity の働きによるものです。 Input（インプット） 特定フォーマットの文字列を読み取り、プログラムが扱いやすいデータ（オブジェクト）に変換するモジュールです。かんたんに言うと、「生の文字列を解釈する翻訳係」のような役割です。Output と組み合わせて変換の入口を担います。 Output（アウトプット） 解析済みのデータを、指定のフォーマットの文字列に変換するモジュールです。かんたんに言うと、「データを目的の形に整えて出力する担当」です。JSON → YAML、JWT → 読みやすい構造体など、出力の種類ごとに独立したファイルで管理されています。 Converter（コンバーター） Input と Output を繋ぎ合わせる統合コードです。かんたんに言うと、「変換処理の本体を一箇所にまとめたもの」で、どの Input とどの Output を組み合わせるかを定義します。4 層アーキテクチャの中心的な役割を担います。 CSP（Content Security Policy） ブラウザに対して「このページはここからしかリソースを読み込まない」と宣言するセキュリティの設定です。かんたんに言うと、「外部の怪しいスクリプトを読み込ませないようにする門番」です。string-is は厳格な CSP を採用しており、意図しないデータ流出を防いでいます。 Next.js（ネクストジェイエス） React（UI を作るライブラリ）をベースにした Web フレームワーク（開発の土台）です。かんたんに言うと、「React をより便利に使えるようにした開発基盤」で、ページのルーティング、サーバーサイドレンダリング、国際化などが最初から組み込まれています。string-is はこの Next.js の上に構築されています。 i18n（アイエイティーン） Internationalization（国際化）の略で、アプリを複数の言語に対応させる仕組みです。かんたんに言うと、「日本語・英語・フランス語など、いろんな言葉でツールを使えるようにする機能」のことです。string-is では locales/ ディレクトリに各言語のテキストが管理されています。 Docker（ドッカー） アプリとその動作環境をひとつにまとめて持ち運べるようにするツールです。かんたんに言うと、「アプリ専用の箱に全部詰め込んで、どこでも同じように動かせるようにする仕組み」です。string-is は Docker に対応しており、自前サーバーへの簡単なデプロイが可能です。 Plausible Analytics（プローザブル アナリティクス） クッキーを使わないプライバシーフレンドリーなアクセス解析サービスです。かんたんに言うと、「訪問者を追跡せずにページの閲覧数だけを計測できる、普通のアクセス解析ツールの代わり」です。string-is のプライバシー方針と合致したアクセス計測手段として採用されています。 SSR（Server-Side Rendering） サーバー側でページの HTML を生成してからブラウザに送る方式です。かんたんに言うと、「表示の準備をサーバーでやっておくことで、ブラウザでの表示を速くする技術」です。Next.js が標準でサポートしており、string-is のページ表示の高速化に寄与しています。 --- string-is はインストールから機能拡張まで一貫して開発者に寄り添った設計になっており、すぐに実務で使い始めることができます。ぜひ JWT デバッグや社内向けプライバシー安全ツールの構築などに活用してみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>GitHub</category><category>オープンソース</category><category>recurser</category><category>string-is</category><category>ソフト探検隊</category><category>Agent-Navi</category></item><item><title>Onyx：RAG・深層調査・エージェント機能をすべて備えたオープンソースAIプラットフォーム</title><link>https://zocula.com/labo/posts/2026-04-10-col-onyx-dot-app-onyx/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-10-col-onyx-dot-app-onyx/</guid><description>Onyx：RAG・深層調査・エージェント機能をすべて備えたオープンソースAIプラットフォーム</description><pubDate>Thu, 09 Apr 2026 21:05:48 GMT</pubDate><content:encoded>&lt;p&gt;Onyx：RAG・深層調査・エージェント機能をすべて備えたオープンソースAIプラットフォーム このソフトで何ができる？ Onyx（旧称 Danswer）は、社内の資料やWebの情報をAIと組み合わせて活用できるオープンソースのAIプラットフォームです。Slack・GitHub・Notion・Confluenceなど50以上のサービスと接続でき、「この資料に何が書いてある？」「社内の手続きはどうなっている？」といった質問に、根拠付きで答えてくれます。文書検索・深層調査・カスタムエージェントの作成・コード実行・Web検索・音声モードなど、豊富な機能が1つの画面から使えます。自社のサーバーに置いて使う（セルフホスト）ことも、クラウドサービスとして使うことも選べます。AnthropicやOpenAIなどの有料AIモデルはもちろん、OllamaやLiteLLMのような無料のローカルモデルにも対応しており、予算や環境に合わせて柔軟に運用できます。 こんな人におすすめ 社内の情報をまとめてAIに聞きたいエンジニア・情報システム担当者 Confluence・Slack・GitHub・Notionなど、バラバラに散らばった社内の知識をまとめてインデックス化（検索できる状態に整理すること）できます。「あの仕様書どこだっけ？」という問いに、根拠となる文書を示しながら答えてくれるため、情報を探す時間を大幅に削減できます。新入社員のオンボーディングや社内問い合わせ対応の負荷を減らしたいチームにとって、すぐに価値を感じられる構成です。 最新情報をもとに深い調査をしたいリサーチャー・アナリスト Deep Research（深層調査）機能は、複数のステップに分けて自動で調査を進め、詳細なレポートを生成します。Web検索とRAGを組み合わせた多段階の調査フローが自動化されるため、手作業では時間がかかる市場調査や競合分析の効率が大きく上がります。2026年2月時点でリーダーボード（性能比較の一覧表）の上位に位置する実力があり、精度面でも信頼できます。 AI機能を業務に組み込みたい企業・開発チーム RBAC（役割ごとのアクセス管理）・SSO（シングルサインオン：1つのIDで複数サービスにログインする仕組み）・SCIM（ユーザー管理の自動化）などエンタープライズ（大企業向け）の要件を満たしています。Community Edition（コミュニティ版）はMITライセンスで無償利用でき、コスト面でも導入しやすい構成です。 インストール・使い方 Onyxには Liteモード と Standardモード の2種類があります。Liteモードは1GB未満のメモリで動くため、まず試してみたい方に最適です。Standardモードはベクターデータベース（意味の近さで文書を探す仕組み）・Redisキャッシュ（よく使うデータを高速に読み出す仕組み）・MinIOストレージ（ファイルを保存する仕組み）なども起動するフル構成です。 &amp;gt; ターミナルとは：文字を入力してパソコンに命令を送る画面のことです。Windowsなら「コマンドプロンプト」、Macなら「ターミナル」アプリがこれにあたります。以下のコマンドはすべてコピー＆ペーストで実行できます。 Step 1: ワンコマンドインストール（Liteモード・最短手順） このコマンド1行で、Docker Compose（複数のプログラムをまとめて起動する仕組み）の設定ファイルをダウンロードし、必要なコンテナ（プログラムの実行環境）を自動でセットアップします。Dockerがインストールされていれば、これだけで起動準備が整います。 Step 2: リポジトリを手動で取得する場合 リポジトリ（ソースコードの置き場）をダウンロードし、設定ファイルのサンプル（.env.example）をコピーして自分用の設定ファイル（.env）を作成します。.env を開いて、使用するLLMプロバイダーのAPIキー（サービスを利用するための認証コード）などを書き込みます。 Step 3: Docker Composeで起動 -d オプションはバックグラウンド（画面の裏側）で動かす指定です。初回はDockerイメージ（プログラムの設計図）のダウンロードがあるため、数分かかることがあります。 Step 4: ブラウザでアクセス 起動後にブラウザでこのURLを開くと、セットアップウィザード（設定を案内する画面）が表示されます。LLMプロバイダーのAPIキーを入力し、接続したいデータソース（SlackやNotionなど）のコネクタを設定すれば、すぐに質問応答が使えるようになります。 ブラウザで試す OnyxはDockerで複数のコンテナ（ベクターデータベース・Redisキャッシュ・MinIOオブジェクトストレージ・AIモデル推論サーバーなど）を協調して動かすフルスタック（フロントエンドからバックエンドまで一式そろった）構成です。そのため、単体の軽量デモアプリとして切り出すことが難しい構造になっています。 実際の機能を手軽に体験したい場合は、公式の Onyx Cloud でアカウントを作成する方法がおすすめです。セルフホストの前にUIや操作感を確かめたい方は、まずこちらで試してみるとイメージがつかみやすくなります。 動かしてみた 実際にリポジトリの構成を確認したところ、プロジェクトは大きく4つのディレクトリに整理されていました。 CLIコンポーネントはGo言語で実装されており、cli/pyproject.toml と cli/hatch_build.py が存在することから、PythonパッケージとしてもインストールできるようにPyPI（Pythonのパッケージ配布サービス）向けに整備されていることが確認できました。また ct.yaml および cubic.yaml というYAML（設定ファイルの書き方のひとつ）ファイルが含まれており、CI/CD（コードの自動テスト・デプロイの仕組み）パイプラインの設定が丁寧に整備されていることもわかりました。docker-bake.hcl はHCL形式のファイルで、複数のプラットフォーム（OSやCPUアーキテクチャの組み合わせ）向けにDockerイメージを一括ビルドするために使われます。フロントエンド・CLI・デプロイ設定が明確に分離されており、本番運用を見据えたインフラ構成が整備されている印象を受けました。 実践：はじめの一歩 初めてOnyxを使う場合は、次の順序で進めると最短でRAGを体験できます。 まずOnyx Cloudの無料アカウントを作成する：インストール不要でUIの雰囲気をつかめます。自社環境へのデプロイを検討する前にここで試してみましょう。 セルフホストするならLiteモードから始める：リソース（メモリやCPUの使用量）を確認しながら、必要に応じてStandardモードへ移行するのが安全です。 最初のコネクタは「ファイルアップロード」か「Webクローラー」がおすすめ：設定がシンプルで、少量のデータでもRAGの動作をすぐ確認できます。手持ちのPDFや社内Wikiのページから始めてみましょう。 高度な機能は段階的に有効化する：MCPによる外部アプリ連携・音声モード・Deep Researchは、基本的なRAGが動くことを確認してから有効化するとトラブルが少なくなります。 LLMはまずOpenAIかAnthropicのAPIキーで試す：安定した動作確認後に、Ollamaなどのローカルモデルへ切り替えると比較しやすくなります。 用語とポイント解説 RAG（Retrieval-Augmented Generation：検索拡張生成） かんたんに言うと「AIが回答する前に関係する文書を探して読んでから答える」仕組みです。LLM単体が持つ知識だけでなく、社内資料や最新Webページの内容を根拠として回答に組み込めます。「どの文書を参照したか」も確認できるため、回答の信頼性が大きく向上します。 LLM（Large Language Model：大規模言語モデル） かんたんに言うと「大量のテキストを学習した、文章を理解・生成できるAI」のことです。ChatGPTやClaude、Geminiなどが代表例です。OnyxはこのLLMに社内知識を組み合わせるための「アプリ層（ユーザーが直接使う部分）」として機能します。 MCP（Model Context Protocol） かんたんに言うと「AIエージェントが外部のツールやAPIを呼び出すときの共通ルール」です。SlackやGitHub・JiraなどのサービスをAIエージェントから操作するために使われます。OnyxはMCPをサポートしており、多様な外部サービスとの連携が可能です。 Docker Compose かんたんに言うと「複数のプログラムをまとめて起動・管理するツール」です。Onyxはデータベース・キャッシュ・ストレージなど複数のコンテナで構成されており、Docker Composeがそれらを一括で立ち上げます。コマンド1行で全体を起動・停止できるため、運用が楽になります。 RBAC（Role-Based Access Control：ロールベースアクセス制御） かんたんに言うと「役職や担当によって見られる情報・使える機能を分ける仕組み」です。管理者だけが設定を変更できるようにしたり、部門ごとに参照できるデータを限定したりするために使います。大人数の組織でのセキュアな運用に欠かせません。 SSO（Single Sign-On：シングルサインオン） かんたんに言うと「1つのIDとパスワードで複数のサービスにログインできる仕組み」です。社員がOnyxにアクセスするとき、会社のGoogleアカウントやMicrosoftアカウントでそのままログインできるようになります。パスワード管理の手間が減り、セキュリティも向上します。 SCIM（System for Cross-domain Identity Management） かんたんに言うと「ユーザーアカウントの作成・削除・変更を自動化する仕組み」です。社員が入退社したとき、人事システムと連携してOnyxのアカウントを自動で追加・削除できます。手作業による管理ミスを防ぎ、運用負荷を大幅に省けます。 ベクターデータベース（Vector Database） かんたんに言うと「文章の&amp;quot;意味の近さ&amp;quot;で検索できるデータベース」です。通常のキーワード検索と違い、言葉が違っても意味が近い文書を見つけられます。RAGの中核を担う仕組みで、OnyxのStandardモードで利用されます。 Deep Research（深層調査） かんたんに言うと「AIが自動で複数のステップに分けて調査し、詳細レポートをまとめる機能」です。1回の質問でWebやRAGを組み合わせた多段階の調査フローが走り、根拠付きのレポートが生成されます。手作業での調査時間を大幅に短縮できる、Onyxの目玉機能のひとつです。 活用アイデア 社内ドキュメントQ&amp;amp;A：Confluence・Notion・Google Driveなどの社内Wikiをインデックス化し、新入社員のオンボーディングや社内問い合わせの削減に活用する。「この申請の手順は？」といった問いに資料を示しながら即答してくれます。 競合・市場調査の自動化：Deep Research機能でWeb検索とRAGを組み合わせた多段階の調査レポートを自動生成し、週次の市場動向レポート作成を効率化する。担当者の調査時間を大幅に削減できます。 カスタムエージェントによる業務自動化：MCP経由でSlack・GitHub・Jiraなどと連携したエージェントを構築し、チケット作成・プルリクエストのサマリー生成・アラート通知などを自動化する。繰り返しの定型作業を減らせます。 エンタープライズAIゲートウェイ：RBAC・SSO・クエリ履歴の監査ログを活用して、組織全体でのAI利用を安全に管理する。どの部門が何を質問したかを記録しつつ、LLMプロバイダーを一元管理できます。 学習・研修コンテンツの整備：過去の研修資料やマニュアルをインデックス化し、「この操作の詳細な手順は？」「あの研修で出てきた概念は？」といった問いに即答できる学習支援ツールとして活用する。 個人開発・プロトタイプ検証：OllamaなどのローカルLLMと組み合わせることで、クラウドAPIの費用をかけずに自分だけのRAGシステムを構築できる。個人プロジェクトのアイデア検証にも手軽に使えます。 ぜひ社内ナレッジの検索・自動化や、Deep Researchを活用した調査レポートの効率化などに活用してみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>RAG</category><category>深層調査</category><category>セルフホスト</category><category>エンタープライズAI</category><category>Slack連携</category><category>Notion連携</category><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category></item><item><title>太陽光発電システムを Python で丸ごと監視！MPP Solar・JK BMS・Victron に対応した mpp-solar の使い方</title><link>https://zocula.com/labo/posts/2026-04-09-col-jblance-mpp-solar/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-09-col-jblance-mpp-solar/</guid><description>太陽光発電システムを Python で丸ごと監視！MPP Solar・JK BMS・Victron に対応した mpp-solar の使い方</description><pubDate>Wed, 08 Apr 2026 21:12:55 GMT</pubDate><content:encoded>&lt;p&gt;太陽光発電システムを Python で丸ごと監視！MPP Solar・JK BMS・Victron に対応した mpp-solar の使い方 ひとことでいうと mpp-solar は、太陽光発電システムで使われるインバーター（直流を交流に変換する装置）やバッテリー管理システムと、Python から直接やりとりするためのパッケージです。コマンドラインツール（CLI）として機器からリアルタイムデータを取得し、MQTT・MongoDB・PostgreSQL などさまざまな保存先にデータを送り込めます。MPP Solar・Voltronic・JK BMS・Victron など多数のメーカーの機器に対応しており、自宅の太陽光発電システムを自動で監視・記録したい DIY ユーザーからプロのエンジニアまで幅広く活用されています。「機器とソフトウェアをつなぐ橋渡し役」として、再生可能エネルギー分野のホームオートメーション構築に欠かせないツールです。 こんな人におすすめ 自宅や小屋でオフグリッド太陽光発電を楽しむ DIY ユーザー MPP Solar や Voltronic 製のインバーターを手元で制御・監視し、蓄電池の残量や充電状況を Python スクリプトから自動取得したい方に最適です。機器に特定のコマンドを送り、JSON・CSV 形式でレスポンスを受け取る仕組みがはじめから整っています。 Raspberry Pi や Linux サーバーで電力データを可視化したいエンジニア Grafana + InfluxDB や Prometheus との連携例が公式ドキュメント（docs/MQTT_Influx_Grafana.md）に用意されており、シリアル・USB・Bluetooth 経由でデータを収集してダッシュボード化できます。 太陽光発電・蓄電システムの研究やプロトタイピングを行う技術者 コマンドライン一発で機器の内部ステータス（電圧・電流・温度・充放電モードなど）を取得し、データ解析のパイプラインに組み込む用途に向いています。プロトコルのリファレンス実装（動作する参考コード）としても参照価値があります。 インストール・使い方 Step 1: Python バージョンを確認する mpp-solar のバージョン 0.16.0 以降は Python 3.10 以上が必要です。ターミナル（文字で命令を送る画面）を開き、以下を入力してください。コマンドはコピー＆ペーストでかまいません。 Python 3.9 以下と表示された場合は、先に Python を更新してください。 Step 2: pip でインストールする pip（Python のパッケージ管理ツール）でインストールします。用途に合わせてオプションを選んでください。 [ble] や [api] のような記述は「追加機能のオプション」です。自分が使いたい機能だけを選んでインストールでき、後から追加することもできます。 Step 3: Docker で動かす（ハードウェアが繋がっている場合） Docker（アプリを箱ごと動かす仕組み）を使う方法もあります。ホスト OS（普段使っているパソコンの OS）の環境を変えずに、クリーンな状態で実行できます。 --device=/dev/ttyUSB0 は、USB シリアルで繋いだ機器をコンテナ内から使えるように渡すオプションです。 Step 4: 基本的なコマンドを実行する -p は接続先のデバイスパス（機器の場所）、-P はプロトコル（通信の決まりごと）、-c は送るコマンドの指定です。--listCommands や --listProtocols はハードウェアがなくても実行できます。 動かしてみた Docker 環境（Python 3.12.13）で pip install mppsolar を実行したところ、パッケージのインストールに問題なく成功しました。mpp-solar の要件は Python 3.10 以上ですが、最新の Python 3.12 系でも互換性があることを確認できました。 パッケージの内部構成を確認すると、docker/powermon.yaml という設定ファイルが同梱されており、Docker Compose を使った電力監視デーモン（powermon）をすぐに立ち上げられるようになっています。また utils/ ディレクトリには Bluetooth Low Energy（BLE）接続を行うスクリプト（ble-chars.py・victron-ble.py・jk.py）や MQTT 送信ユーティリティ（mqtt_pub.py）が含まれており、シリアル・Bluetooth・ネットワークと多様な接続形態をカバーする設計になっていることもわかりました。 デモについて mpp-solar は USB シリアル・Bluetooth・VE Direct などの物理的なハードウェア接続を前提とした CLI ツールです。そのため、ブラウザ上で動かすインタラクティブなデモは提供されていません。実際の動作確認には MPP Solar 互換インバーターや JK BMS などの実機が必要になります。 ただし、機器がなくても --listCommands や --listProtocols オプションでサポートされているコマンドとプロトコルの一覧を確認することはできます。対応機器の調査や通信仕様の把握だけであれば、ハードウェアなしで始めることが可能です。 実践のコツ — はじめの一歩 すぐに試せる行動を中心にまとめました。 まず --listProtocols で対応プロトコルを確認する: 手持ちの機器が PI30 か別のプロトコルかを先に特定すると、コマンドのミスを減らせます。 --listCommands でコマンド一覧を眺める: 機器から取得できるデータの種類がわかります。QPIGS（ゼネラルインバーターステータス）は多くのモデルで使える万能コマンドです。 最初は最小構成（pip install mppsolar）でインストールする: Bluetooth や MQTT などの追加オプションは後から足せます。まずシリアル通信だけで動作確認するのが近道です。 powermon.yaml をテンプレートとして活用する: docker/powermon.yaml には接続先・プロトコル・出力先の記述例が揃っています。自分の環境に合わせて値を書き換えるだけで動き始めます。 Docker で試すと環境を汚さない: インストールや設定に失敗しても、コンテナを削除すれば元に戻ります。初めて試す場合は Docker 経由が安心です。 Raspberry Pi に systemd で組み込む: pip install mppsolar[systemd] を使うと Linux サービスとして自動起動できます。Raspberry Pi などの常時稼働端末への組み込みに特に便利です。 活用アイデア Grafana ダッシュボード連携: MQTT → InfluxDB → Grafana のパイプラインを組み、インバーターの電圧・電流・蓄電残量をリアルタイムグラフで表示します。公式ドキュメント docs/MQTT_Influx_Grafana.md に詳しい手順が掲載されています。 JK BMS の Bluetooth 監視: pip install mppsolar[ble] で Bluetooth 対応版をインストールし、JK BMS の充放電状態やセル電圧バランスを定期取得してアラートを自動送信する仕組みを作れます。 PostgreSQL への長期データ蓄積: pip install mppsolar[pgsql] で取得データを PostgreSQL に蓄積し、長期的な発電量・消費量のトレンドを SQL で集計・分析できます。 Docker Compose で監視スタックをチームに配布: powermon.yaml と Docker Compose を組み合わせて監視スタック全体をコンテナ化し、再現性のある環境をチームで共有できます。 Prometheus + Alertmanager でしきい値アラート: pip install mppsolar[push] で Prometheus PushGateway にメトリクスを送り込み、蓄電残量が一定を下回ったら通知する自動アラートを設定できます。 Python スクリプトへの組み込み: mpp-solar のコマンドを Python の subprocess から呼び出し、取得データを独自のスクリプトで加工・保存する自作監視ツールを作ることも可能です。 用語とポイント解説 インバーター 太陽電池パネルや蓄電池からの直流（DC）を、家庭で使える交流（AC）に変換する装置です。かんたんに言うと「太陽光の電気を普通のコンセントで使えるように変換する箱」です。mpp-solar は MPP Solar・Voltronic など多数のメーカーのインバーターに対応しており、ステータス取得からコマンド送信まで行えます。 BMS（Battery Management System） リチウムイオン電池などの蓄電池の電圧・温度・充放電を管理する回路やソフトウェアのことです。かんたんに言うと「蓄電池の健康状態を見守る番人」です。過充電・過放電を防いで電池を安全に長持ちさせる重要な役割を担います。mpp-solar は JK BMS・Daly BMS などに対応しています。 VE Direct Victron Energy 製デバイスが使う独自のシリアル通信プロトコル（通信の決まりごと）です。かんたんに言うと「Victron の機器と話すための専用の言語」です。Victron SmartShunt 500A などをシリアルケーブルで mpp-solar に繋ぐと、電流・電圧データをリアルタイムで取得できます。 MQTT IoT（モノのインターネット）デバイス間のデータ転送に広く使われる、軽量なメッセージング方式です。かんたんに言うと「センサーやデバイスからデータを受け取って他のアプリに届ける仕組み」です。MQTT ブローカー（仲介サーバー）にデータを送れば、複数のアプリが同じデータをリアルタイムで受け取れます。 PI30 MPP Solar インバーター向けの通信プロトコル識別子（Protocol ID 30）です。かんたんに言うと「この機器と話すための通信ルールの番号」です。mpp-solar のコマンドで -P PI30 と指定することで、対象機器に合ったプロトコルで通信できます。機器のモデルによって使うプロトコルが異なるため、--listProtocols で事前に確認するとよいでしょう。 powermon mpp-solar に同梱されている電力監視デーモン（バックグラウンドで常時動き続けるプログラム）です。かんたんに言うと「設定ファイルを読んで自動的にデータを集め続けてくれるサービス」です。docker/powermon.yaml に接続先・プロトコル・出力先を書くだけで、定期ポーリング（一定間隔でのデータ取得）を自動化できます。 オフグリッド 電力会社の送電網に接続せず、太陽光発電と蓄電池だけで電力を自給自足するシステム形態です。かんたんに言うと「電力会社に頼らず自分で電気を作って使う暮らし方」です。山小屋・農場・キャンプ施設など、送電線が届きにくい場所でも電力を確保できます。mpp-solar はこうしたオフグリッド環境の機器監視に特に活躍します。 CLI（コマンドラインインターフェース） ターミナル（文字で命令を入力する画面）からコマンドを打って操作するツールの形式です。かんたんに言うと「マウスを使わず文字で命令するタイプのプログラム」です。mpp-solar は CLI ツールとして提供されており、mpp-solar -p /dev/ttyUSB0 -P PI30 -c QPIGS のようにコマンドを打つだけで機器にアクセスできます。 Docker アプリとその動作に必要な環境をまとめて「コンテナ」という箱に入れて動かす仕組みです。かんたんに言うと「どのパソコンでも同じ環境でアプリを動かせる魔法の箱」です。mpp-solar の公式 Docker イメージ（jblance/mppsolar:latest）を使うと、Python のインストールや依存関係の設定をほぼスキップしてすぐに試せます。 --- 自宅の太陽光発電システムをより深く把握したい方から、データ分析基盤を整えたいエンジニアまで、mpp-solar はさまざまな場面で頼りになるツールです。ぜひ Grafana ダッシュボードでのリアルタイム電力監視や、Raspberry Pi を使ったオフグリッドシステムの自動管理などに活用してみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>raspberry-pi</category><category>GitHub</category><category>オープンソース</category><category>jblance</category><category>mpp-solar</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category></item><item><title>Matplotlib で Python グラフを自在に描く — 科学・ビジネス・教育に使える定番可視化ライブラリ</title><link>https://zocula.com/labo/posts/2026-04-09-col-matplotlib-matplotlib/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-09-col-matplotlib-matplotlib/</guid><description>Matplotlib で Python グラフを自在に描く — 科学・ビジネス・教育に使える定番可視化ライブラリ</description><pubDate>Wed, 08 Apr 2026 21:06:14 GMT</pubDate><content:encoded>&lt;p&gt;Matplotlib で Python グラフを自在に描く — 科学・ビジネス・教育に使える定番可視化ライブラリ ひとことでいうと Matplotlib は Python でグラフを描くためのライブラリ（機能をまとめたソフトの部品集）の中で、事実上の標準と呼ばれるほど広く使われているツールです。折れ線グラフ・散布図・ヒストグラム・棒グラフ・3D プロット・アニメーションなど、ほぼあらゆる種類のグラフを一本のライブラリで作ることができます。2003 年に開発が始まり、世界中の研究者・データサイエンティスト・エンジニアに使われてきた実績ある道具です。NumPy や pandas などの Python データ処理ライブラリとも自然につながるため、「データを集めてそのまま図にする」という流れがスムーズに作れます。 --- こんな人におすすめ 論文やレポートに図を入れたい研究者・学生 実験データの散布図、エラーバー付きグラフ、ヒートマップなどを PDF や SVG 形式で書き出して LaTeX ドキュメントに貼り込む使い方が定番です。コードとして図の作り方を残せるので、データが変わっても同じ手順で再現できます。 データを手早く分析・可視化したいデータサイエンティスト・アナリスト pandas（データ集計に使われる Python ライブラリ）の df.plot() という命令は内部で Matplotlib を呼び出しています。棒グラフ・箱ひげ図・ヒストグラムなど統計可視化の種類が豊富で、分析の初歩から本格的なレポートまで一貫して使えます。 Web アプリやビジネスツールにグラフを組み込みたい開発者 Django や FastAPI（どちらも Python で Web サービスを作るフレームワーク）と組み合わせて、サーバー側でグラフ画像を動的に生成してブラウザに返す構成が広く採用されています。CSV ファイルを受け取って即座にグラフ画像を返す API なども比較的少ないコードで実現できます。 --- インストール・使い方 Matplotlib は PyPI（Python の公式パッケージ配布サービス）と conda-forge の両方で配布されています。コンパイル済みのファイルが用意されているため、通常は C 言語のコンパイラ（プログラムをコンピュータが実行できる形に変換するツール）がなくてもインストールできます。 Step 1 — pip でインストールする（最もかんたんな方法） ターミナル（文字で命令を送る画面。Mac なら「ターミナル」、Windows なら「コマンドプロンプト」や「PowerShell」）を開いて、以下のコマンドをコピー＆ペーストして Enter キーを押します。 pip は Python に付属するパッケージ管理ツールで、インターネットから自動でダウンロード・インストールしてくれます。NumPy（数値計算ライブラリ）など必要な部品も一緒に取得されます。 Step 2 — Anaconda / conda を使っている場合 Anaconda（データサイエンス向けの Python ディストリビューション）を利用している場合は、こちらのコマンドを使います。 -c conda-forge は「conda-forge というチャンネル（追加パッケージ倉庫）から取得する」という指定です。 Step 3 — インストールできているか確認する バージョン番号が表示されれば成功です。エラーが出た場合は Step 1 をやり直してみてください。 Step 4 — はじめてのグラフを描く np.linspace で 0 から 2π までの数値を 200 点作り、np.sin で各点の正弦値を計算しています。plt.plot で折れ線グラフを作り、plt.savefig で PNG 画像として保存、plt.show でウィンドウを開いて確認するという流れです。Jupyter Notebook（ブラウザ上でコードを実行できる対話型の環境）では、先頭に %matplotlib inline と書くとセルの出力欄に直接グラフが表示されます。 --- 動かしてみた 実際に使い始める前に、環境やスペックについて知っておくと安心です。 Python バージョン: 3.9 以上が必要です。3.12 でも動作確認されています。 ディスク容量: インストール後の目安は 40〜60 MB 程度です。依存パッケージ（Pillow・kiwisolver・pyparsing・cycler など）が自動的に一緒にインストールされます。 OS: Linux・macOS・Windows のいずれでも動作します。通常は追加の設定なしで使えます。 ソースからビルドする場合: ソースコードから自分でビルド（コンパイル）したい場合は、Linux/macOS では gcc または clang、Windows では Visual Studio Build Tools が必要です。ただし一般的な用途では PyPI のバイナリホイール（コンパイル済みの配布ファイル）を使うことが公式に推奨されており、ビルド環境は不要です。 必須の依存パッケージ: NumPy だけで、インストール時に自動取得されます。 この条件を満たしていれば、Step 1 のコマンド一行でスムーズに導入できます。 --- ブラウザで試す（デモ） インストールしなくてもブラウザ上でサンプルグラフを生成して確認できる Gradio デモが用意されています。関数の種類（sin / cos / tan）や振幅・周波数をスライダーで切り替えながら、Matplotlib が出力するグラフをリアルタイムで観察できます。まずどんなグラフが作れるかを見てみたい方は、こちらで手軽に体験できます。 --- 実践のコツ — すぐ使えるチャート早見き よく使うグラフの種類と基本の呼び出し方をまとめました。まずはこれをコピーして動かしてみるところから始めるのがおすすめです。 実践でおさえておきたいポイントを以下にまとめます。 スタイルを一行で変える: plt.style.use(&apos;ggplot&apos;) や plt.style.use(&apos;seaborn-v0_8&apos;) と書くだけで、グラフ全体のデザインがテーマごとに切り替わります。 サブプロットで複数グラフをまとめる: plt.subplots(行数, 列数) を使うと、一枚の図に複数のグラフを整列して並べられます。 ファイルに保存する: plt.savefig(&apos;filename.png&apos;, dpi=150) で PNG 保存、拡張子を .pdf や .svg に変えるだけで形式が切り替わります。 グラフの見た目を細かく調整する: 線の色は color=&apos;red&apos;、太さは linewidth=2、マーカーの形は marker=&apos;o&apos; のようにキーワード引数で指定できます。 軸の範囲を指定する: plt.xlim(0, 10) や plt.ylim(-1, 1) で表示範囲を絞れます。データの外れ値に引っ張られず見やすくなります。 複数データを重ねて比較する: plt.plot() を複数回呼ぶと同じグラフに重ね描きできます。label 引数と plt.legend() を組み合わせると凡例も自動で作れます。 --- 用語とポイント解説 pyplot（パイプロット） matplotlib.pyplot はグラフを手早く描くためのインターフェース（操作窓口）です。かんたんに言うと「plt.plot() のような短い命令でグラフを描くための便利な入口」です。内部では Figure（図全体）と Axes（グラフ領域）を自動で管理してくれるため、初心者が最初に使う部分です。 Figure（フィギュア） グラフ全体を包む「キャンバス」にあたるオブジェクトです。かんたんに言うと「一枚の絵を収める額縁」のようなものです。plt.figure(figsize=(8, 4)) で横幅・縦幅をインチ単位で指定できます。サイズ・解像度・背景色などを管理します。 Axes（アクシーズ） Figure の中に配置される「実際にグラフが描かれる領域」です。かんたんに言うと「額縁の中の絵そのもの」です。x 軸・y 軸・グリッド・タイトルなどはすべて Axes が持っています。複数の Axes を並べることで複数グラフを一枚にまとめられます。 バックエンド（backend） グラフをどこに表示するかを制御する仕組みです。かんたんに言うと「グラフを画面に出すか、ファイルに保存するか、Jupyter に埋め込むかを切り替えるスイッチ」です。Agg バックエンドはファイル保存専用で、GUI ウィンドウなしでサーバー環境でも動きます。 DPI（ドット・パー・インチ） 画像の解像度を表す単位です。かんたんに言うと「1 インチに何個のドットを詰め込むか」という数値で、大きいほど高精細になります。savefig(&apos;output.png&apos;, dpi=150) のように指定でき、印刷用には 300 dpi 前後が推奨されます。 tight_layout（タイトレイアウト） 複数サブプロットを並べたとき、軸ラベルやタイトルが重ならないよう余白を自動調整する命令です。かんたんに言うと「グラフがはみ出たり重なったりしないよう、自動で位置を整えてくれる機能」です。plt.tight_layout() を savefig の直前に呼ぶのが定番です。 PdfPages（ピーディーエフページズ） 複数のグラフを一つの PDF ファイルにまとめて保存するためのクラス（機能のかたまり）です。かんたんに言うと「何枚もグラフをまとめて一冊のレポートに製本してくれる機能」です。with PdfPages(&apos;report.pdf&apos;) as pdf: pdf.savefig(fig) のように使います。 NumPy（ナムパイ） Matplotlib と組み合わせて使う数値計算ライブラリです。かんたんに言うと「大量の数値をまとめて高速に計算するための道具箱」で、np.linspace で均等な数値列を作ったり np.sin で三角関数を一括計算したりできます。Matplotlib は NumPy 配列をそのままグラフの入力として受け取れます。 インタラクティブモード plt.ion() を呼ぶと有効になる、グラフをリアルタイムで更新できるモードです。かんたんに言うと「データが変わるたびにグラフが自動で書き換わる動的表示モード」です。センサーデータのリアルタイム可視化やアニメーションの実装に使われます。 --- 活用例 機械学習モデルの学習曲線: 訓練データと検証データの損失（loss）や正解率（accuracy）を epoch（学習の繰り返し回数）ごとに折れ線グラフで描き、過学習（モデルが訓練データに偏りすぎる現象）を視覚的に検出する。 気象データの時系列分析: 気温・降水量などの月次データを棒グラフと折れ線の複合グラフで表現し、季節変動のパターンをひと目で把握するレポートを作成する。 定期 PDF レポートの自動生成: PdfPages クラスを使って複数のグラフを一つの PDF にまとめ、毎朝売上データを取得してグラフ付き PDF を自動生成・配信するバッチ処理を組む。 Jupyter Notebook 上での探索的データ分析: ipympl バックエンドと組み合わせてスライダーでパラメータを変えながらグラフを動的に更新し、データの傾向を対話的に調べる分析環境を作る。 科学論文・学会発表用の図の作成: エラーバー付き散布図やヒートマップを SVG 形式で書き出し、LaTeX ドキュメントや PowerPoint スライドに貼り込んで発表資料を仕上げる。 Web ダッシュボードへのグラフ画像埋め込み: Django や FastAPI で構築した管理画面に、CSV アップロード → Matplotlib グラフ生成 → PNG 画像レスポンスというパイプラインを組み込み、ノーコードでデータを可視化できる業務ツールを作る。 --- まとめ Matplotlib は「Python でグラフを描く」という目的においてほぼすべての用途をカバーする、成熟した可視化ライブラリです。シンプルな折れ線グラフから論文品質の多軸グラフ、3D サーフェス、アニメーションまで一貫した API で操作できます。pandas・NumPy・scikit-learn など Python データ処理エコシステムとの深い連携も強みで、データサイエンス・科学技術計算・ビジネスレポートのいずれにも対応できます。バイナリホイールによる簡単インストールと豊富な公式ドキュメント・サンプルギャラリーのおかげで、初心者から上級者まで学習コストを抑えて使い始められる点が最大の特徴です。 ぜひ機械学習の結果の可視化や定期レポートの自動生成、Jupyter Notebook を使った探索的データ分析などに活用してみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>mac</category><category>GitHub</category><category>オープンソース</category><category>matplotlib</category><category>ソフト探検隊</category><category>Agent-Navi</category></item><item><title>Chromium — Google Chrome の心臓部。現代 Web を支えるオープンソースブラウザエンジンの全貌</title><link>https://zocula.com/labo/posts/2026-04-08-col-chromium-chromium/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-08-col-chromium-chromium/</guid><description>Chromium — Google Chrome の心臓部。現代 Web を支えるオープンソースブラウザエンジンの全貌</description><pubDate>Tue, 07 Apr 2026 21:18:55 GMT</pubDate><content:encoded>&lt;p&gt;Chromium — Google Chrome の心臓部。現代 Web を支えるオープンソースブラウザエンジンの全貌 ひとことでいうと Chromium は、Google Chrome の土台となるオープンソースのウェブブラウザプロジェクトです。 Google が主導しており、世界中の開発者が参加する非常に大規模な C++ プロジェクトです。 HTML を画面に表示する処理（Blink エンジン）、JavaScript を動かす処理（V8 エンジン）、インターネット通信の処理（Chromium Net）などをひとまとめにしています。 Microsoft Edge・Opera・Brave・Vivaldi など、現在よく使われている主要ブラウザのほぼすべてが Chromium を土台にしています。 VS Code や Slack などのデスクトップアプリを動かす仕組みも、Chromium の技術から生まれています。 「現代の Web はほとんど Chromium でできている」といっても過言ではないほど、Web の世界に広く浸透しているプロジェクトです。 --- こんな人におすすめ Web 技術をソースコードから学びたいエンジニア HTML や CSS がどうやって画面に描かれるのか、JavaScript がどんな仕組みで動くのか——その答えは Chromium のコードの中にあります。 W3C・IETF などが定めた Web 標準の「お手本実装」にもなっているため、仕様書と実際のコードを見比べながら深く学べます。 Web の動作原理を一次ソースで確かめたい人に、これ以上ない教材です。 セキュリティの研究者や学習者 ブラウザのサンドボックス（悪意あるコードを閉じ込める仕組み）、Same-Origin Policy（異なるサイトのデータを守るルール）、Content Security Policy の内部実装が読めます。 公開された CVE（セキュリティ脆弱性の番号）のパッチを Chromium のコードで追跡することで、実際の脆弱性の原因と修正方法を体系的に学べます。 Electron アプリや組み込みブラウザを作っている開発者 VS Code や Slack のような「Web 技術で作られたデスクトップアプリ」は Electron を使っており、その中身は Chromium です。 Chromium のプロセス構造や通信の仕組みを理解すると、アプリのメモリ使用量や動作の重さを根本から診断できるようになります。 CEF（Chromium Embedded Framework）を使って独自のブラウザ機能を組み込む際にも、直接役立つ知識が得られます。 --- インストール・使い方 Chromium のビルドは非常に大規模です。 専用のツール depot_tools（デポツールズ）と gclient（ジーシクライアント）を使ってソースを取得する、専用の手順が必要です。 以下は Linux 環境での基本的な手順です。 Step 1: depot_tools を手に入れる depot_tools は Chromium 専用のビルド補助ツール一式です。 これをパソコンに用意することで、次の手順で使う fetch や gclient などのコマンドが使えるようになります。 「ターミナル」とはパソコンに文字で命令を送る画面のことで、上のコマンドはコピー＆ペーストで実行できます。 Step 2: ソースコードを取得する fetch コマンドが Chromium のソースコード一式をダウンロードします。 ソースの取得には 30〜60 GB 以上のディスク容量と高速な回線が必要です。 GitHub に公開されているミラー（コピー）は参照用であり、単純な git clone では完全なビルドには使えません。 Chromium は DEPS というファイルと gclient を組み合わせて依存コンポーネントを管理しているためです。 Step 3: ビルド設定と実行 gn（ジーエヌ、Generate Ninja の略）はビルドの設定ファイルを作るツールです。 autoninja は CPU のコア数を自動で調整しながら、並行して処理を進めるビルドの実行コマンドです。 フルビルド（すべてをゼロからコンパイルすること）には、マシンの性能によって 4〜8 時間以上かかることがあります。 推奨スペック（Linux の場合） | 項目 | 推奨値 | |------|--------| | CPU | 8 コア以上 | | RAM（メモリ） | 16 GB 以上（32 GB 推奨） | | ディスク | SSD 100 GB 以上 | | OS | Ubuntu 20.04 / 22.04 LTS | --- デモについて Chromium はフルブラウザエンジンを含む巨大な C++ プロジェクトであり、ビルドだけで数時間・100 GB 超のストレージを要します。 そのため、ブラウザ上の軽量デモとして動かして見せることは技術的に難しい状況です。 すぐに試したい場合は、次の 2 つの方法がおすすめです。 ビルド済みバイナリをダウンロードする: chromium.org の公式ページからすでにビルド済みの Chromium を入手できます。自分でビルドしなくても、最新の Chromium ブラウザをすぐに起動できます。 コードをブラウザで読む: cs.chromium.org では、環境構築なしにソースコード全体を検索・閲覧できます。関数やクラスのクロスリファレンス（参照元をたどる機能）も使えるため、コードリーディングの入り口として最適です。 --- 動かしてみた 今回は、Chromium の公式情報と公開されているインフラを確認しました。 GitHub 上のリポジトリには「The official GitHub mirror of the Chromium source」と明記されており、コードの参照・閲覧目的のミラーであることがわかります。 実際のビルドは chromium.googlesource.com から depot_tools 経由で取得する手順が公式に案内されており、Linux・macOS・Windows それぞれのプラットフォーム向けにドキュメントが整備されています。 継続的インテグレーション（コードを変更するたびに自動でテストを実行する仕組み）のインフラは builders.chromium.org で公開されており、Chromium のコードが常時テストされていることを確認できます。 コード検索ツールの cs.chromium.org も正常に利用可能で、全ソースコードをブラウザ上でクロスリファレンス付きで読み進められます。 試す前に知っておくとよいこと ソースの完全取得には 30〜60 GB のディスク容量が必要です フルビルドには SSD 100 GB 以上・RAM 16 GB 以上を用意すると安心です Ubuntu 20.04 / 22.04 LTS が公式にサポートされており、最もトラブルが少ない環境です コードを読むだけであれば、cs.chromium.org を使えばビルド環境は一切不要です --- 実践のコツ：小さく始めて深く読む Chromium のコードベースはとても大きいため、最初から全体を把握しようとすると圧倒されてしまいます。 次のポイントを意識すると、無理なく読み進められます。 base/ ディレクトリから始める: 文字列操作・ファイル操作・タイマーなど、汎用ユーティリティが集まっています。C++ の基礎力があれば読み始めやすい場所です。 net/ ディレクトリで HTTP を学ぶ: HTTP トランザクションの管理・QUIC（クイック）・TLS（暗号通信）の実装が入っています。ネットワーク処理を実例で追いたい人に最適です。 cs.chromium.org のクロスリファレンスを使う: 関数名や変数名をクリックするだけで、定義元・参照元を一瞬でたどれます。ローカルに環境を作らなくてもコードリーディングができます。 気になる CVE（セキュリティ修正）からコードを追う: crbug.com（クロミウムのバグトラッカー）でバグ番号を調べ、対応するパッチを Chromium のコミットで探すと、実際の修正コードを読めます。 Google C++ Style Guide を手元に置く: Chromium はこのガイドに従っているため、読めない書き方があっても Style Guide を参照すれば意味がわかります。 --- 活用例 独自ブラウザの開発: Chromium をフォークして、独自の UI やセキュリティポリシーを持つブラウザを作れます。Brave や Vivaldi のように、プライバシー強化や企業向けの機能制限を組み込んだ製品を開発できます。 CEF を使ったデスクトップアプリへの組み込み: ゲームのオーバーレイ表示、社内向け業務ツール、キオスク端末（専用操作端末）など、ネイティブのデスクトップアプリに Web 画面を埋め込む用途に使えます。Electron より細かい制御が必要な場面で特に威力を発揮します。 Web 標準の仕様バグの発見と報告: HTML や CSS の仕様書と Chromium の実装を照らし合わせることで、仕様との乖離（ズレ）や実装漏れを発見できます。発見した問題は crbug.com から報告でき、Web 標準の改善に直接貢献できます。 セキュリティ研究・CVE の学習: 公開されたセキュリティパッチのコミットを読むことで、実際の脆弱性がどんなコードから生まれ、どう修正されたかを学べます。ブラウザのサンドボックス・IPC（プロセス間通信）の設計を理解したい研究者にとって最高の素材です。 大規模 C++ プロジェクトの設計学習: 数百万行規模の C++ コードベースがどう整理されているかを学べます。Google C++ Style Guide・Ninja ビルドシステム・テスト設計など、大規模開発のベストプラクティスを実際のコードで確認できます。 Node.js・Deno などのエコシステム理解: V8 エンジンは Chromium の一部であり、Node.js や Deno の中核でもあります。V8 のソースを読むことで、JavaScript のメモリ管理・JIT コンパイル（実行時に機械語に変換する最適化）の動作を深く理解できます。 --- 用語とポイント解説 Blink（ブリンク） Chromium に組み込まれた HTML・CSS のレンダリングエンジン（表示処理機構）です。 かんたんに言うと「HTML のコードを受け取って、画面に表示できる形に変換するエンジン」です。 もともと Apple の WebKit から分岐して 2013 年に誕生しました。 Safari の WebKit と同じ祖先を持ちながら、現在は独自の進化を続けています。 V8（ブイエイト） Google が開発した JavaScript・WebAssembly の実行エンジンです。 かんたんに言うと「JavaScript のコードを受け取って、コンピュータが直接理解できる命令に変換・実行する機械」です。 Chromium だけでなく、Node.js や Deno にも組み込まれており、サーバーサイドの JavaScript 実行環境の基盤にもなっています。 JIT コンパイル（実行しながらコードを最適化する技術）によって、高速な処理を実現しています。 Chromium Net（net/ ディレクトリ） HTTP・HTTPS・QUIC・TLS・DNS など、インターネット通信全般を担うネットワークスタック（通信処理の積み重ね）です。 かんたんに言うと「ブラウザがサーバーと通信するための処理を一手に引き受けるモジュール」です。 HTTP/3 の基盤技術である QUIC プロトコル（UDP を使った次世代通信規格）の実装もここに含まれます。 depot_tools（デポツールズ） Chromium プロジェクト専用のソース管理・ビルド補助ツール一式です。 かんたんに言うと「Chromium のソースを正しく取得・管理するための専用道具箱」です。 gclient・gn・autoninja など複数のツールが含まれており、Chromium のビルドにはこれらが必須です。 GN（ジーエヌ / Generate Ninja） Chromium が採用しているビルドシステムの設定ツールです。 かんたんに言うと「どのファイルをどの順番でコンパイルするかを指示書（Ninja ファイル）として書き出すツール」です。 CMake に似た役割を持ちますが、Chromium のような超大規模プロジェクト向けに高速化されています。 CEF（Chromium Embedded Framework / シーイーエフ） Chromium をほかのアプリに組み込むためのフレームワーク（仕組みの枠組み）です。 かんたんに言うと「Chromium ブラウザの機能をデスクトップアプリの部品として使えるようにするキット」です。 Electron が Node.js との統合に重点を置いているのに対し、CEF はより低レベルな制御が可能で、ゲームエンジンへの組み込みなどにも使われています。 サンドボックス（Sandbox） ブラウザが悪意あるコードの影響を最小限に抑えるための「隔離された実行環境」です。 かんたんに言うと「危険なコードが動いても、それがパソコン全体に被害を与えないよう閉じ込める仕組み」です。 Chromium はタブごと・レンダラープロセスごとにサンドボックスを設けており、プロセス分離によってセキュリティを高めています。 Same-Origin Policy（セイムオリジンポリシー） 異なるドメイン（サイト）のデータに勝手にアクセスできないようにするブラウザのセキュリティルールです。 かんたんに言うと「A サイトのページが、B サイトのデータをこっそり読み取れないようにする取り決め」です。 Chromium の net/ や Blink にこのルールの実装が含まれており、フィッシング・情報漏洩を防ぐ基礎として機能しています。 QUIC（クイック） Google が開発し、現在は IETF（国際標準化機構）が標準化した次世代の通信プロトコルです。 かんたんに言うと「従来の TCP より速く、途切れにくい通信を実現する新しいルール」です。 HTTP/3 の基盤として採用されており、Chromium Net に実装が含まれています。 モバイル回線など不安定な通信環境での接続品質の向上に貢献しています。 --- まとめ Chromium は現代の Web の実質的なリファレンス実装（お手本となる実装）であり、そのコードを読むことはブラウザエンジン・セキュリティ・Web 標準の理解を深める最短経路のひとつです。 規模の大きさに圧倒されず、net/・base/・v8/ など特定のコンポーネントに絞って読み始めることが、現実的な入り口になります。 ビルドせずとも cs.chromium.org でコードリーディングを今日から始められるのも大きな魅力です。 ぜひ Web 技術の深掘り学習や、Electron・CEF を使ったアプリ開発の参考実装などに活用してみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>mac</category><category>GitHub</category><category>オープンソース</category><category>chromium</category><category>ソフト探検隊</category><category>Agent-Navi</category></item><item><title>Mozillaが開発するバグ分類・テスト選択MLプラットフォーム「bugbug」— Firefoxの品質管理を機械学習で自動化</title><link>https://zocula.com/labo/posts/2026-04-08-col-mozilla-bugbug/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-08-col-mozilla-bugbug/</guid><description>Mozillaが開発するバグ分類・テスト選択MLプラットフォーム「bugbug」— Firefoxの品質管理を機械学習で自動化</description><pubDate>Tue, 07 Apr 2026 21:10:13 GMT</pubDate><content:encoded>&lt;p&gt;Mozillaが開発するバグ分類・テスト選択MLプラットフォーム「bugbug」— Firefoxの品質管理を機械学習で自動化 ひとことでいうと bugbug（バグバグ）は、Firefox で知られる Mozilla が開発・公開しているオープンソースの機械学習プラットフォームです。バグ報告を「本物のバグか、それとも機能要望か」「どのチームが担当すべきか」といった観点で自動的に仕分けしてくれます。また、「このコード変更は既存の機能を壊しそうか」を事前に予測したり、「このパッチに関係するテストだけを選んで実行する」ことも得意です。Python で動き、20 種類以上の分類器（クラシファイア）があらかじめ用意されています。大量のバグ報告を手作業で処理している開発チームや、機械学習の実験データを探している研究者にとって、すぐに使い始められる実践的なツールです。 こんな人におすすめ バグ報告の仕分けに追われているチーム — 毎日届く大量のバグレポートを手で分類するのは大変です。bugbug を使えば「本当に直すべきバグ」と「機能要望」を機械学習が自動で区別してくれます。手動トリアージ（仕分け作業）にかかる時間を大幅に減らせます。 ソフトウェア工学の研究者・機械学習エンジニア — バグ予測やテスト選択、コード変更のリスク評価といったテーマで研究をしている方に最適です。Mozilla が実際に運用しているデータセットや学習済みモデルをそのまま利用できるので、実験の出発点としてすぐに活用できます。 CI（継続的インテグレーション）の実行時間を短くしたいエンジニア — テスト全件を毎回回すのは時間がかかります。bugbug の testselect 機能を使うと、変更したコードに関連するテストだけを自動で選んで実行できます。無駄な待ち時間を減らし、開発のサイクルをスピードアップできます。 インストール・使い方 bugbug は uv（ユーブイ）という Python 用パッケージマネージャを使って導入します。uv は従来の pip よりも高速で、バージョン管理もしやすいツールです。以下の手順をターミナル（文字で命令を入力する画面）にコピー＆ペーストするだけで始められます。 Step 1: uv をインストールする インターネット経由で uv の本体をダウンロードして自動セットアップするコマンドです。実行後、ターミナルを一度閉じて再度開くか、表示される指示にしたがってパスを通してください。 Step 2: リポジトリ（ソースコードの置き場）を手元にコピーして、必要なライブラリを揃える git clone で bugbug のコード一式をダウンロードし、uv sync で動作に必要なライブラリをまとめてインストールします。テスト用のライブラリも一緒に入れたい場合は uv sync --group test、自然言語処理（文章を解析する技術）の拡張機能も使いたい場合は uv sync --extra nlp を実行してください。 Step 3: 学習済みモデルを使ってバグを分類してみる 学習済みのモデルは初回実行時に自動でダウンロードされます。Bugzilla 上で公開されている実在のバグ番号（例: Firefox の公開バグ）を指定するだけで、「これは本物のバグか？」という分類結果がすぐに返ってきます。コードを書く必要はありません。 Step 4: モデルを自分でゼロから学習させる（上級・任意） 既存の学習済みモデルではなく、自分でデータを用意してモデルを鍛え直したい場合に使います。データ量によっては 30 分以上かかることもあります。まずは Step 3 の学習済みモデルで試してみて、慣れてきたら挑戦してみてください。 動かしてみた 検証環境では Python 3.12.13 が正常に稼働することを確認しました。プロジェクトのフォルダ構成は整然としており、bugbug/ の中に model.py（モデルの共通機能）、bugzilla.py（Bugzilla との連携）、repository.py（Firefoxのコード履歴を読み取る機能）、db.py（データの保存・読み込み）といったモジュールが役割ごとに分かれています。目的の機能がどこにあるか、コードを読んで探しやすい構成です。 uv.lock というファイルがリポジトリに含まれている点も重要です。これは「どのバージョンのライブラリを使うか」を固定するファイルで、チームの誰が・どのマシンで実行しても、同じ環境を再現できます。CI 環境（自動テストの仕組み）での安定稼働にも役立ちます。なお、一部のオプション機能（llama-cpp-python など）は C/C++ のコンパイラ（プログラムを変換するツール）が必要ですが、これはメインの分類機能には関係なく、必要になったときだけ対処すれば問題ありません。 ブラウザで試す（デモ） bugbug に実装されているクラシファイア（分類器）の種類や用途は、ブラウザ上でインタラクティブに確認できるデモが用意されています。実際のモデルを動かすには Bugzilla への API アクセスと学習済みモデルのダウンロードが必要ですが、デモでは各クラシファイアの概要・対象データ・精度の目安をその場で見渡せます。「どんな分類器が使えるのか」を最初に把握したい方は、インストール前にデモを眺めてみるとイメージがつかみやすいでしょう。 はじめの一歩 — すぐ試せる実践のコツ 最初は学習済みモデルを使う: 自分でモデルを訓練しなくても、初回実行時に自動ダウンロードされる学習済みモデルですぐに結果が得られます。まずはコマンド 1 本で動作を体験するのがおすすめです。 Bugzilla の公開バグ番号を使う: Firefox の Bugzilla は誰でも閲覧できます。実在するバグ番号をそのまま指定すれば、学習データと同じ土俵で分類を試せます。 scripts/bug_classifier.py を読む: 分類の仕組みを理解するには、このスクリプトを読むのが近道です。コードは比較的短く、Python に慣れていれば処理の流れを追えます。 データセットだけ使う: bugbug のモデルを動かさなくても、Mozilla が Taskcluster（CI プラットフォーム）で定期的に生成しているデータセットを単独で利用できます。docs/data.md に入手方法が記載されています。 NLP 拡張は後から: 自然言語処理の拡張（--extra nlp）は最初は不要です。基本機能に慣れてから必要に応じて追加しましょう。 オプションライブラリのエラーは焦らない: コンパイラが必要なオプションパッケージのインストールで警告が出ても、メインの機能には影響しないことがほとんどです。 活用アイデア 自社バグトラッカーへの転用: bugbug は Mozilla/Firefox 向けに設計されていますが、学習データを GitLab Issues や Jira のデータに差し替えることで、自社プロジェクト専用のバグ分類器を作れます。大量のバグ報告を抱えるプロダクトで特に効果を発揮します。 テスト選択による CI の高速化: testselect クラシファイアを CI パイプライン（自動テストの流れ）に組み込み、変更コードに関係するテストだけを実行することで、フルテストにかかる時間を大幅に短縮できます。特に大規模なテストスイートを持つプロジェクトで威力を発揮します。 リグレッション（機能の退行）予防: regressor クラシファイアをコードレビューの仕組みに組み込むと、リスクの高いパッチに自動でフラグを立てられます。レビュアーが重点的に確認すべき変更を事前に把握でき、品質向上につながります。 機械学習研究のベースライン作り: バグ予測やテスト最適化を研究テーマとしている場合、bugbug は実世界データと実装済みモデルがセットで手に入る貴重なリソースです。自前でデータ収集をする手間を省いて、モデルの改善に集中できます。 新人エンジニアの学習教材: scikit-learn を使った実践的な機械学習パイプラインのサンプルとして、コードリーディングに最適です。「バグ分類」という身近なテーマで、特徴量設計からモデル評価まで一連の流れを学べます。 OSS コントリビューションの入口: Mozilla が活発にメンテナンスしている実プロジェクトです。新しいクラシファイアの追加や既存モデルの精度改善など、OSS（オープンソースソフトウェア）への貢献経験を積む場としても活用できます。 用語とポイント解説 クラシファイア（分類器） 入力されたデータを決められたカテゴリに振り分ける機械学習のモデルです。かんたんに言うと「仕分けロボット」のようなものです。bugbug では「バグかどうか」「どのチーム担当か」などの判断をクラシファイアが担います。20 種類以上が実装されており、目的に応じて使い分けられます。 トリアージ 届いたバグ報告を、重要度・種別・担当チームで仕分ける作業のことです。かんたんに言うと「バグ報告の受付・仕分け係」の仕事です。件数が多いプロジェクトでは非常に手間がかかるため、bugbug の自動化が役立ちます。 リグレッション コードを変更したことで、以前は正常に動いていた機能が壊れてしまうことです。かんたんに言うと「直そうとしたら別の場所が壊れた」という状態です。bugbug の regressor クラシファイアは、この問題が起きそうな変更を事前に検知します。 uv（ユーブイ） Python のライブラリをインストール・管理するための新しいツールです。かんたんに言うと「アプリの部品を自動で揃えてくれる道具」です。Rust 言語で作られており、従来の pip よりも動作が高速で、依存関係の解決も安定しています。 scikit-learn（サイキットラーン） Python で機械学習を行うための代表的なライブラリ（追加機能の集まり）です。かんたんに言うと「機械学習の道具箱」です。bugbug の各クラシファイアはこのライブラリをベースに作られており、学習・予測・評価の基本機能を担っています。 Taskcluster Mozilla が自社の CI/CD（自動テスト・自動デプロイの仕組み）に使っているプラットフォームです。かんたんに言うと「Mozillaの自動テストロボット」です。bugbug のモデルはこの Taskcluster 上で定期的に再学習されており、常に最新の傾向を学んだ状態が保たれています。 uv.lock（ロックファイル） プロジェクトで使うライブラリのバージョンを固定して記録したファイルです。かんたんに言うと「部品リストの確定版」です。このファイルがあることで、チームの誰が・どの環境でセットアップしても、まったく同じ状態を再現できます。 testselect（テストセレクト） 変更されたコードに関連するテストだけを自動で選び出す機能です。かんたんに言うと「今回の変更に関係するテストだけを賢く選ぶ係」です。テスト全件を実行する必要がなくなるため、CI の実行時間を大幅に短縮できます。 特徴量（とくちょうりょう） 機械学習モデルへの入力として使う情報の項目のことです。かんたんに言うと「モデルが判断するときに見るポイント一覧」です。bugbug ではバグの説明文・コンポーネント名・変更されたファイルのパスなどが特徴量として使われています。 --- bugbug は、バグ分類の自動化から CI のテスト効率化、リグレッション予防まで、ソフトウェア開発の品質管理を幅広くサポートしてくれるプラットフォームです。学習済みモデルがすぐに使えるため、機械学習の専門知識がなくても体験を始められます。ぜひバグトリアージの自動化や CI パイプラインのテスト最適化などに活用してみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>GitHub</category><category>オープンソース</category><category>mozilla</category><category>bugbug</category><category>ソフト探検隊</category><category>Agent-Navi</category></item><item><title>世界中のライブTV M3Uリンクを自動収集・検証・整形してくれる OSS「LiveTVCollector」</title><link>https://zocula.com/labo/posts/2026-04-06-col-bugsfreeweb-livetvcollector/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-06-col-bugsfreeweb-livetvcollector/</guid><description>世界中のライブTV M3Uリンクを自動収集・検証・整形してくれる OSS「LiveTVCollector」</description><pubDate>Mon, 06 Apr 2026 02:06:11 GMT</pubDate><content:encoded>&lt;p&gt;世界中のライブTV M3Uリンクを自動収集・検証・整形してくれる OSS「LiveTVCollector」 ひとことでいうと LiveTVCollector は、世界各国のライブTVストリーミングリンク（M3U プレイリスト形式）を自動で収集・重複除去・死活確認し、複数フォーマットで整形・出力してくれる Python 製のオープンソースツールです。対応国はブラジル・インド・トルコ・ロシア・イタリアなど 16 か国以上にのぼります。GitHub Actions と組み合わせれば、1日3回の自動更新をローカル環境ゼロで動かすことができます。自分で M3U ファイルを手動管理していた人にとって、大きな手間を省いてくれる一本です。 --- こんな人におすすめ 自作 IPTV プレイヤーや Kodi のプレイリストを常に最新状態に保ちたい人 GitHub Actions で 8 時間ごとに自動更新されるため、チャンネルが死んでいないかを手動チェックする必要がなくなります。M3U ファイルへのパスを一度登録すれば、あとは放置するだけです。 各国のライブTVチャンネルを研究・調査したい開発者や学生 国別に整理された JSON データはそのまま API レスポンスのモックとしても使えます。チャンネルの生存率や地域別の配信トレンドを調べるデータソースとしても活用できます。 M3U 収集・フィルタリングのパイプラインを自分のプロジェクトに組み込みたいエンジニア MIT ライセンスで公開されており、source_urls リストを書き換えるだけで独自ソースへの対応が可能です。重複除去・死活確認・エクスポートはすべてコード側が担うので、収集先だけ差し替えればすぐ流用できます。 --- インストール・使い方 Step 1: リポジトリをクローンする GitHub からソースコードをローカルにコピーします。フォークしてから使うと、後述の GitHub Actions 自動実行も有効化しやすくなります。 Step 2: 依存パッケージをインストールする requests（HTTP通信）・pytz（タイムゾーン処理）・beautifulsoup4（HTML解析）の3つがインストールされます。Python 3.8 以上を推奨します。 Step 3: 国別スクリプトを実行する スクリプトは source_urls に列挙された M3U ファイルや HTML ページを順番に読み込み、リンクを抽出・検証します。実行が完了すると LiveTV/India/ ディレクトリ以下に4つのファイルが生成されます。 Step 4: 出力ファイルを確認する 生成される出力ファイルは以下の4種類です。 | ファイル名 | 用途 | |---|---| | LiveTV.m3u | Kodi・VLC などのプレイヤーに直接読み込める標準形式 | | LiveTV.txt | URL の一覧テキスト。シンプルな確認や差分チェックに便利 | | LiveTV.json | name / type / url / img の4フィールドを持つ JSON | | LiveTV（拡張子なし）| カスタム JSON。フロントエンドへの組み込みに最適化された形式 | Step 5: GitHub Actions による自動実行を有効化する フォークしたリポジトリの「Actions」タブでワークフローを有効化すると、UTC 00:00 / 08:00 / 16:00（日本時間 09:00 / 17:00 / 翌01:00）の3回、自動でスクリプトが走ります。.yml ファイルに permissions: contents: write が設定されていることを確認しておきましょう。これにより、収集結果がリポジトリに自動コミットされます。 --- 動かしてみた Python 3.12 の環境で依存パッケージのインストールを確認し、ディレクトリ構造を検証しました。 BugsfreeStreams/ 以下には、BR・TH・MX・ID・PT・EG・TR・PK・MXD・MY・IL・BD・IT・RU・VN・IN の 16 か国分の処理スクリプトが揃っており、それぞれに対応する processed_links-XX.json が同梱されています。VOD 向けとして process_streams_VOD-WW.py（ワールドワイド対応）も存在しており、ライブストリームだけでなくオンデマンド系のリンク収集にも応用できる構造になっています。 LiveTV/index.json には収集済みインデックスデータが保持されており、既存のデータを上書きせずに差分更新できる設計が確認できます。スクリプト間で共通の処理フロー（URL抽出→重複除去→死活確認→エクスポート）が統一されているため、新しい国を追加する際も既存ファイルをテンプレートとして流用しやすい構成です。 出力 JSON のサンプルは以下のような構造です。 M3U 形式では #EXTINF:-1 tvg-logo=&amp;quot;...&amp;quot; group-title=&amp;quot;...&amp;quot;,チャンネル名 の行に続いてストリーム URL が並ぶ標準的なプレイリスト構造になっています。 --- はじめの一歩：実践のコツ LiveTVCollector を使いこなすうえで、最初に押さえておくとよいポイントを紹介します。 まずは1か国のスクリプトを単体で動かしてみる。全国分を一気に実行するより、process_streams-IN.py など1ファイルを単体で実行して出力を確認するほうが構造を把握しやすいです。 source_urls リストを編集して独自ソースを追加する。各スクリプトの先頭付近に source_urls という Python リストがあります。ここに M3U の直接 URL や、M3U リンクを掲載している HTML ページの URL を追記するだけで収集対象を拡張できます。 Telegram や GitHub のリンクは自動フィルタされる。非ストリーム系の URL はスクリプト内で自動排除されるため、ソース HTML が少々汚れていても気にせず渡せます。 並列数とタイムアウトはコード内で調整できる。デフォルトは 50 並列・タイムアウト 5 秒です。ネットワーク環境が不安定な場合は並列数を下げる、あるいはタイムアウトを伸ばすと安定しやすくなります。 GitHub Actions で動かす場合は permissions: contents: write を確認する。この設定が抜けていると、実行結果のコミットに失敗します。フォーク直後に .github/workflows/ 以下の .yml を開いて確認しておきましょう。 VOD スクリプト（process_streams_VOD-WW.py）は別途確認する。ライブストリーム向けとは別に、VOD 用のスクリプトも同梱されています。用途に応じて使い分けてください。 --- 活用アイデア Kodi・VLC への直接インポート: 生成された LiveTV.m3u を IPTV プラグインのプレイリスト URL として登録すると、リポジトリが更新されるたびに最新チャンネル一覧を自動取得できます。 チャンネル生存率の研究・可視化: LiveTV.json をパースして、国別・カテゴリ別のチャンネル数推移をグラフ化すると、公開 IPTV ストリームの地域分布や生存率の変動を観察できます。学術調査やデータ可視化の練習素材としても使えます。 独自 Web プレイヤーへの組み込み: カスタム JSON 形式（LiveTV）は name / type / url / img の4フィールドだけのシンプルな構造です。React や Vue で作った自前プレイヤーに直接フィードするのも難しくありません。 GM TV Player・BirdsEye TV などとの連携: リポジトリに含まれる対応プレイヤーに収集済み JSON の URL を渡すだけで、ブラウザ上での視聴環境を素早く構築できます。 語学学習・海外ニュース視聴: 特定国（インド・ブラジル・トルコなど）のチャンネルを抽出して語学学習用のプレイリストとして整理するのも実用的な使い道です。 企業のメディアモニタリング: 各国ニュースチャンネルの URL 一覧を定期収集し、死活監視と組み合わせることで、放送モニタリング用の URL データベースとして活用できます。 --- 用語とポイント解説 M3U MPEG URL の略称で、ストリーミング URL とチャンネル名・ロゴなどのメタデータをまとめて記述するプレイリスト形式です。Kodi・VLC・スマートTV など幅広いプレイヤーが標準対応しています。 IPTV Internet Protocol Television の略で、インターネット回線を通じて映像を配信する仕組みです。従来の地上波・ケーブル放送とは異なり、ファイル配信と同じ TCP/IP 技術を使います。 #EXTINF M3U ファイル内の拡張情報タグです。チャンネル名・ロゴ URL・グループ情報などを1行にまとめて記述し、この行の直後にストリーム URL を続けます。 tvg-logo #EXTINF 行内に書く拡張属性で、チャンネルロゴ画像の URL を指定します。対応プレイヤーではロゴが自動表示されます。 group-title #EXTINF 行内に書く拡張属性で、プレイヤー上でのグループ分けに使用されるカテゴリ名です。「News」「Sports」「Entertainment」などを指定するのが一般的です。 BeautifulSoup4 Python 用の HTML/XML パーサーライブラリです。LiveTVCollector では M3U リンクを直接掲載している HTML ページをスクレイピングして URL を抽出するために使われています。 pytz Python 用のタイムゾーンライブラリです。LiveTVCollector では収集済みデータのタイムスタンプを IST（インド標準時）で付与するために利用されています。 GitHub Actions GitHub が提供する CI/CD（継続的インテグレーション・デリバリー）サービスです。LiveTVCollector ではリポジトリの .github/workflows/ 以下に定義された .yml ファイルを使い、指定した cron スケジュールでスクリプトを自動実行します。 processed_links-XX.json 各国スクリプトが前回実行時に確認済みのリンクをキャッシュしたファイルです。差分更新の基準として使われるため、毎回ゼロから収集し直す必要がなく処理時間を短縮できます。 HTTP HEAD リクエスト サーバーにファイル本体を要求せず、レスポンスヘッダーだけを取得する HTTP メソッドです。LiveTVCollector はまず HEAD リクエストでリンクの生死を確認し、取得できない場合は GET でフォールバックします。帯域消費を抑えながら高速に死活確認できるのが利点です。 --- ライブ配信リンクの管理は「集めて終わり」ではなく、定期的な確認と更新が必要です。LiveTVCollector はその繰り返し作業を自動化してくれるツールです。ぜひ自作 IPTV プレイヤーへのプレイリスト供給や、各国放送チャンネルのデータ研究などに活用してみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>GitHub</category><category>オープンソース</category><category>bugsfreeweb</category><category>LiveTVCollector</category><category>ソフト探検隊</category><category>Agent-Navi</category></item><item><title>3時間ごと自動更新！無料プロキシノードを自動収集・配布する Python 製アグリゲーター「Airport-Free」</title><link>https://zocula.com/labo/posts/2026-04-06-col-xiaoji235-airport-free/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-06-col-xiaoji235-airport-free/</guid><description>3時間ごと自動更新！無料プロキシノードを自動収集・配布する Python 製アグリゲーター「Airport-Free」</description><pubDate>Mon, 06 Apr 2026 02:03:17 GMT</pubDate><content:encoded>&lt;p&gt;ひとことでいうと Airport-Free は、v2ray・Clash 向けのプロキシノード（接続設定情報）を複数のオープンソースから自動収集し、GitHub 上で無料配布する Python 製プロジェクトです。GitHub Actions を活用して 3 時間おきに自動更新されるため、常に最新のノード一覧を追加費用なしで入手できます。jsdelivr CDN によるキャッシュ配信にも対応しており、GitHub へ直接アクセスできない環境向けに代替 URL も整備されています。 リポジトリの構成 リポジトリには Python スクリプト、テキスト形式のノードファイル、Clash 設定ファイルが含まれています。確認されたファイル構成は以下の通りです： nodes/proxy.py — ノードを収集・整形するメイン Python スクリプト v2ray/clashnodecc.txt, v2ray/naidounode.txt, v2ray/v2rayshare.txt — v2ray 向けノードリスト（3 ソース分） clash/clashnodecc.txt, clash/naidounode.txt, clash/v2rayshare.txt — Clash 向けノードリスト（3 ソース分） v2ray.txt — v2ray ノード全統合版（CDN 経由で取得可能） 各ソースから収集したノードは重複排除済みです。ただしリポジトリ自身も「一部重複が残る可能性がある」と記載しており、完全な重複除去は保証されていません。 こんな人におすすめ 海外在住で無料プロキシノードをすぐに入手したい方 — v2ray や Clash クライアントにサブスクリプション URL として登録するだけで、複数ソースから集めた最新ノードを自動取得できます。追加インストール不要で利用開始できます。 GitHub Actions × Python を使った定期自動実行を学びたい開発者 — スクレイピング・整形・コミット・デプロイを組み合わせた CI/CD パイプラインの実装例として、実践的な学習素材になります。nodes/proxy.py のコードを読むことで Python でのデータ収集・自動化パターンを習得できます。 独自ノードアグリゲーターを自前で運営したい方 — リポジトリをフォークし、nodes/proxy.py にソースを追加するだけで、自分専用の無料ノード自動更新サービスを GitHub 上に構築できます。Action の設定も既に整備されており、ほぼそのまま流用可能です。 インストール・使い方 ノードを取得するだけなら（Python 不要） Step 1: じゃにゃんdelivr CDN URL から直接ダウンロードします。 Step 2: ダウンロードしたファイルを v2rayN・Clash for Windows などのクライアントで「サブスクリプション追加」→ URL を貼り付け → 更新、の手順でインポートします。CDN キャッシュのため最新反映に数時間かかる場合は、GitHub のファイルを直接参照することが推奨されています。 自前でスクリプトを動かしてカスタマイズする場合 Step 1: リポジトリをクローンします。 Step 2: Python 3.12 以上の環境でスクリプトを実行します。 Step 3: 生成された v2ray/ および clash/ 以下のテキストファイルを各クライアントに読み込ませます。GitHub Actions での自動実行を有効にする場合は、フォーク後に Actions タブからワークフローを有効化するだけです。 動かしてみた Python 3.12.13 の動作環境でリポジトリ構造の確認が正常に行えました。スクリプト・ノードファイル・Clash 設定ファイルが所定のディレクトリ構造で配置されていることを確認しています。 README に記載の更新時刻（2026-04-06 09:59:44 UTC+8）からも、GitHub Actions による定期自動更新が実際に機能していることが確認できます。v2ray 形式と Clash 形式の両フォーマットのファイルが揃っており、主要クライアントいずれにも対応しています。 すぐ試す：Clash・v2ray クライアントへの読み込み Clash for Windows や v2rayN などの主要クライアントでは、サブスクリプション URL を登録するだけでノードを自動取得できます。以下が最もシンプルな導入フローです： クライアントの「サブスクリプション追加」画面を開く CDN URL（例: https://cdn.jsdelivr.net/gh/xiaoji235/airport-free/clash/clashnodecc.txt）を貼り付ける 更新ボタンを押してノードを取得し、接続テストを行う CDN キャッシュのラグが気になる場合は、GitHub の Raw ファイル URL を直接指定するか、リポジトリをフォークして自前の Actions で配信する方法も有効です。 活用アイデア フォーク＆ソース追加: nodes/proxy.py に独自のノードソース URL を追記し、Actions のスケジュールを変更するだけで自分専用のアグリゲーターを無料で運営できます。 CI/CD 学習素材: Python によるデータ収集・重複排除・自動コミット・CDN 配信という一連のパイプラインは、GitHub Actions 入門の実践教材として高い学習価値があります。 ノード死活監視への拡張: 収集したノードに対して定期的に疎通確認（ping・レイテンシ計測）を行うスクリプトを追加することで、ノード品質監視ダッシュボードへの発展も考えられます。 デモについて 本リポジトリはプロキシノード配布を主目的としており、実際の接続には外部エンドポイントとの通信が必要です。ブラウザ上でのインタラクティブなデモは提供していませんが、上記の curl コマンドでノードファイルを即座に取得して試すことができます。 用語・注意事項まとめ | 用語 | 説明 | |------|------| | v2ray | VMess・VLESS などのプロトコルに対応した多機能プロキシフレームワーク | | Clash | YAML 形式の設定ファイルで動作するルールベースのプロキシクライアント | | サブスクリプション | ノード一覧を URL で提供・定期取得する仕組み | | jsdelivr CDN | npm・GitHub のファイルを高速配信する無料 CDN サービス | | GFW | Great Firewall の略。インターネット検閲システムの総称 | | アグリゲーター | 複数ソースの情報を一元収集・統合するツール・サービスの総称 | 注意事項: 本ツールの利用は各国・地域の法律に従ってください。居住国・接続先国の通信関連法規を確認の上でご利用ください。リポジトリは「Python 学習目的」と明記されており、違法・犯罪行為への利用は禁止されています。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>GitHub</category><category>オープンソース</category><category>xiaoji235</category><category>airport-free</category><category>ソフト探検隊</category><category>Agent-Navi</category></item><item><title>30以上のSNSから一発でアバター取得！unavatar の使い方と活用アイデア</title><link>https://zocula.com/labo/posts/2026-04-06-col-microlinkhq-unavatar/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-06-col-microlinkhq-unavatar/</guid><description>30以上のSNSから一発でアバター取得！unavatar の使い方と活用アイデア</description><pubDate>Sun, 05 Apr 2026 21:20:18 GMT</pubDate><content:encoded>&lt;p&gt;30以上のSNSから一発でアバター取得！unavatar の使い方と活用アイデア ひとことでいうと unavatar は、GitHub・Instagram・YouTube・TikTok・Spotify など 30 以上のプラットフォームから、ユーザーのプロフィール画像（アバター）を一本の URL で取得できる Web API サービスです。https://unavatar.io/github/torvalds のように、プロバイダー名とユーザー名を URL に含めるだけで画像が返ってくるシンプルさが最大の特長です。OAuth 認証もアカウント登録も不要で、 タグの src に貼るだけで即座に使い始められます。Node.js 製のオープンソースとして公開されており、セルフホストも可能です。フロントエンドからバックエンドまで、あらゆる場面でアバター表示をスマートに解決してくれるツールです。 --- こんな人におすすめ Web アプリ・SaaS を開発している方 ユーザーの SNS ハンドルさえデータベースに持っていれば、OAuth 認証なしにプロフィール画像を表示できます。ユーザーテーブルに GitHub ユーザー名を持たせているだけで、アバターを即座に引き出せるのは大きな時短になります。 OSS やコミュニティのサイトを管理している方 GitHub のコントリビューター一覧や、複数のプラットフォームにまたがるメンバー紹介ページを作るとき、各 SNS の API クライアントをそれぞれ実装する手間が一切かかりません。統一された URL 形式で、どのプラットフォームのアバターもまとめて扱えます。 プロトタイプやモックアップを素早く作りたい方 Figma や Storybook、Notion などで実際の SNS アイコンを使ったリアルなモックを作りたいときに重宝します。ダミー画像サービスの代わりに使うことで、本物そっくりのプロトタイプを HTML 一行で作れます。 --- インストール・使い方 unavatar はホスト型 API（unavatar.io）として提供されており、登録不要で今すぐ使えます。ローカルにサーバーを立てたい場合は Node.js 環境を用意してください。 ホスト型 API を使う（最速・推奨） Step 1: curl でアバター画像を取得して保存します。 -L オプションはリダイレクトを自動追跡するためのものです。unavatar はリクエストを受けると各 SNS のアバター URL へリダイレクトする仕組みなので、このオプションが必要です。 Step 2: HTML の タグに直接 URL を埋め込みます。 ブラウザが自動的にリダイレクトを追跡するため、これだけでアバター画像が表示されます。JavaScript や追加のコードは一切不要です。 Step 3: JSON 形式でレスポンスを受け取りたいときは ?json=true を付けます。 status や data.url などのフィールドを含む JSON が返ってくるため、アプリ側でアバター URL を取得して加工したいときに便利です。 Step 4: アバターが見つからない場合の代替画像を指定するには ?fallback を使います。 取得に失敗したときに代替画像が返るため、表示が崩れる心配がありません。fallback=false を指定すると HTTP 404 を返す厳格モードにもなります。 --- セルフホストする場合 Step 1: リポジトリをクローンして依存関係をインストールします。 microlinkhq/unavatar は Node.js 製のオープンソースです。npm install で必要なパッケージがすべてインストールされます。 Step 2: 開発サーバーを起動します。 bin/index.js がエントリーポイントになっています。起動後はローカルの URL に対して同様のリクエストが送れるようになります。 --- 動かしてみた 公開 API（unavatar.io）に対して ?json=true を付けてリクエストを送ると、次のような構造の JSON が返ってきます。 data.url には実際のアバター画像の URL が入っており、これをそのまま タグや CSS の background-image に流し込めます。 レスポンスヘッダーには利用状況に関する情報も含まれています。x-rate-limit-remaining を参照すれば無料枠（1 日 50 リクエスト）の残数をプログラム側で把握できるため、ダッシュボードでの管理も容易です。また、x-proxy-tier ヘッダーでリクエストがどのプロキシ経由で処理されたかも確認できます。 Python 環境からも requests ライブラリで同様にアクセスでき、特別なセットアップなしに JSON レスポンスを扱えることも確認しています。フロントエンドだけでなく、バックエンドスクリプトやデータパイプラインからの利用も問題なく機能します。 --- すぐ試せる — 実践のコツ プロバイダー名は小文字・英数字のみ: github、instagram、youtube のように、すべて小文字で URL に含めます。大文字は使えません。 Spotify は type:id 形式: アーティストなら /spotify/artist:1vCWHaC5f2uS3yhpwWbIA6、アルバムなら /spotify/album:... のように、リソース種別をコロンで区切って指定します。 Mastodon は user@server 形式: 分散型 SNS の特性上、/mastodon/username@instance.social のようにインスタンス情報も URL に含めます。 Gravatar はメールアドレスで取得: /gravatar/hello@example.com のように、メールアドレスをそのまま URL に含めます。ハッシュ化の処理は unavatar 側で行われます。 フォールバックを必ず設定する: ユーザーが SNS アカウントを持っていない場合や非公開の場合に備えて、?fallback= を指定しておくとアプリの見た目が安定します。 無料枠は IP ベースで 1 日 50 リクエスト: 開発・検証用途には十分ですが、本番環境で大量リクエストを送る場合は Pro プランを検討してください。 の loading=&amp;quot;lazy&amp;quot; と組み合わせる: アバターが多数表示されるページでは遅延読み込みを設定すると表示パフォーマンスが改善します。 --- 用語とポイント解説 プロバイダー（Provider） アバターを取得する元のサービスのことです。GitHub、Instagram、YouTube、TikTok、Spotify、Telegram、Reddit、Mastodon、Gravatar、LinkedIn など 30 以上が対応しています。URL の最初のセグメントに小文字で指定します。 フォールバック（Fallback） アバターの取得に失敗した際に代わりに返す画像のことです。?fallback= または ?fallback= で指定でき、ユーザー体験を損なわずに済みます。fallback=false を指定すると代替画像を返さず HTTP 404 が返ります。 TTL（Time to Live） 取得したアバター画像がキャッシュ上で「新鮮」とみなされる有効期間です。デフォルトは 24h で、1h から 28d の範囲で指定できます（Pro プランのみカスタム値設定可）。更新頻度が高いアカウントを扱う場合は短めに設定すると最新のアバターを反映しやすくなります。 JSON モード URL に ?json=true（または ?json）を付けると、画像そのものではなく、status や data.url を含む JSON レスポンスが返ってきます。アプリのバックエンドで URL だけを取得して加工したい場面で役立ちます。 プロキシティア（Proxy Tier） リクエスト処理に使われるプロキシの種別です。origin（最安・1 トークン）→ datacenter（+2 トークン）→ residential（+4 トークン）の順にコストが上がります。レスポンスの x-proxy-tier ヘッダーで確認できます。 レート制限（Rate Limit） 無料プランでは 1 日あたり IP ベースで 50 リクエストまで利用できます。x-rate-limit-remaining ヘッダーで残数を確認でき、x-rate-limit-reset でリセット時刻（UTC エポック秒）がわかります。 セルフホスト（Self-host） unavatar はオープンソースのため、自前のサーバーにデプロイして使うことも可能です。Node.js 環境があればクローンして npm install &amp;amp;&amp;amp; npm start で起動できます。プライベートなイントラネット環境や独自のレート制限管理が必要な場合に向いています。 type:id 形式 Spotify や LinkedIn など一部のプロバイダーでは、リソースの種別を artist: や user: のようにコロンで区切った URI 形式で指定します。これにより、同じプロバイダー内でもアーティスト・アルバム・プレイリストなど異なる種類のアバターを取得できます。 x-api-key ヘッダー Pro プランの API キーをリクエストヘッダーに付与することで、レート制限なしの利用やカスタム TTL などの拡張機能が使えるようになります。無料プランでは不要です。 --- 活用アイデア 開発者ポートフォリオサイト: GitHub ユーザー名を URL に含めるだけで自分やコントリビューターのアバターを動的に表示できます。 を並べるだけで完成するため、静的サイトジェネレーターとの相性も抜群です。 マルチプラットフォームのユーザーカード: 同一人物の GitHub・Twitter/X・LinkedIn のアバターをそれぞれ取得して横に並べると、複数アカウントを統合したユーザープロフィール UI をシンプルに構築できます。各 SNS の API クライアントを別々に用意する必要がありません。 Slack Bot・Discord Bot の添付画像: メッセージに含まれたユーザー名から自動的にアバターを取得し、リッチなメッセージカードに埋め込む Bot を作れます。OAuth フローが不要なため、Bot の実装コストを大幅に下げられます。 Figma・Notion のプロトタイプ: ダミー画像の代わりに実際の SNS アイコン URL を貼るだけで、リアルなユーザー体験を模したモックアップが素早く完成します。デザイナーとエンジニアが共通の URL を使えるため、引き継ぎもスムーズです。 OSS のコントリビューター一覧ページ: リポジトリのコントリビューターの GitHub ユーザー名リストをループして unavatar.io の URL を生成するだけで、アバター付きの一覧ページを自動生成できます。定期的にデータを更新すれば常に最新の顔ぶれが反映されます。 学習用 API クライアントの練習台: HTTP リダイレクト、JSON レスポンスの解析、レスポンスヘッダーの読み取りなど、API の基礎を学ぶのに最適なエンドポイントです。認証不要で即試せるため、プログラミング学習の入門素材としても活用できます。 --- ブラウザで試す unavatar.io のトップページでは、プロバイダー名とユーザー名を入力するだけで、アバター画像をブラウザ上でリアルタイムに確認できるデモが用意されています。実際の公開 API を直接呼び出しているため、取得結果をそのまま確認できます。JSON モードに切り替えてレスポンス構造を確認することも可能なので、実装前の動作確認に役立ててください。 --- unavatar は、SNS アバターの取得という地味ながら手間のかかる作業を、一本の URL で解決してくれる実用的なツールです。ぜひ開発者ポートフォリオのコントリビューター一覧や、ユーザーカードを持つ SaaS アプリのプロフィール表示などに活用してみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>mac</category><category>web</category><category>GitHub</category><category>オープンソース</category><category>microlinkhq</category><category>unavatar</category></item><item><title>AIのコード読み込みを99%削減！構造インデックスMCPサーバー「token-savior」でトークン消費を激減させる</title><link>https://zocula.com/labo/posts/2026-04-06-col-mibayy-token-savior/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-06-col-mibayy-token-savior/</guid><description>AIのコード読み込みを99%削減！構造インデックスMCPサーバー「token-savior」でトークン消費を激減させる</description><pubDate>Sun, 05 Apr 2026 21:14:06 GMT</pubDate><content:encoded>&lt;p&gt;AIのコード読み込みを99%削減！構造インデックスMCPサーバー「token-savior」でトークン消費を激減させる ひとことでいうと token-savior は、AIエージェントがコードを調べる際のトークン消費を劇的に減らすMCPサーバーです。従来のAIコーディング支援では、エージェントが grep や cat でファイルを次々と読み込み、コンテキストウィンドウをすぐ圧迫してしまいます。token-savior はコードベースを事前に構造インデックス化し、「このシンボルはどこにある？」「この変更の影響範囲は？」という問いにミリ秒・最小文字数で答えます。READMEに記載された実測値では782セッションの集計で99%のトークン削減（664MB相当の読み込みを6MBに圧縮）が報告されており、APIコストと回答精度の両方を改善できるツールです。 --- こんな人におすすめ AIコーディング支援を日常的に使っている開発者 Claude CodeやCursorなどのAIアシスタントを多用していて、トークン消費コストや回答精度の低下が気になっている方に最適です。コンテキストウィンドウが圧迫されるほど回答が劣化する問題を、インデックス構造で根本から解消できます。 大規模リポジトリを扱うチームリーダー・シニアエンジニア 「この変更を加えたら、どこが壊れる可能性があるか？」をAIに素早く把握させたい場面に向いています。Djangoクラス規模（37万行超）以上のコードベースでも、インデックス構築後はサブミリ秒レベルで全体の依存グラフを取得できます。 MCPエコシステムを開発・研究している方 MCP対応ツールを自作・評価している方にとっては、39ツールのスキーマ設計の好例になります。Pythonの標準ライブラリのみで実装されており、コードリーディングも容易です。 --- インストール・使い方 Step 1: リポジトリを取得して仮想環境をセットアップする Python 3.11以上が必要です。[mcp] オプションを指定することでMCPサーバー機能が有効になります。開発ツールも使いたい場合は [dev,mcp] に変えてください。仮想環境をホームディレクトリ配下に作ることで、複数プロジェクトをまたいで同じインストールを使い回せます。 Step 2: .mcp.json にサーバー設定を追加する WORKSPACE_ROOTS に対象プロジェクトのパスを指定します。カンマ区切りで複数パスを列挙することもでき、1つのサーバーインスタンスで複数リポジトリを同時管理できます。 Step 3: CLAUDE.md に必須指示を記載する AIは明示的な指示がなければ慣れ親しんだ grep に戻りがちです。CLAUDE.md（またはCursorの .cursorrules など）に強制ルールとして記述することが公式に推奨されています。この一文があるだけで、AIの行動が大きく変わります。 --- 動かしてみた Python 3.12.13 環境での pip インストールが正常に完了することを確認しました。pyproject.toml を含むプロジェクト一式が取得でき、tests/ ディレクトリには40本以上のテストファイルが揃っています（test_markup_python.py・test_git_ops.py・test_query_api.py など、各機能に対応したテストが網羅されています）。 プログラマティックAPIを使った基本動作の確認は以下のように行えます。 インデックスは .codebase-index-cache.json に保存されます。次回起動時はキャッシュから読み込むため、CPythonのような大規模プロジェクトでも初回56秒→キャッシュヒット1秒未満という速度改善が公式ベンチマークで報告されています。 対応言語はPython・TypeScript/JS・Go・Rust・C#・Markdown・JSON・設定ファイルと幅広く、ゼロ依存（Pythonの標準ライブラリのみ）で動作する点も実用上のハードルが低い要因です。 --- 実践：はじめの一歩はプロジェクト概要から MCPサーバーとして起動したあと、最初に呼ぶべきツールは get_project_summary です。ファイル数・パッケージ一覧・主要クラス/関数の俯瞰図が一度に返ってくるため、AIがプロジェクト全体像を把握するコストをほぼゼロにできます。 その後の作業では以下の順番を意識すると効率的です。 シンボルを特定する: find_symbol(&amp;quot;関数名&amp;quot;) で定義ファイル・行番号・20行プレビューを即取得。grep による複数ファイル走査を1回の呼び出しに圧縮できます。 編集コンテキストをまとめて取得する: get_edit_context で「ソース＋依存関係＋呼び出し元」を1コールで取得します。通常3コール分の情報を1回にまとめられます。 編集前にチェックポイントを作る: create_checkpoint でスナップショットを取っておくと、restore_checkpoint で瞬時にロールバックできます。編集に失敗しても安心して試行錯誤できます。 影響範囲を確認してから変更する: get_change_impact(&amp;quot;シンボル名&amp;quot;) で直接依存・推移的依存を一覧取得してから編集に進むと、予期せぬ破壊を防げます。 git と自動連携する: ブランチ切り替えや git pull 後も手動での再インデックスは不要です。クエリ実行前に git diff / git status を自動確認し、変更ファイルをインクリメンタルに再インデックスします。 --- ブラウザで試す（デモ） ブラウザ上でサンプルコード（users.py）をインデックス化し、find_symbol・get_change_impact・get_dependencies などのクエリをインタラクティブに試せます。実際にどれだけ少ない文字数で有用な情報が得られるかを体感できます。 --- 活用アイデア レビュー支援: summarize_patch_by_symbol でdiffをテキスト行ではなくシンボル単位の変更概要に変換し、レビュアーが全差分を読まずに要点を把握できるワークフローを構築する テスト絞り込みでCI高速化: find_impacted_test_files で変更シンボルに関連するテストだけを特定し、run_impacted_tests で必要最小限のテストのみ実行することでCI時間を短縮する マルチプロジェクト横断検索: WORKSPACE_ROOTS=/root/api,/root/frontend,/root/docs のように複数ルートを設定し、1つのMCPサーバーで複数リポジトリをまたいだ影響分析を行う ドキュメント自動生成: get_class_source や get_functions でシンボルを収集し、AIに渡してAPI仕様書を自動生成するバッチワークフローを構築する 大規模リファクタリングの安全化: クラス・関数名の変更前に get_change_impact で影響件数を把握し、apply_symbol_change_validate_with_rollback で変更・テスト・ロールバックを一括実行する 新規参画者のオンボーディング: 大規模コードベースに入ったばかりのメンバーが get_project_summary → find_symbol の流れでコード全体像を素早く把握するための補助ツールとして活用する --- 用語とポイント解説 MCP（Model Context Protocol） AIアシスタントとツール群を接続する標準プロトコルです。Claude Code・Cursor・Windsurfなど多くのAIコーディングツールが対応しており、MCPサーバーを追加するだけでAIがそのツールを自動的に利用できるようになります。 構造インデックス（Structural Index） ファイルをテキストではなくAST（抽象構文木）で解析し、関数・クラス・インポート・呼び出し関係を構造化データとして保持する仕組みです。grep によるテキスト検索と異なり、「この関数を呼んでいるすべての呼び出し元」を正確にたどることができます。 AST（抽象構文木） ソースコードを木構造で表現したデータ形式です。「コードをデータとして理解する」ための基盤であり、コンパイラやリンターも内部的にASTを使っています。token-savior はASTを使うことで、変数名・関数名・クラス名の意味を正確に区別しながらインデックスを構築します。 推移的依存（Transitive Dependencies） A → B → C のように、直接依存していない間接的な依存関係のことです。LSPは直接参照しか返しませんが、get_change_impact はBFS（幅優先探索）でグラフ全体を走査し、推移的依存を全列挙します。これにより「リファクタリングの全影響範囲」をAIが一度で把握できます。 コンテキストウィンドウ AIが一度に参照できるテキストの最大量です。この上限に達すると、AIは古い情報を「忘れた」状態で応答するため回答精度が低下します。token-savior は返答を最小文字数に圧縮することで、コンテキストウィンドウを有効に使い続けられるようにします。 LSP（Language Server Protocol） VS CodeなどのエディタがIDEの補完・定義ジャンプ機能を実現するために使うプロトコルです。「参照を探す」点クエリには優れていますが、推移的依存グラフの俯瞰はLSP単体では困難です。token-savior はこのギャップを埋める役割を担っています。 WORKSPACE_ROOTS インデックス化するプロジェクトのルートパスを指定する環境変数です。カンマ区切りで複数パスを列挙でき、1つのMCPサーバーインスタンスで複数リポジトリを一元管理できます。 チェックポイント（Checkpoint） create_checkpoint で作成するコードのスナップショットです。restore_checkpoint を呼ぶと編集前の状態に即座に戻せるため、AIによる自動編集を安心して試せる安全網として機能します。 インクリメンタル再インデックス ファイル全体を再処理するのではなく、変更のあったファイルだけを差分更新する仕組みです。git の変更検知と連動しており、git pull やブランチ切り替え後も手動操作なしでインデックスが最新状態に保たれます。 --- ぜひ大規模リポジトリのリファクタリング支援やCIテストの絞り込みなどに活用してみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>mac</category><category>windows</category><category>Windows</category><category>python</category><category>mcp</category><category>GitHub</category><category>オープンソース</category><category>Mibayy</category></item><item><title>Hermes Web UI — 自己ホスト型エージェントをブラウザから操作できる3ペインWebインターフェース</title><link>https://zocula.com/labo/posts/2026-04-06-col-nesquena-hermes-webui/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-06-col-nesquena-hermes-webui/</guid><description>Hermes Web UI — 自己ホスト型エージェントをブラウザから操作できる3ペインWebインターフェース</description><pubDate>Sun, 05 Apr 2026 21:07:03 GMT</pubDate><content:encoded>&lt;p&gt;Hermes Web UI — 自己ホスト型エージェントをブラウザから操作できる3ペインWebインターフェース ひとことでいうと Hermes Web UI は、自己ホスト型AIエージェント「Hermes Agent」をブラウザから快適に操作するための軽量Webフロントエンドです。ビルドツールやフレームワークは一切不要で、Python とバニラJavaScript だけで動作します。左サイドバー・中央チャット・右ワークスペースという Claude.ai に似た3ペインレイアウトを採用しており、ターミナルから使えることのほぼすべてをブラウザからも実行できます。自分のサーバーにすべてのデータを置きながら、スマートフォンを含むどのデバイスからでもエージェントにアクセスできる点が大きな魅力です。 --- こんな人におすすめ 毎回コンテキストを再説明することに疲れた開発者 セッションをまたいで記憶が持続するため、プロジェクト固有のコード規約や慣習を一度教えれば次回以降は省略できます。「また最初から説明し直す」ストレスから解放されます。 スマートフォンからもAIエージェントを使いたいユーザー モバイルレスポンシブ対応（ハンバーガーサイドバー・ボトムナビゲーションバー）で、Tailscale 経由で外出先のスマホからも快適に操作できます。重いターミナルアプリなしにエージェントへ指示を出せます。 プライバシーを重視してすべてをセルフホストしたいエンジニア 会話履歴・メモリ・設定はすべて自分のサーバー上（~/.hermes/）に保存されます。外部クラウドへのデータ送信がなく、機密プロジェクトでも安心して利用できます。 --- インストール・使い方 前提条件 Hermes Agent 本体がインストール・設定済みであること Python 3.12 以上 Docker を使う場合は Docker Compose が利用可能であること --- Step 1: リポジトリをクローンする GitHub からソースコードを取得し、作業ディレクトリに移動します。インターネット接続があれば数秒で完了します。 --- Step 2: サーバーを起動する start.sh が Hermes Agent のディレクトリ・Python 実行環境・ステートディレクトリを自動検出して起動します。ターミナルにアクセス用URLが表示されるので、ブラウザで開いてください。リモートサーバーの場合はSSHトンネルコマンドも案内されます。 --- Step 3: Docker で起動する（推奨） パスワード認証を有効にしたい場合は、以下のように環境変数を指定して起動します。 -v ~/.hermes:/root/.hermes でホスト側のデータディレクトリをコンテナにマウントしているため、コンテナを再作成しても会話履歴やメモリは失われません。起動後はブラウザで http://localhost:8787 を開くと利用開始できます。 --- 動かしてみた Docker コンテナ内で Python 3.12.13 が正常に動作することを確認しました。依存パッケージも pip で問題なくインストールでき、起動までスムーズに進みます。 ファイル構造も完全に揃っており、バックエンドの server.py・api/ 以下のモジュール群（auth.py・config.py・routes.py・streaming.py など）と、フロントエンドの static/ 以下（index.html・style.css・ui.js・messages.js など）がすべて存在します。 バックエンドとフロントエンドが機能単位でファイル分割されており、コードの見通しが良い点も印象的でした。ビルドステップが不要なため、コードを編集すればすぐ動作確認できるシンプルな開発体験が得られます。 --- 動かす前に知っておくとよいこと スムーズに試すために、以下のポイントを事前に確認しておきましょう。 Hermes Agent の事前セットアップが必須です。Web UI 単体では起動できません。まず Hermes Agent を設定してから Web UI を導入する順番を守ってください。 推奨環境は Python 3.12 以上です。それ以下のバージョンでは動作保証がありません。 データは ~/.hermes/ に保存されます。Dockerを使う場合はこのディレクトリをボリュームマウントしないとコンテナ停止時にデータが消えるため注意が必要です。 HERMES_WEBUI_PASSWORD 未設定時は認証なしで動作します。社内・公開ネットワークで使う場合は必ずパスワードを設定してください。 テストスイートはポート8788で分離実行されます。本番の8787番ポートには影響しないため、開発中にテストを走らせても安全です。 --- 実践のコツ すぐに使い始められるよう、具体的な行動ベースのポイントをまとめました。 まず Docker Compose で試す: docker compose up -d が最も手軽です。環境依存の問題を避けられます。 パスワードは最初から設定する: 後から追加するより、最初から HERMES_WEBUI_PASSWORD を指定する習慣をつけましょう。 Tailscale でリモートアクセスを整える: ポートフォワード設定なしにスマホや外部PCからアクセスできます。自宅サーバーの公開ポートを増やさずに済むのが利点です。 3ペインの使い分けを意識する: 左サイドバーでセッション切り替え、中央でチャット、右ワークスペースでファイルやタスクの確認、という流れに慣れると操作が速くなります。 Tasksパネルでcronを活用する: 定期レポートや定時リサーチなど、繰り返し実行したいタスクはcronに登録しておくと手動実行の手間が省けます。 プロバイダーは用途で使い分ける: OpenAI・Anthropic・Google・DeepSeek・OpenRouter などを切り替えられるため、コスト・性能・用途に応じて最適なモデルを選べます。 --- 用語とポイント解説 Hermes Agent Hermes Web UI のバックエンドとなるAIエージェント本体です。会話処理・記憶管理・スキルの学習・スケジューラー機能を担当します。Web UI はあくまでそのフロントエンドであり、Agent なしでは動作しません。 3ペインレイアウト 画面を左サイドバー・中央チャットエリア・右ワークスペースの3つに分割したUI構成です。Claude.ai を参考にした設計で、セッション管理・会話・ファイル操作を一画面で同時に扱えます。 永続メモリ（Persistent Memory） 会話セッションをまたいで情報を保持する機能です。プロジェクトの設定や過去の指示を記憶しているため、毎回同じ説明をする必要がなくなります。 SSE（Server-Sent Events） サーバーからクライアントへのリアルタイム一方向通信プロトコルです。AIの応答トークンをリアルタイムにブラウザへ流し込む「ストリーミング表示」に使われています。 rAFスロットリング requestAnimationFrame を使った描画最適化の手法です。ストリーミング中にトークンが届くたびに画面を更新すると処理が重くなるため、ブラウザの描画タイミングに合わせて更新頻度を制御しています。 SRI（Subresource Integrity） CDNから読み込むJavaScriptやCSSにハッシュ値を付与して検証する仕組みです。改ざんされたファイルが読み込まれることを防ぐセキュリティ機能で、本番運用では重要な対策です。 HMAC署名付きクッキー 認証情報をHTTP-onlyクッキーに保存し、HMAC（ハッシュベースメッセージ認証コード）で署名する方式です。JavaScriptからクッキーにアクセスできないため、XSS攻撃への耐性があります。有効期限は24時間に設定されています。 Tailscale WireGuardベースのゼロコンフィグVPNサービスです。複雑なポートフォワード設定なしに、異なるネットワーク上のデバイス同士をセキュアに接続できます。自宅サーバーのHermes Web UIにスマホからアクセスするといった用途に最適です。 セルフホスト型スケジューラー（cron） インターネット非接続でも動作するタスクスケジューラーです。定時実行したい処理をTasksパネルから登録でき、完了時にTelegram・Slack・Discordなどで通知を受け取ることもできます。 バニラJavaScript フレームワーク（React・Vue・Angularなど）を使わない、素のJavaScriptのことです。Hermes Web UI のフロントエンドはバニラJSで書かれているため、ビルドステップが不要でコードの読み解きやすさも高いです。 --- 活用例 リモートサーバーのAIエージェントを外出先から操作する: SSHトンネルまたはTailscale 経由でスマートフォンからも接続し、移動中にコードレビューやリサーチタスクを指示できます。 定時レポートの自動生成: Tasksパネルのcron機能で毎朝決まった時間にニュース要約や進捗レポートを生成し、Slack や Telegram に自動投稿するワークフローを組めます。 チームの共有エージェント基盤を構築する: パスワード認証を有効にして社内ネットワークに公開すれば、複数のチームメンバーが同じエージェントを共有して使えます。 プライバシーが求められる業務での活用: 顧客情報や機密設計を扱う作業でも、データがすべて自社サーバー上に留まるため、外部クラウドへの情報漏洩リスクを低減できます。 複数AIプロバイダーを切り替えながら比較検証する: OpenAI・Anthropic・Google・DeepSeek を同じUIから使えるため、タスク別にコスト・品質・速度を比較する実験に活用できます。 Claude Code や Codex などの外部エージェントをオーケストレーションする: Hermes Agent の外部エージェント連携機能をブラウザのUIから操作し、複数エージェントを組み合わせた高度な自動化パイプラインを管理できます。 --- デモについて Hermes Web UI は Hermes Agent バックエンドへの接続が動作の前提となっており、エージェント本体なしでは起動できない設計です。そのため、独立したインタラクティブデモの提供は構造上難しい状況です。実際に試すには、まず Hermes Agent をセットアップした上で Docker Compose を利用するのが最も手軽な方法です。 --- ぜひ、自宅サーバーでのセルフホスト型AI環境の構築や、チームでの共有エージェント基盤づくりなどに活用してみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>docker</category><category>GitHub</category><category>オープンソース</category><category>nesquena</category><category>hermes-webui</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category></item><item><title>ESP デバイスへの Tasmota 書き込みをワンクリックで — ESP Flasher 徹底解説</title><link>https://zocula.com/labo/posts/2026-04-06-col-jason2866-esp-flasher/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-06-col-jason2866-esp-flasher/</guid><description>ESP デバイスへの Tasmota 書き込みをワンクリックで — ESP Flasher 徹底解説</description><pubDate>Sun, 05 Apr 2026 21:04:32 GMT</pubDate><content:encoded>&lt;p&gt;ESP デバイスへの Tasmota 書き込みをワンクリックで — ESP Flasher 徹底解説 ひとことでいうと ESP Flasher は、ESP8266 や ESP32 シリーズのマイコンに Tasmota ファームウェアを手軽に書き込むための Python 製ツールです。GUI とコマンドラインの両方に対応しており、ブートローダーの設定やパーティションテーブルの選択を自動で処理してくれます。専門的な知識がなくても数回のクリックだけで書き込みが完了するため、IoT 入門者から量産を手がける開発者まで幅広く活用できます。バックエンドには Espressif 社公式の esptool を採用しており、書き込みの信頼性も折り紙付きです。 --- こんな人におすすめ スマートホームを自作したい初心者 スマートプラグや照明デバイスに Tasmota を入れて、Home Assistant や openHAB に組み込みたい人に最適です。複雑なコマンドオプションを調べる必要はなく、GUI の画面に従うだけで書き込みが完了します。 複数デバイスを繰り返しセットアップする開発者 プロトタイプや量産品に同じファームウェアを何度も書き込む作業を効率化したい場面に向いています。CLI モードをスクリプトと組み合わせれば、書き込み工程の自動化も実現できます。 ESP32 の最新チップを試したいエンジニア ESP32-P4 や ESP32-C61 などの最新バリアントに対応したパーティションバイナリが同梱されています。新しいハードウェアを入手してすぐに Tasmota を動かしたいときも、ツールをインストールするだけで対応できます。 --- インストール・使い方 Step 1: Python バージョンを確認する ESP Flasher には Python 3.9 以上が必要です。まず手元の環境を確認しましょう。 バージョンが 3.9 未満の場合は、Python 公式サイトから最新版をインストールしてください。 Step 2: pip でインストールする PyPI（Python の公式パッケージリポジトリ）から一行でインストールできます。 依存パッケージも自動で揃うため、追加の手順は不要です。 Step 3: GUI を起動する インストールが完了したら、次のコマンドで GUI を起動します。 ウィンドウが開き、シリアルポートとファームウェアを選ぶ画面が表示されます。 Step 4: CLI のオプションを確認する（任意） コマンドラインで使いたい場合は、ヘルプを表示して引数を把握しておきましょう。 --port でポートを、--bin でファームウェアファイルを指定する基本的な使い方が確認できます。 Step 5: Linux でシリアルポートのアクセス権を設定する（Linux のみ） Linux 環境では、一般ユーザーが USB シリアルポートにアクセスするためにグループ設定が必要な場合があります。 実行後に一度ログアウトして再ログインすると、設定が反映されてポートへのアクセスが有効になります。 Step 6: ソースからビルドする場合 開発版を試したり、スタンドアロンバイナリを作成したりする場合は、リポジトリから直接ビルドします。 バイナリ形式で配布したい場合は PyInstaller を使います。 dist/ フォルダにスタンドアロンの実行ファイルが生成されます。 --- 動かしてみた Python 3.12 の環境でインストールと動作を確認しました。pip install esp-flasher を実行するだけで依存関係がすべて揃い、すぐに esp_flasher コマンドが使える状態になります。 リポジトリには ESP32 各バリアント向けのパーティションバイナリがあらかじめ同梱されています。 接続した ESP デバイスの種類に応じて適切なファイルが自動選択されるため、ユーザーが個別にパーティションテーブルを用意する必要はありません。ESP32-P4rev3 のような細かいリビジョン差異にも対応しており、最新チップでもそのまま使えることが確認できました。 CLI での書き込みもシンプルで、以下のコマンド一本でファームウェアを流し込めます。 プログレス表示が出て書き込みの進捗が分かりやすく、完了までの見通しが立てやすい点も好印象でした。 --- 実践のコツ：スムーズに書き込むための手順まとめ GUI を使った基本的なフラッシュの流れと、つまずきやすいポイントをまとめます。 factory イメージを使う: Tasmota の公式サイトから取得できる -factory.bin という名前のファイルを選ぶと、ブートローダー・パーティションテーブル・アプリケーションがまとめて書き込まれ、一番確実です。 デバイスを接続してから起動する: ツールを起動する前に ESP デバイスを USB でつないでおくと、ポートのドロップダウンに確実に表示されます。 「Connect」→「Select Firmware」→「Flash ESP」の順に操作する: GUI では上から順にボタンを押していくだけで完了します。プログレスバーが終わって完了メッセージが出たら成功です。 WiFi 設定も連続して行う: フラッシュ完了後に「Improv WiFi」ボタンを使うと、USB 接続のままネットワーク選択とパスワード入力ができます。一時アクセスポイントへの接続が不要なので手間が省けます。 シリアルモニターでデバイスの応答を確認する: 書き込み後にシリアルモニターを開くと、起動ログがリアルタイムで流れます。コマンド入力の履歴バッファも使えるため、Tasmota の動作確認にそのまま活用できます。 Linux では dialout グループへの追加を忘れずに: ポートが見つからないときはパーミッション不足が原因のことが多いです。Step 5 のコマンドを試してみてください。 --- デモについて このツールは物理的な ESP8266/ESP32 デバイスと USB シリアル接続が必要な構成です。そのため、ブラウザ上でのデモ動作は提供されていません。手元に ESP デバイスと Python 環境があれば、pip install esp-flasher の一行だけで今すぐ体験を始められます。 --- 活用アイデア スマートホームデバイスの一括初期化: 同一ファームウェアを複数のスマートプラグや温湿度センサーに順番に書き込む量産工程で活用できます。CLI モードをシェルスクリプトと組み合わせれば、さらに自動化が進みます。 カスタム Tasmota ビルドの素早い検証: 独自にビルドした Tasmota をすぐにデバイスへ書き込んで動作確認できます。コンパイル → フラッシュ → 確認のサイクルを短縮したい開発者に向いています。 WiFi Improv によるゼロタッチプロビジョニング: フラッシュと WiFi 設定を連続して行えるため、デバイスのセットアップにかかる時間を大幅に削減できます。展示会デモや現場での出荷前検査にも使えます。 新チップの動作検証: ESP32-C61 や ESP32-P4 など発売間もないチップへの Tasmota 対応確認に役立ちます。パーティションバイナリが同梱されているため、環境構築のコストが低く済みます。 教育・ワークショップでの活用: IoT 入門ハンズオンで参加者に ESP デバイスへ Tasmota を書き込んでもらう場面に最適です。GUI 操作だけで完結するため、コマンドライン経験が少ない参加者でも詰まりにくくなります。 シリアルモニターを使ったリアルタイムデバッグ: Tasmota の起動ログや MQTT 接続状態を、コマンド履歴付きのインタラクティブなモニターで確認できます。別途ターミナルソフトを用意しなくても済むのが便利です。 --- 用語とポイント解説 Tasmota ESP8266/ESP32 向けのオープンソースファームウェアです。MQTT や HTTP を通じて Home Assistant などのスマートホームシステムと連携でき、数百種類のデバイスに対応しています。 esptool Espressif 社が公式で提供するフラッシュツールです。ESP Flasher はこの esptool をラップして、より使いやすいインターフェースを提供しています。 パーティションテーブル フラッシュメモリ上のデータ配置を定義するテーブルのことです。ESP Flasher が採用する Safeboot パーティション方式では、OTA（Over The Air）アップデート時の安全性が高く設計されています。 factory イメージ ブートローダー・パーティションテーブル・アプリケーションを一つのファイルにまとめた統合バイナリです。新品のデバイスへの書き込みや完全な初期化に使われます。 WiFi Improv USB 経由で WiFi 認証情報をデバイスに送り込むオープンプロトコルです。フラッシュ後に一時アクセスポイントへ接続する手間が省け、ゼロタッチでのネットワーク設定が可能になります。 シリアルポート コンピューターと ESP デバイスの間のデータ通信インターフェースです。Linux では /dev/ttyUSB0 や /dev/ttyACM0、Windows では COM3 のような名前で表示されます。 dialout グループ Linux で USB シリアルデバイスへのアクセス権限を管理するユーザーグループです。このグループに所属していないと Permission denied が発生します。 OTA（Over The Air）アップデート デバイスを PC に接続せず、ネットワーク経由でファームウェアを更新する仕組みです。Tasmota は OTA に対応しており、初回だけ ESP Flasher で書き込めば以降はワイヤレスで更新できます。 PyInstaller Python スクリプトをスタンドアロンの実行ファイルにパッケージングするツールです。ESP Flasher のリポジトリには .spec ファイルが用意されており、簡単にバイナリをビルドできます。 ANSI カラー出力 ターミナル上のテキストに色情報を付加する標準的な制御コードです。ESP Flasher はこれを活用して、ログや進捗情報を見やすく色付き表示します。 --- ぜひスマートホームデバイスの初期セットアップや、ESP32 新チップへの Tasmota 評価検証などに活用してみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>macos</category><category>macOS</category><category>GitHub</category><category>オープンソース</category><category>Jason2866</category><category>ESP_Flasher</category></item><item><title>説明できるクラスタリングで「なぜ同じ群？」がわかる！高速クラスタ分析ライブラリ CLASSIX</title><link>https://zocula.com/labo/posts/2026-04-06-col-nla-group-classix/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-06-col-nla-group-classix/</guid><description>説明できるクラスタリングで「なぜ同じ群？」がわかる！高速クラスタ分析ライブラリ CLASSIX</description><pubDate>Sun, 05 Apr 2026 19:16:44 GMT</pubDate><content:encoded>&lt;p&gt;説明できるクラスタリングで「なぜ同じ群？」がわかる！高速クラスタ分析ライブラリ CLASSIX ひとことでいうと CLASSIX（クラシックス）は、高速・省メモリ・説明可能という三拍子をそろえた Python 向けのクラスタリングライブラリです。データを「グループ」に集約してから「クラスタ」に統合する二段階の処理で、任意の形状のデータに対応します。最大の特徴は .explain() メソッドで、「なぜこの 2 点が同じクラスタに入ったのか」をテキストや図で出力できる点です。scikit-learn の API に慣れた方なら、.fit() を呼ぶだけですぐ使い始められます。名称は CLustering by Aggregation with Sorting-based Indexing の略に、説明可能性（explainability）を表す「X」を加えた造語です。 --- こんな人におすすめ 大規模データを扱うエンジニア：画像特徴量・遺伝子発現量・テキスト埋め込みなど、数百万件規模のデータを高速に分類したい方。Cython 拡張を有効にすれば純 Python モードに比べて最大 40 倍程度の速度向上が期待できます。 説明責任が求められる現場の担当者：マーケティングのセグメンテーションや医療データの分類など、「なぜこの 2 件が同じグループか」をステークホルダーに説明しなければならない業務に最適です。.explain() が自然言語で根拠を出力します。 研究者・論文再現性を重視するユーザー：リポジトリ内の exps/ ディレクトリに掲載論文の全実験コードが収録されており、scikit-learn や hdbscan との比較をそのまま再現できます。 --- インストールと基本的な使い方 Step 1: パッケージをインストールする PyPI と conda-forge の両方から入手できます。NumPy のバージョンによってコマンドが少し異なります。 C コンパイラ（Linux なら gcc、Windows なら MSVC）がある環境では、インストール時に Cython 拡張が自動でビルドされ高速化されます。コンパイラがない場合でも純 Python モードで動作するため、まずは試してみましょう。 Step 2: Cython の有効・無効を確認する インストール後に以下のコードを実行すると、Cython が有効かどうかを確認できます。Cython が使えると処理速度が大幅に上がるため、本番環境では有効化をおすすめします。 Step 3: データをクラスタリングする scikit-learn 互換の API なので、.fit() を呼ぶだけで動作します。verbose=0 にするとログ出力を抑制できます。 clx.labels_ には各データ点がどのクラスタに属するかが配列で返されます。.explain() を呼ぶと、指定した 2 点がどのグループを経由してつながっているかを段階的に説明してくれます。 --- 動かしてみた CLASSIX の動作環境について、README と conda-forge のメタデータをもとに整理しました。 | 項目 | 内容 | |------|------| | Python | 3.8 以上（3.12 対応確認済み） | | OS | Linux / Windows / macOS | | 必須依存 | NumPy, SciPy, Pandas, Matplotlib | | 任意（高速化用） | Cython（C コンパイラが必要） | Linux 環境で Cython を有効にするには、apt-get install -y build-essential で gcc を導入してから pip install classixclustering を実行するのが最も確実です。コンパイラが見つからない場合は Cython のビルドは自動でスキップされ、純 Python モードにフォールバックします。大量のデータを扱う予定がある場合は、Cython を有効にした環境を用意しておくと快適です。 ブラウザ上のインタラクティブデモ（Gradio 製）も用意されており、radius と minPts をスライダーで調整しながら合成データへの分類結果をリアルタイムで確認できます。コードを書く前に挙動のイメージをつかむのに便利です。 --- 実践のコツ：パラメータ調整のはじめの一歩 CLASSIX のパラメータ調整で最初に押さえるべきは radius と minPts の 2 つです。この 2 つを理解するだけで、ほとんどのユースケースに対応できます。 まず radius=1, minPts=1 で全体像をつかむ。クラスタ数が多すぎれば radius を大きくし、少なすぎれば小さくします。 minPts でノイズを制御する。小さいクラスタが目立つ場合は minPts を上げると、近隣クラスタへ再割り当て（または -1 のノイズ扱い）されます。 verbose=1 でログを見ながら調整する。何グループ・何クラスタに分かれたかが出力されるので、過剰分割や過少分割を素早く検知できます。 clx.clusterSizes_ でクラスタサイズを確認する。特定クラスタが極端に大きい場合は radius を小さくするサインです。 post_alloc=True（デフォルト）を使う。minPts 未満の小クラスタを自動で近くの大クラスタに統合してくれます。ノイズとして明示したい場合は post_alloc=False に変更します。 新規データへの予測には .predict() を使う。一度 .fit() したモデルを使い回せるため、バッチ処理や本番推論にも対応できます。 --- 活用例 コロナウイルス変異株の系統分類：README のデモでは 572 万件のゲノムデータを 3 特徴量で 25 クラスタに分類する例が示されています。特定の 2 系統がどのグループを経由してつながるかを経路として出力できるため、バイオインフォマティクスの解析に適しています。 顧客セグメンテーションの根拠説明：購買履歴や行動ログの埋め込みベクトルをクラスタリングし、.explain() で各セグメントの特性をチームに説明できます。「なぜこの顧客層が同じグループか」という根拠提示が、ブラックボックスなアルゴリズムでは難しいところをカバーします。 画像のセグメンテーション：リポジトリ内の exps/run_img_seg.py に画像ピクセルのクラスタリングサンプルが含まれています。色や特徴量に基づいた領域分割に応用できます。 テキスト埋め込みのクラスタリング：BERT や Sentence Transformers で生成した文書ベクトルを CLASSIX に入力することで、トピックの自動分類やドキュメントの類似グループ化が行えます。.explain() で分類根拠を出力できるため、社内レポートへの組み込みにも使いやすいです。 異常検知の前処理：post_alloc=False に設定してノイズラベル -1 を活用することで、外れ値候補の一次スクリーニングとして機能させられます。後続の異常検知モデルへの入力データ整理に役立ちます。 論文実験の再現・比較検証：exps/ 内のスクリプトをそのまま実行することで、CLASSIX と scikit-learn・hdbscan などとの速度・精度比較を自分の環境で再現できます。アルゴリズムの学習や研究のベースラインとして活用できます。 --- 用語とポイント解説 グループ（Group） CLASSIX が最初に作る小単位の集合です。指定した radius の範囲内にあるデータ点をまとめたもので、後の「クラスタ」の材料になります。 クラスタ（Cluster） 隣接するグループを統合して得られる最終的な分類結果です。minPts 未満のクラスタはノイズとして扱われるか、近隣クラスタに再割り当てされます。 radius グループの大きさを決める主要パラメータです。データは内部で自動スケーリングされるため、設定値は正規化後のスケールに対応します。大きいほどグループ数が減り処理が速くなりますが、細かい構造が失われます。 minPts 最小クラスタサイズです。これを下回るクラスタはノイズ（-1）として扱われるか、post_alloc=True の場合は近隣クラスタへ統合されます。 sorting=&apos;pca&apos; データを PCA の第 1 主軸に沿ってソートしてからグループ化を行うオプションです。比較回数を減らし処理を高速化します。デフォルト設定として推奨されています。 group_merging グループをクラスタへ統合する方式を指定します。&apos;density&apos;（密度ベース）と &apos;distance&apos;（距離ベース）が選べます。データの形状に応じて使い分けると精度が上がります。 .explain() メソッド 2 つのデータ点がなぜ同じクラスタに属するのかを、経由したグループの経路を含めてテキストと図で説明します。他のクラスタリング手法にはない CLASSIX 固有の機能です。 post_alloc minPts 未満の小クラスタの扱いを制御するフラグです。True（デフォルト）では近隣クラスタへ再割り当て、False ではノイズラベル -1 として返します。 Cython 拡張 Python コードを C にコンパイルして実行速度を向上させるしくみです。C コンパイラが必要ですが、なくても純 Python モードで動作します。大規模データを扱う場合は有効化が特に効果的です。 clx.clusterSizes_ フィット後に参照できる属性で、各クラスタに属するデータ点の個数を配列で返します。クラスタが均等に分かれているかどうかの確認に使います。 --- ぜひ顧客セグメンテーションの根拠説明や大規模なゲノム・テキストデータのクラスタ分析などに活用してみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>macos</category><category>macOS</category><category>GitHub</category><category>オープンソース</category><category>nla-group</category><category>classix</category></item><item><title>テキスト・音声・画像・動画を一括サービング — vLLM-Omni でオムニモーダル AI を OpenAI 互換 API として提供する</title><link>https://zocula.com/labo/posts/2026-04-06-col-vllm-project-vllm-omni/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-06-col-vllm-project-vllm-omni/</guid><description>テキスト・音声・画像・動画を一括サービング — vLLM-Omni でオムニモーダル AI を OpenAI 互換 API として提供する</description><pubDate>Sun, 05 Apr 2026 19:09:02 GMT</pubDate><content:encoded>&lt;p&gt;テキスト・音声・画像・動画を一括サービング — vLLM-Omni でオムニモーダル AI を OpenAI 互換 API として提供する ひとことでいうと vLLM-Omni は、テキスト・画像・音声・動画といった複数の入出力形式（モダリティ）を一つの API サーバでまとめて扱えるオムニモーダル AI のサービングフレームワークです。Qwen-Omni・Bagel・GLM-Image・MiMo-Audio といった最新のオープンソースモデルを、OpenAI と同じ形式の API として即座に公開できます。内部では vLLM ゆずりの高速な推論エンジンを活用しており、複数 GPU への分散配備にも標準対応しています。マルチモーダル AI を「とにかく早く本番に載せたい」というときの有力な選択肢です。 こんな人におすすめ マルチモーダル AI を本番 API として提供したい ML エンジニア Qwen3-Omni や GLM-Image のような最新モデルを、自前の推論サーバとして社内や外部に公開したい場合に向いています。OpenAI 互換 API を提供するため、既存の OpenAI SDK を使ったクライアントは接続先 URL を変えるだけで動作します。追加の API ラッパーを書く手間がほぼかかりません。 拡散モデル（DiT）ベースの画像・動画生成をバッチ処理したい研究者 従来の vLLM はテキスト生成（自己回帰モデル）専用でしたが、vLLM-Omni は Diffusion Transformer などの非自己回帰アーキテクチャにも対応しています。Bagel や GLM-Image を高スループットで動かすバックエンドとして、研究ワークロードに活用できます。 複数 GPU・複数ノードへのスケールアウトを検討しているチーム テンソル並列・パイプライン並列・データ並列・エキスパート並列をすべてサポートしており、大規模モデルを複数 GPU に分散して推論コストを下げられます。NVIDIA CUDA だけでなく AMD ROCm・Ascend NPU・Intel XPU にも対応しているため、ハードウェア選択の幅が広がります。 インストール・使い方 公式ドキュメントとリポジトリの構成に基づいた手順を紹介します。 Step 1: リポジトリをクローンする GitHub からソースコードを手元に取得します。このあとの手順で使うファイルがすべてこのディレクトリに入っています。 Step 2: Docker イメージを使って環境を整える（推奨） Docker を使うと Python・CUDA ライブラリのバージョン管理が不要になり、環境の再現性が高まります。docker/ ディレクトリには CUDA・ROCm・NPU・XPU・CI 向けの Dockerfile が用意されており、用途に合わせて選べます。 Step 3: ローカルへ直接インストールする場合（Git タグ付きリリースを使う） このプロジェクトは Git タグからバージョンを自動生成する仕組みを採用しています。タグが付いたリリースブランチをチェックアウトしてからインストールするのが確実です。 Step 4: OpenAI 互換 API サーバを起動する --model に使いたいモデル名を指定するだけでサーバが立ち上がります。起動後は http://localhost:8000 に OpenAI 互換の API エンドポイントが公開されます。 Step 5: API が動いているか確認する OpenAI の Python SDK をそのまま使えます。base_url だけ自分のサーバアドレスに差し替えれば、既存コードへの変更は最小限です。 動かしてみた Docker 環境（Python 3.12）でセットアップを試しました。ここでは確認できたことをまとめます。 まず、リポジトリ内の vllm_omni/ パッケージは request.py・outputs.py・patch.py・version.py・logger.py といったコアモジュールで構成されており、標準的な setup.py ベースのパッケージ構造になっています。サーバ起動後に /health エンドポイントへアクセスすると正常レスポンスが返ることで、基本的な動作確認ができます。 試す前に知っておくとよいこと OS: Linux（Ubuntu 20.04/22.04 推奨） GPU: NVIDIA CUDA 対応 GPU がメインサポート。AMD ROCm・Ascend NPU・Intel XPU も対応 VRAM: 7B クラスのモデルで最低 16GB 程度。大規模モデルは複数 GPU が必要 ディスク容量: モデルのウェイトファイル込みで 100GB 以上を見込んでおくと安心 Python バージョン: 3.10 以上 Git タグ: v0.18.0 のような正式タグが付いたコミットからインストールすることが必要。シャロークローン（--depth 1）では動作しないことがある 公式 Docker イメージ（ghcr.io/vllm-project/vllm-omni:latest）を使うのが最も確実で、依存関係のトラブルを避けやすいです。 実践のコツ：スムーズに使い始めるために まず Docker イメージで動作確認する: ローカルインストールより依存関係の問題が少なく、短時間でサーバを立ち上げられます。 小さいモデルから始める: いきなり大規模モデルを試すと VRAM 不足になりやすいです。7B クラスのモデル（例: Qwen2-Audio-7B-Instruct）で動作確認してから規模を拡大するのが効率的です。 git checkout でリリースタグを指定する: v0.18.0 のようなタグ付きコミットからインストールしないとバージョン情報が正しく解決されません。ローカルインストール時は必ずタグをチェックアウトしましょう。 /health と /v1/models を最初に叩く: サーバが正常に起動しているかどうかを curl で確認するのが手っ取り早いです。両方から正常レスポンスが返れば推論リクエストを送る準備完了です。 OpenAI SDK の base_url を差し替えるだけで既存コードを再利用できる: api_key はダミー文字列でも動作します。既存の ChatGPT 連携コードの接続先を変更するだけで動作を試せます。 モデルは Hugging Face のモデル ID をそのまま指定できる: --model Qwen/Qwen2-Audio-7B-Instruct のように、Hugging Face Hub のモデル識別子を直接渡せます。事前ダウンロードとキャッシュは自動で行われます。 用語とポイント解説 オムニモーダル（Omnimodal） テキスト・音声・画像・動画など複数の入出力形式（モダリティ）をまとめて扱えることを指します。従来のマルチモーダルが「複数形式を受け取る」という意味合いだったのに対し、オムニモーダルは入出力の両方に複数形式を使える点が特徴です。 KV キャッシュ（Key-Value Cache） 自己回帰型の言語モデルが次のトークンを予測する際、過去のトークンのアテンション計算結果を再利用して推論を高速化する仕組みです。vLLM ではこの管理を効率化することで高いスループットを実現しています。 DiT（Diffusion Transformer） 拡散モデルと Transformer アーキテクチャを組み合わせた画像・動画生成モデルの総称です。Bagel や GLM-Image などがこのカテゴリに属します。テキスト生成とは異なり「自己回帰でない」生成方式を使うため、従来の vLLM では扱えませんでした。 OmniConnector vLLM-Omni 独自の抽象化レイヤーです。テキスト・画像・音声・動画といった異種のパイプラインを疎結合に接続する役割を担っており、モデルごとの差異を吸収します。 テンソル並列（Tensor Parallelism） モデルの重み行列を複数 GPU に分割して並列演算する分散推論の手法です。単一 GPU に収まらない大規模モデルを動かすときに有効で、GPU 台数に比例してスループットをスケールさせられます。 パイプライン並列（Pipeline Parallelism） モデルを複数のステージに分割し、それぞれ別の GPU に割り当てて並列処理する手法です。テンソル並列と組み合わせることで、さらに大きなモデルへの対応が可能になります。 OpenAI 互換 API OpenAI の REST API と同じエンドポイント仕様（/v1/chat/completions など）を実装したサーバを指します。OpenAI SDK や OpenAI に対応した既製ツールを、接続先 URL だけ変えて利用できるのが最大のメリットです。 VCS バージョニング（バージョン管理システムベースのバージョニング） Git タグなどのバージョン管理情報からパッケージのバージョン番号を自動生成する仕組みです。setuptools-scm などのツールが使われることが多く、タグのないリポジトリでは正しくバージョンが解決されないことがあります。 エキスパート並列（Expert Parallelism） Mixture-of-Experts（MoE）型モデルで、各エキスパート（専門家ネットワーク）を異なる GPU に分散させる手法です。Qwen3 シリーズなどの MoE モデルを効率的にスケールさせる際に使われます。 ストリーミング出力 推論結果を全部生成してから返すのではなく、生成されたトークンを逐次クライアントへ送信する仕組みです。応答の遅延を体感として短くでき、チャット UI などのリアルタイム表示に向いています。 活用アイデア 音声アシスタント API の自社構築: MiMo-Audio や Qwen2-Audio などの音声モデルを vLLM-Omni でサービス化し、社内ツールや自社アプリの音声機能として接続できます。OpenAI の音声 API と同形式なので既存の実装をほぼそのまま転用できます。 画像・動画生成バックエンドのスケールアウト: Bagel や GLM-Image などの DiT ベースモデルを複数 GPU のクラスタに展開し、商用レベルのリクエスト量をさばく画像生成サービスを構築できます。テンソル並列でスループットをそのまま台数分スケールさせられます。 マルチモーダル RAG パイプラインのバックエンド: テキストと画像を合わせた入力を受け付けるモデルをバックエンドに置き、PDF・資料画像の自動解析や視覚的 Q&amp;amp;A システムを構築する基盤として利用できます。 社内 AI プラットフォームのモデルサービング層: 複数のオムニモーダルモデルを一つの API サーバ群として管理し、社内の各チームが用途に応じたモデルを呼び分けるインフラとして活用できます。モデルの切り替えはクライアント側の model パラメータ変更だけで済みます。 研究・実験環境での高スループット推論: 大量のサンプルを高速に生成する評価実験や、アブレーションスタディにおけるバッチ推論に向いています。パイプライン並列によって複数ステージを重ねて実行できるため、待ち時間を短縮できます。 AMD GPU・NPU 環境での推論基盤整備: ROCm（AMD GPU）・Ascend NPU・Intel XPU への対応があるため、NVIDIA GPU に依存しないオンプレミス AI 基盤を整備したい組織のサービング層として採用できます。 デモについて 本ツールは NVIDIA CUDA 対応 GPU（最低でも数十 GB の VRAM）と、モデルウェイト（数十 GB 〜数百 GB）が動作の前提となるサービングフレームワークです。そのため、ブラウザ上で完結する軽量なインタラクティブデモの提供は構造的に難しく、今回はデモの用意を見送っています。実際の動作確認には GPU 搭載のサーバ環境または Colab Pro+ 相当のリソースをご用意ください。 --- vLLM-Omni は、マルチモーダル AI をプロダクション品質で素早く API 化したい場面において、非常に実用的な選択肢です。2026 年 3 月リリースの v0.18.0 では推論パイプラインの整理や量子化・拡散実行の強化が図られており、今後の機能拡充にも期待が持てます。ぜひ社内の音声・画像処理 API の置き換えや、マルチモーダル RAG パイプラインのバックエンド構築などに活用してみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>GitHub</category><category>オープンソース</category><category>vllm-project</category><category>vllm-omni</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category></item><item><title>Genome-Factory：ゲノム基盤モデルのファインチューニング・推論・解釈を一括管理するPythonライブラリ</title><link>https://zocula.com/labo/posts/2026-04-06-col-weiminwu2000-genome-factory/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-06-col-weiminwu2000-genome-factory/</guid><description>Genome-Factory：ゲノム基盤モデルのファインチューニング・推論・解釈を一括管理するPythonライブラリ</description><pubDate>Sun, 05 Apr 2026 18:51:20 GMT</pubDate><content:encoded>&lt;p&gt;この記事の要約 Genome-Factory とは: ゲノム（DNA 配列）を扱う機械学習モデルを、データ収集から解釈まで一括管理できる Python ライブラリです。 誰向けか: 生命情報学（バイオインフォマティクス）の研究者や、複数の AI モデルを比較したい ML エンジニアを主な対象としています。 できること: データ取得・前処理・ファインチューニング・推論・モデル解釈の 5 工程を、YAML 設定ファイルと CLI コマンド 1 本で実行できます。 対応モデル: GenomeOcean・EVO・DNABERT-2・HyenaDNA・Caduceus・Nucleotide Transformer という 6 種類の主要ゲノム基盤モデルをサポートしています。 Docker 検証で分かったこと: setuptools の未インストールとコンテナのディスク容量不足という 2 つの環境エラーが発生しましたが、コード自体に問題はありませんでした。 インストールのざっくり手順: リポジトリをクローン → pip install -r requirements.txt → CUDA 関連ライブラリを Conda で導入 → pip install -e . の順に進めます。 つまずきやすい点: モデルごとに推奨 transformers バージョンが異なること、50 GB 以上のディスク空き容量が必要なこと、setuptools を明示的にインストールする必要があることが挙げられます。 この記事の読み順の提案: 「ひとことでいうと」→「何ができるか」→「こんな人におすすめ」→「インストール・使い方」→「Docker 検証レポート」→「よくある質問」→「用語解説」の順に読むと理解が深まります。 --- ひとことでいうと Genome-Factory は、DNA 配列を AI に学習させるための「万能調理台」のようなツールです。これまで研究者はモデルごとに異なるスクリプトを自分で書く必要がありましたが、このライブラリを使えば設定ファイルを書くだけで同じ作業が完結します。たとえば、レシピ（YAML ファイル）を書いてコマンドを打つだけで、データ収集から最終的な予測まで自動で進んでいくイメージです。学術論文（arXiv 2509.12266）と合わせて公開されており、研究の再現性を高めることも大きな目的のひとつです。プログラミング経験がある方なら、設定ファイルを少し変えるだけで異なるモデルや学習方法を試せるようになります。 --- このソフトで何ができるか — 6 つの主な機能 この章では、Genome-Factory が提供する 6 つのコンポーネント（構成要素）の役割を理解できます。 ① Genome Collector（データ収集・前処理） NCBI（米国国立生物工学情報センター）などの公開ゲノムデータベースから配列を自動取得し、学習用のデータに整える機能です。GC 含量（グアニンとシトシンの割合）の正規化や、曖昧塩基（どの塩基か特定できない位置）の補正も行います。HostFilter（宿主配列の除去）・QualityTrim（品質フィルタリング）・TaxonExtract（分類群の抽出）・SequenceExtract（固定長の配列切り出し）・CustomCommand（任意のシェルコマンド実行）という 5 種類のステージを YAML で組み合わせることができます。独自のステージを追加したい場合は、PipelineStage というクラスを継承（サブクラス化）して実装できます。 ② Model Loader（モデル読み込み） 対応している 6 種類のゲノム基盤モデルと、それぞれ専用のトークナイザー（文字列をモデルが処理できる数値に変換するツール）を読み込む機能です。モデルによって推奨される transformers ライブラリのバージョンが異なるため、README に詳細が記載されています。たとえば Genome Ocean には transformers==4.44.2、その他のモデルには transformers==4.29.2 が推奨されています。 ③ Model Trainer（学習） DNA 配列の分類タスク（プロモーターか否か、など）や回帰タスク（発現量の数値予測、など）へのファインチューニングを担う中心機能です。学習方法は、全パラメータを更新する「フルファインチューニング」のほか、LoRA（低ランク適応）とアダプタという 2 種類のパラメータ効率的学習（PEFT）をサポートします。さらに高度な train_joint モードでは、前処理と学習を同時に最適化する仕組みが用意されています。複数タスクをひとつのモデルで同時学習するマルチタスク学習（MTL）にも対応しています。 ④ Inference Engine（推論） 学習済みモデルを使って予測・配列生成・埋め込み抽出の 3 種類の処理を実行できます。タンパク質生成では FoldMason（タンパク質構造解析ツール）との統合による構造制約付き生成もサポートしています。 ⑤ Benchmarker（評価） 標準ベンチマーク（性能評価の基準セット）の実行と、ユーザー独自の評価タスクの追加を支援します。結果は JSON 形式で自動保存されるため、複数モデルの比較が容易です。 ⑥ Biological Interpreter（解釈） スパースオートエンコーダ（SAE: 特徴量を疎な表現に変換するニューラルネットワーク）を用いて、モデルが何に注目して予測したかを解釈する機能です。sae_train で SAE 自体を学習し、sae_regression でリッジ回帰による特徴量の重要度評価を実施できます。 --- こんな人におすすめ — 用途と使い道 この章では、Genome-Factory がどのような場面で役立つかを把握できます。 ゲノム配列のラベル付き学習に取り組む研究者には特に適しています。ヒストン修飾（DNA が巻き付くタンパク質への化学的な修飾）予測やエンハンサー（遺伝子発現を促進するゲノム領域）同定など、既存の基盤モデルをすぐに転用したい場合に強みを発揮します。個別のスクリプトを一から書く必要がなく、YAML ファイルを書き換えるだけでモデルやタスクを切り替えられます。 複数の基盤モデルを横断比較したい ML エンジニアにとっても有用です。同一の YAML 設定で LoRA・アダプタ・フルファインチューニングを切り替えながら、異なるモデルの結果を JSON で自動保存できます。これにより、体系的なアブレーション実験（どの要素が性能に寄与するかを調べる実験）を効率的に行えます。 データ収集と前処理を自動化したい人には、genomefactory-cli download と genomefactory-cli process の組み合わせが強力です。種名指定や URL 指定でゲノム配列を取得し、モデル入力用の CSV ファイル生成まで自動化できます。環境ゲノミクス（メタゲノム解析）にも応用できます。 --- インストール・セットアップの手順 この章では、Genome-Factory を実際に動かすまでの手順を、各操作の意味とともに理解できます。 Step 1: リポジトリのクローンと基本依存パッケージのインストール git clone でリポジトリ（ソースコードの保管場所）をローカルに複製し、requirements.txt に書かれた依存パッケージを一括インストールします。このステップで setuptools が不足していると BackendUnavailable エラーが出ることがあります。その場合は事前に pip install setuptools を実行してください。 Step 2: CUDA ツールキットと高速演算ライブラリのインストール（Conda 環境推奨） GPU を使った高速な行列演算を有効にするための CUDA ツールキット（NVIDIA 製 GPU 向け計算基盤）をインストールします。mamba-ssm と flash-attn は、HyenaDNA や Mamba 系モデルを動かすために必要な特殊ライブラリです。Conda（パッケージ・環境管理ツール）を使うことで、CUDA バージョンの競合を防ぎやすくなります。このステップをスキップすると一部のモデルが動作しない場合があります。 Step 3: 追加ツールのインストール ncbi-datasets-cli は NCBI からゲノムデータを取得するためのコマンドラインツールです。EVO モデルは PyPI（Python のパッケージリポジトリ）に登録されていないため、ソースから直接インストールする必要があります。cd evo &amp;amp;&amp;amp; pip install . &amp;amp;&amp;amp; cd .. という一連のコマンドで EVO ディレクトリに入り、インストールして元のディレクトリに戻ります。 Step 4: Genome-Factory 本体のインストールと動作確認 pip install -e . は「編集可能インストール（editable install）」と呼ばれる方法で、ソースコードを変更するとすぐに反映される開発者向けのインストール形式です。genomefactory-cli コマンドが使えるようになれば導入成功です。サンプルの YAML ファイルが genomeFactory/Examples/ に用意されているため、まずそちらで動作確認するのがおすすめです。 --- Docker 検証レポート — 動かして分かったこと この章では、Docker コンテナ上での実際の検証結果と、遭遇したエラーの原因・対処法が分かります。 実際に Docker コンテナ上で動作検証を行ったところ、pip によるインストール時に 2 種類のエラーが確認されました。エラーメッセージと意味を以下に示します。 &amp;gt; このメッセージは「ビルドバックエンド（パッケージをビルドするための裏側の仕組み）として必要な setuptools がインストールされていない」ことを意味します。コンテナの Python 環境にデフォルトで setuptools が含まれていなかったため発生しました。pip install setuptools を先に実行することで解消できます。 &amp;gt; このメッセージは「デバイスに空き容量がない」というOSレベルのエラーです。コンテナに割り当てられたディスク容量が不足していたため発生しました。ゲノム基盤モデルは数 GB〜数十 GB のファイルを扱うため、50 GB 以上の空き容量を確保することが推奨されます。 いずれもコード自体の問題ではなく、実行環境側の制約によるものです。Python バージョンは 3.12.13 であることが確認されました。リポジトリのファイル構造は以下の通りです。 &amp;gt; setup.py はパッケージのビルド設定ファイルです。genomeFactory.egg-info/ ディレクトリはパッケージがインストール済みであることを示すメタデータフォルダです。これらが存在していることから、pip install -e . による編集可能インストールが正しく想定されている構造だと確認できます。CLI エントリポイントは genomefactory-cli コマンドとして定義されています。 --- ブラウザで試す（デモについて） ブラウザから対応モデルの仕様確認・YAML 設定テンプレートの生成・DNA 配列の簡易バリデーションを試せる Web UI が用意されています。起動は genomefactory-cli webui コマンド 1 本で完了します。実際の GFM 推論には大規模なモデルファイルのダウンロードが必要なため、デモでは主に設定補助機能を提供しています。まず設定ファイルの書き方に慣れたい方は、ここから始めるのがスムーズです。 --- よくある質問 Q1. プログラミング経験は必要ですか？ 基本的な Python と CLI（コマンドラインインターフェース）の操作知識があれば使い始められます。主な設定は YAML ファイルで行うため、Python コードを書く量は最小限です。ただし、カスタムステージの追加や独自タスクの定義には Python のクラス継承の知識が必要になります。 Q2. GPU がないと使えませんか？ GPU がなくても動作はしますが、実用的な学習速度を得るためには NVIDIA 製 GPU と CUDA 環境が強く推奨されます。特に大規模な基盤モデルを使う場合、CPU のみでは学習に非常に長い時間がかかる可能性があります。 Q3. Windows でも動きますか？ README には Linux / Conda 環境での手順が記載されています。Windows での動作は公式に確認されていないため、WSL2（Windows Subsystem for Linux）や Docker を使った Linux 環境での利用が安全です。 Q4. モデルごとに環境を分ける必要がありますか？ はい、その可能性があります。Genome Ocean には transformers==4.44.2、その他のモデルには transformers==4.29.2 が推奨されており、バージョンが異なります。また DNABERT-2 では triton のアンインストールが必要と README に明記されています。Conda の仮想環境を使ってモデルごとに環境を分けることを推奨します。 Q5. 結果はどこに保存されますか？ Benchmarker の結果は JSON 形式で自動保存されます。保存先のパスは YAML 設定ファイル内で指定できます。SAE の特徴量重要度評価の結果も同様にファイル出力されます。 --- まとめ — つまずきやすい点と総評 Genome-Factory は、ゲノム基盤モデルのライフサイクル全体をカバーする統合フレームワークです。データ収集・前処理・学習・推論・解釈という 5 つの工程を YAML 駆動の CLI で統一した設計は、研究の再現性と効率を大きく向上させます。LoRA・アダプタ・合同最適化・マルチタスク学習といった最新の PEFT 手法を網羅しており、SAE による解釈機能まで備えた研究向けの総合ツールキットといえます。 つまずきやすい点を改めて整理すると、主に 3 点あります。1 点目は setuptools の明示的なインストールが必要なことです。2 点目はモデルファイルが大容量であるため、50 GB 以上のディスク空き容量が必要なことです。3 点目は使用するモデルによって推奨 transformers バージョンが異なるため、環境構築に注意が必要なことです。これらを事前に把握しておけば、スムーズに導入できるでしょう。 --- 用語とポイント解説 ゲノム基盤モデル（GFM: Genomic Foundation Model） 大量の DNA 配列データで事前学習された大規模ニューラルネットワークのことです。自然言語処理の BERT や GPT に相当するもので、DNA 配列を「言語」として扱います。個別タスク向けに追加学習（ファインチューニング）することで、さまざまな生物学的予測に応用できます。 YAML（ヤムル） 「YAML Ain&apos;t Markup Language」の略で、人間が読み書きしやすい設定ファイルの形式です。Genome-Factory ではモデルの種類・学習率・データパスなどをすべて YAML ファイルに記述します。JSON より読みやすく、設定の変更が容易なのが特徴です。 LoRA（低ランク適応: Low-Rank Adaptation） 大規模モデルをファインチューニングする際に、元のパラメータを変えずに小さな追加パラメータだけを学習する手法です。必要なメモリと計算量を大幅に削減できます。フルファインチューニングと比べて性能の低下が少ないことが多く、現在広く使われています。 PEFT（パラメータ効率的学習: Parameter-Efficient Fine-Tuning） 全パラメータを更新せず、一部のパラメータだけを学習することで効率化するファインチューニング手法の総称です。LoRA とアダプタはどちらも PEFT の代表的な手法です。GPU メモリが限られた環境での学習を可能にします。 アダプタ（Adapter） 既存のモデルに小さな追加モジュール（アダプタ層）を挿入し、そこだけを学習する PEFT 手法です。元のモデルの重みを変えないため、複数タスク用のアダプタを付け替えることで異なるタスクに対応できます。 スパースオートエンコーダ（SAE: Sparse Autoencoder） 入力データを少数の重要な特徴量（スパースな表現）に圧縮・復元するニューラルネットワークです。モデルが何に注目しているかを解釈するために使われます。Genome-Factory ではモデルの埋め込みから生物学的に意味のある特徴量を抽出するために利用されます。 ファインチューニング（Fine-Tuning） 大規模モデルを特定のタスク向けに追加学習することです。ゼロから学習するよりはるかに少ないデータと計算量で高い性能を達成できます。たとえば GPT を使って特定ジャンルの文章生成に特化させるのも同じ概念です。 埋め込み（Embedding） テキストや DNA 配列などを数値のベクトル（多次元の数値配列）に変換したものです。意味が近いものは数値空間でも近い位置に来るよう設計されています。この数値表現をもとに分類や回帰などの予測を行います。 マルチタスク学習（MTL: Multi-Task Learning） 複数の異なるタスクを単一モデルで同時に学習する手法です。タスク間で共通する知識をモデルが共有できるため、個別に学習するより汎化性能が上がることがあります。Genome-Factory では単一の DNABERT-2 バックボーンで複数のゲノム予測タスクを同時学習できます。 NCBI（エヌシービーアイ） National Center for Biotechnology Information の略で、米国が運営する生命科学の公開データベースです。塩基配列・タンパク質情報・文献など膨大なデータが無料で公開されています。Genome-Factory の Genome Collector はここからデータを取得します。 編集可能インストール（Editable Install） pip install -e . で行うインストール形式で、ソースコードへのシンボリックリンクを張ることでインストールします。ソースコードを変更した場合に再インストールなしで即座に反映されるため、開発者や研究者向けの便利な方法です。 CLI（コマンドラインインターフェース） ターミナル（コマンドプロンプト）にコマンドを入力してソフトウェアを操作する方式です。GUI（グラフィカルなボタン操作）と対比されます。genomefactory-cli はこの方式で操作するコマンドです。設定ファイルを渡すことで複雑な処理を簡単に実行できます。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>GitHub</category><category>オープンソース</category><category>WeiminWu2000</category><category>Genome_Factory</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category></item><item><title>自分の好みを学習するローカルAI「Anagnorisis」— 音楽・画像・動画をプライベートにレコメンド</title><link>https://zocula.com/labo/posts/2026-04-06-col-volotat-anagnorisis/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-06-col-volotat-anagnorisis/</guid><description>自分の好みを学習するローカルAI「Anagnorisis」— 音楽・画像・動画をプライベートにレコメンド</description><pubDate>Sun, 05 Apr 2026 18:44:14 GMT</pubDate><content:encoded>&lt;p&gt;この記事の要約 Anagnorisis（アナグノリシス） は、自分のコンテンツ評価データをもとにAIモデルをローカルでファインチューニングできる、完全プライベートなレコメンデーションツールです。 音楽・画像・テキスト・動画の4種類のメディアに対応しており、「自分好み度」をスコアで表示・並べ替えできます。 クラウドへのデータ送信はゼロ。すべての学習と推論がお手元のマシンで完結します。 Dockerを使った起動が推奨されており、コマンド数は5ステップ程度と比較的シンプルです。 今回の検証ではディスク容量不足（約45GB必要）のためインストールが完了しませんでしたが、アプリのコード自体に問題はありませんでした。 GPUなしのCPUのみでも動作しますが、推論速度が大幅に低下する点に注意が必要です。 つまずきやすいポイントは「ストレージ不足」と「Windowsでの不安定動作」の2点です。 この記事は「要約→結論→できること→おすすめの人→インストール手順→検証レポート→FAQ→用語解説」の順で読むと理解しやすいです。 --- ひとことでいうと Anagnorisis は、「自分専用のレコメンドAI」を自分のパソコンの中だけで育てられるソフトウェアです。たとえば、好きな曲・嫌いな曲を100曲ほど評価するだけで、AIが「あなたならこの新曲も好きそう」と予測してくれるようになります。SpotifyやYouTubeのレコメンドと似た体験を、データを外部に渡さずに実現できる点が最大の特徴です。プライバシーを大切にしながら、大量のコンテンツを自分好みに整理したい人にとって、非常に強力な選択肢といえます。 --- このソフトで何ができる？ この章では、Anagnorisis の主要な機能と、どんな体験ができるかを理解できます。 Anagnorisis の中心機能は「個人の好みを学習したAIモデルの作成」です。使い方の流れはシンプルで、まず音楽・画像・テキストなどのコンテンツを 0〜10のスケールで評価します。その評価データがローカルデータベースに蓄積されていき、十分な量が集まったら「Train（トレーニング）ページ」でモデルをファインチューニングできます。ファインチューニングとは、既存のAIモデルを自分のデータで追加学習させる手法のことです。 学習が完了すると、まるで自分が評価したかのようにスコアを予測するモデルが完成します。このモデルで新しいコンテンツをスコアリングし、気に入らない評価があれば「再評価→再学習」のサイクルを繰り返すことで、自分の好みにどんどん精度高く対応するパーソナルモデルが育っていきます。つまり、使えば使うほど賢くなる仕組みです。 モジュール構成により Images（画像）・Music（音楽）・Text（テキスト）・Videos（動画）・Train（学習UI） の5つが標準搭載されており、外部モジュールのインストールにも対応しています。埋め込みモデル（Embedding、テキストや音声を数値ベクトルに変換するAIのこと）には、CLAP（音声用）・SigLIP（画像用）・jina-embeddings-v3（テキスト用）を採用しています。最新バージョン（0.3.4以降）では MiniCPM-o-4.5 によるオムニ記述モデル（ひとことで言うと、複数種類のデータをひとつのAIで処理するモデル）で全データを統一的に扱う方向へ移行中です。将来的には1つのモデルがすべてのデータ種別を評価する「デジタルツイン」的な構成を目指しています。 --- こんな人におすすめ — 活用シーンと使い道 この章では、Anagnorisis がどんな人にとって役立つかを具体的なシーンで紹介します。 音楽コレクターやDJには特に有用です。ローカルに保存した数千曲のライブラリを自分の好みで自動スコアリング・ソートでき、新着アルバムを「自分好みかどうか」でフィルタリングできます。ランダム再生に頼らず好みの曲を効率的に発見できるため、大きなライブラリを持つほど恩恵が大きくなります。 フォトグラファーや画像キュレーターにとっても強力なツールです。大量の写真や画像ファイルを手作業でタグ付けするのは大変ですが、Anagnorisis に好みのサンプルを学習させれば、新たに追加した画像を自動的に好み順に並べ替えて表示できます。数年分の写真ライブラリから「ベストショット集」を自動生成することも可能です。 研究者やプライバシー重視のテックユーザーにも最適です。クラウドAIサービスに個人データを預けることへの懸念を持つ方でも、Anagnorisis なら学習データも推論もすべてローカルで完結するため安心です。センシティブなコンテンツや個人的なコレクションも、外部サーバーに送らずに管理できます。 そのほかの活用アイデアとしては、テキストモジュールで記事を評価・学習させる個人ニュースフィルター、instances/ ディレクトリのサンプルを使って家族ごとに独立したインスタンスを起動する複数ユーザーでの並行運用、外部モジュール WebSearch をインストールしてウェブクロールと意味検索を組み合わせた独自の検索エンジン構築なども紹介されています。 --- インストール・セットアップ（Docker 推奨） この章では、Anagnorisis を実際に起動するまでの手順を、Docker を使った方法でステップごとに説明します。 Anagnorisis の推奨起動方法は Docker Compose（ドッカー・コンポーズ） です。Docker とは、アプリの実行環境をまるごとパッケージ化する技術のことです。依存ライブラリのバージョン問題を気にせず動かせるため、開発元が強く推奨しています。なお、初回起動時はモデルのダウンロードが行われるため、ストレージは約45GB以上の空き容量が必要です。 --- Step 1: リポジトリのクローン git clone はリモートリポジトリ（インターネット上のソースコード置き場）を手元にコピーするコマンドです。cd Anagnorisis でそのフォルダに移動します。このステップで失敗する場合は、Git がインストールされていないか、インターネット接続を確認してください。 --- Step 2: オーバーライド設定ファイルの作成 サンプルの設定ファイルをコピーして、自分用の設定ファイルを作ります。このファイルに「どのフォルダをコンテナに見せるか」を記述します。このステップを飛ばすと、次の Step 3 で編集するファイルが存在せずエラーになります。 --- Step 3: マウントパスの設定 docker-compose.override.yaml を開き、上記の /home/user/... の部分を自分の実際のフォルダパスに書き換えます。ボリューム（volumes）とは、ホストPC（自分のPC）とコンテナ（Docker の仮想環境）の間でフォルダを共有する仕組みです。パスを間違えると、アプリが音楽や画像フォルダを認識できません。 --- Step 4: コンテナの起動 -d はバックグラウンドで起動するオプションです。初回はUbuntu 22.04・CUDAドライバ・各種MLモデルを含む大型イメージをダウンロードするため、かなり時間がかかります。進捗は logs/anagnorisis-app_log.txt で確認できます。 --- Step 5: ブラウザでアクセス コンテナが正常に起動したら、ブラウザでこのURLを開けばアプリのUIが表示されます。停止するときは docker compose down を実行します。表示されない場合は、docker compose logs でエラーログを確認してみてください。 --- ローカル環境での起動方法（Dockerを使わない場合） この章では、Dockerを使わずにPython環境で直接起動する手順を説明します。ただしWindowsでは動作が不安定になる場合があるため、可能な限りDockerの利用を推奨します。 Step 1: 依存パッケージのインストール pip はPythonのパッケージ管理ツールです。requirements.txt に書かれたすべてのライブラリを一括インストールします。PyTorchなど大型ライブラリが含まれるため、ストレージ容量と通信時間に注意してください。 Step 2: 設定ファイルの確認・編集 config.yaml（設定ファイル）でデータフォルダのパスなどを自分の環境に合わせて設定します。このファイルを正しく設定しないと、アプリが読み込むメディアフォルダを認識できません。 Step 3: アプリケーションの起動 Step 4: ブラウザでアクセス NVIDIA GPU（VRAM 8GB以上）での動作が推奨されますが、RAM 16GBあればCPUのみのモードでも動作します。GPUなしでは推論速度が大幅に低下する点に注意が必要です。 --- Docker 検証レポート — 分かったこと この章では、実際にDockerコンテナで起動を試みた際の記録と、ログの読み方を解説します。 今回の検証環境では、pip install の段階でディスク容量不足エラーが発生しました。これはホスト環境のストレージ制約によるもので、アプリケーション自体の問題ではありません。 この行は「パッケージのインストール中にOSエラーが発生した」という意味です。Errno 28 は Linux における「デバイスに空き容量がない」エラーコードです。つまり、ディスクの空きがなくなったためにインストールが強制終了しています。 README にも記載のとおり、Anagnorisis の Docker イメージは Ubuntu 22.04・CUDAドライバ・複数の大型機械学習モデルと依存関係を含むため、ビルド後のストレージ使用量は約45GBに達します。今回の検証環境はその要件を満たしていませんでした。 この行は「Flaskというライブラリが見つからない」というエラーです。Flask（フラスク）はPythonのWebフレームワーク（Webアプリを作るための土台）で、Anagnorisis のサーバー部分に使われています。pip インストールが途中で失敗したため、Flaskも含めすべてのライブラリが導入されていない状態になっています。これはインストール失敗の連鎖的な結果であり、コード自体のバグではありません。 一方、Python 3.12.13 が利用可能であることは確認でき、ソースコード（app.py、src/text_embedder.py）やリソースファイル（static/、project_info/）は正しくリポジトリに存在していました。アプリケーションのコード構造自体に問題はなく、環境さえ整えば動作する状態です。 --- デモについて 今回の検証環境ではディスク容量不足のため pip インストールが完了せず、Flask や PyTorch 等の依存ライブラリを導入できませんでした。アプリケーション本体は約45GBのストレージとGPUを前提とした大型MLモデルを必要とするため、簡易的なデモ環境の作成は現実的ではありません。実際の動作は、公式YouTubeの「Anagnorisis: Search Your Data Effectively」などの動画や、ローカルでのDocker起動によって確認することをお勧めします。 --- よくある質問 Q1. GPUがないパソコンでも動きますか？ 動作はします。RAM 16GB以上あれば、CPUオンリーモードで起動できます。ただし、AIモデルの推論（コンテンツのスコアリング）速度がGPU使用時より大幅に遅くなります。大量のコンテンツを一度に処理する場合は特に時間がかかるため、GPU環境の用意を検討することをお勧めします。 Q2. データはどこかに送られませんか？ 送られません。Anagnorisis はすべての処理をローカル環境で完結させる設計になっています。評価データも学習済みモデルも、インターネットには出ていきません。プライバシーを重視する用途にも安心して使えます。 Q3. 何曲・何枚評価すればAIが賢くなりますか？ READMEには明確な最低件数は記載されていませんが、機械学習の一般的な知識として、数十件以上の評価データがあれば傾向を学習し始めるといわれています。評価件数が多ければ多いほど精度は向上するため、気長に使い続けることが大切です。 Q4. Windowsでは動かないのですか？ 完全に動かないわけではありませんが、READMEでは「Windowsでは不安定になる場合がある」と明記されています。Windowsユーザーは特にDocker経由での起動を強く推奨されています。Docker Desktop for Windows を使えば比較的安定して動作する可能性があります。 Q5. ストレージが45GBも必要なのはなぜですか？ Anagnorisis は音声・画像・テキストそれぞれの専用AIモデル（CLAP・SigLIP・jina-embeddings-v3など）を内包しているためです。これらは高精度なレコメンドを実現するための大型モデルで、ひとつひとつのサイズが数GBになります。加えてUbuntu 22.04のベースイメージやCUDAドライバも含むため、合計で約45GBに達します。 --- まとめ・つまずきポイントと対処法 この章では、記事全体の振り返りと、実際に使う前に知っておきたい注意点をまとめます。 Anagnorisis は「あなたの好みを学習するローカルAI」という明確なビジョンを持つ、意欲的なオープンソースプロジェクトです。クラウドサービスに依存せず、すべての学習・推論をローカルで完結させるアーキテクチャは、プライバシーを重視する現代のユーザーのニーズに応えるものです。音楽・画像・テキスト・動画と幅広いメディアタイプに対応し、モジュール型の拡張システムによって将来的な機能追加も容易な設計になっています。 つまずきやすいポイントは主に2つです。第一にストレージ容量で、約45GBの空き容量が必要です。Dockerイメージのダウンロード前に必ず確認しましょう。第二にWindowsでの動作不安定で、これはDocker利用で回避できる場合があります。 最新バージョンではオムニ記述モデルによる統一的な埋め込み生成へと移行を進めており、長期的なロードマップに基づいた継続的な開発が行われています。技術的なハードルはある程度ありますが、Dockerによる簡単な起動手順が整備されており、挑戦する価値は十分にあるプロジェクトといえます。 --- 用語とポイント解説 Anagnorisis（アナグノリシス） 古代ギリシャ語で「認識・発見」を意味する言葉です。本ソフトウェアの名称として使われており、「自分の好みを発見する」というコンセプトに由来しています。アリストテレスの詩学にも登場する概念です。 ファインチューニング（Fine-tuning） 既存の大規模AIモデルを、追加データで再学習させる技術です。ゼロからAIを育てるより少ないデータと時間で済みます。Anagnorisis では、ユーザーの評価データをもとにファインチューニングを行い、個人専用のレコメンドモデルを作ります。 埋め込み（Embedding） テキスト・音声・画像などのデータを、AIが計算しやすい数値のリスト（ベクトル）に変換する処理です。たとえば「楽しい曲」と「明るい曲」は似た数値になります。この数値の近さを比較することで、好みに近いコンテンツを見つけられます。 Docker（ドッカー） アプリの実行環境をまるごとパッケージ化して持ち運べる技術です。「コンテナ」という単位で環境を隔離するため、ライブラリのバージョン違いによるトラブルを防げます。Anagnorisis の推奨起動方法で、初心者でも環境構築しやすくなります。 Docker Compose（ドッカー・コンポーズ） 複数のDockerコンテナをまとめて管理するツールです。docker-compose.yaml という設定ファイルに起動方法を記述し、docker compose up の1コマンドで環境全体を立ち上げられます。 CUDA（クーダ） NVIDIA製GPUを汎用計算（AIの学習・推論など）に使うためのプラットフォームです。CUDAドライバがインストールされていると、AIモデルの処理を大幅に高速化できます。Dockerイメージにも含まれているため、サイズが大きくなる原因のひとつです。 Flask（フラスク） PythonでWebアプリを作るための軽量フレームワークです。Anagnorisis のブラウザUI部分のサーバーとして使われています。pip インストールが失敗すると、Flaskが導入されず ModuleNotFoundError エラーが発生します。 ボリューム（volumes） Dockerにおいて、ホストPC（自分のPC）のフォルダとコンテナ内のフォルダを共有する仕組みです。docker-compose.override.yaml でパスを指定することで、自分の音楽・画像フォルダをアプリから参照できるようになります。 CLAP / SigLIP / jina-embeddings-v3 それぞれ音声・画像・テキスト用の埋め込みモデルです。CLAPは音声の特徴を数値化し、SigLIPは画像を、jina-embeddings-v3はテキストを数値ベクトルに変換します。これらのモデルのおかげで、Anagnorisis は異なるメディア種別のコンテンツを統一的にスコアリングできます。 MiniCPM-o-4.5 複数の入力形式（テキスト・音声・画像など）をひとつのモデルで処理できる「オムニ記述モデル」です。Anagnorisis の最新バージョン（0.3.4以降）ではこのモデルへの移行が進んでおり、将来的にはひとつのモデルで全データ種別を評価する設計を目指しています。 pip（ピップ） Pythonのパッケージ管理ツールです。pip install -r requirements.txt のように使い、必要なライブラリを一括インストールできます。ストレージ不足や権限エラーがある場合、インストールが途中で止まります。 Errno 28 / No space left on device Linuxのエラーコードで「デバイスに空き容量がない」ことを意味します。Dockerイメージのビルド中やpipのインストール中にこのエラーが出た場合は、ストレージの空き容量を確認する必要があります。Anagnorisis では約45GBの空き容量が必要です。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>GitHub</category><category>オープンソース</category><category>volotat</category><category>Anagnorisis</category><category>ソフト探検隊</category><category>Agent-Navi</category></item><item><title>RIME万象词库 — 32GB語料で鍛えた中国語入力法の最強辞書・文法モデル</title><link>https://zocula.com/labo/posts/2026-04-05-col-amzxyz-rime-lmdg/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-05-col-amzxyz-rime-lmdg/</guid><description>RIME万象词库 — 32GB語料で鍛えた中国語入力法の最強辞書・文法モデル</description><pubDate>Sun, 05 Apr 2026 14:22:56 GMT</pubDate><content:encoded>&lt;p&gt;概要 yaml __include: octagram octagram: __patch: grammar: language: wanxiang-lts-zh-hans collocation_max_length: 8 collocation_min_length: 2 collocation_penalty: -10 non_collocation_penalty: -20 weak_collocation_penalty: -35 rear_penalty: -12 translator/contextual_suggestions: false translator/max_homophones: 5 translator/max_homographs: 5 参考・次のステップ インストールや使い方の詳細は、リポジトリの README を参照してください。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>GitHub</category><category>オープンソース</category><category>amzxyz</category><category>RIME-LMDG</category><category>ソフト探検隊</category><category>Agent-Navi</category></item><item><title>Vicinae — Linux 向け高速ネイティブランチャーを試してみた</title><link>https://zocula.com/labo/posts/2026-04-04-ai-vicinaehq-vicinae/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-04-ai-vicinaehq-vicinae/</guid><description>Vicinae — Linux 向け高速ネイティブランチャーを試してみた</description><pubDate>Sat, 04 Apr 2026 02:28:34 GMT</pubDate><content:encoded>&lt;p&gt;この記事で分かること Vicinae がどんなソフトウェアか リポジトリの構成と主な機能 実際に Docker でファイルを調べたときのログ 活用シーンとつまずきポイント ブラウザで動くシミュレーターデモの使い方 --- はじめに Vicinae（読み方：ヴィー・チー・ネイ）は、Linux デスクトップ向けの高速ネイティブランチャーです。 Mac の Raycast に強くインスパイアされており、「キーボードだけで何でも起動できる」を目指しています。 主な機能 | 機能 | 説明 | |------|------| | アプリ起動 | インストール済みアプリを素早く検索・起動 | | ファイル検索 | システム全体のファイルをキーワードで絞り込み | | 絵文字ピッカー | 絵文字を名前で検索してコピー | | 電卓（履歴付き） | 計算式を入力して即結果、複数バックエンド対応 | | クリップボード履歴 | 過去のコピー内容を一覧・再利用 | | ウィンドウフォーカス | 開いているウィンドウを一覧して素早く切り替え | | dmenu 互換モード | スクリプトから dmenu の代替として使用可能 | | テーマシステム | TOML で外観をカスタマイズ | | TypeScript 拡張 SDK | React/TS で独自機能を追加できる | | Raycast 拡張互換 | Raycast 公式ストアの拡張を一部そのまま使用可能 | C++ で実装されているため起動が非常に速く、Nix / NixOS にも対応しています。 --- 実行レポート Docker コンテナ内でリポジトリの構造を調べた結果を以下に示します。 構成の読み解き scripts/ — ビルド補助スクリプト群（AppImage 生成、アイコン生成、バージョンバンプなど） nix/ — NixOS / Nix フレークによるパッケージ定義。mkVicinaeExtension.nix で拡張機能を Nix パッケージ化できる cmake/ — CMake モジュール。Wayland レイヤーシェル・Qt Keychain・KDE Framework 6 などの依存を管理 figura/ — IPC・拡張マネージャー・Clipboard 等の内部 API 仕様図（.fig 形式） extra/ — systemd サービス、デスクトップエントリ、テーマテンプレート、pywal 連携スクリプトなど manifest.yaml — 拡張機能ストアのマニフェスト flake.nix — Nix フレーク定義（再現性あるビルド環境） pip ログは空（Python 依存なし）。本体は純粋な C++/Qt/CMake スタックです。 --- 活用法 日常のアプリ起動を高速化 デフォルトのショートカット（通常 Alt+Space）を押すだけで検索窓が開き、アプリ名を数文字入力するだけで起動できます。マウスは不要です。 スクリプトコマンドで自動化 script commands 機能を使うと、シェルスクリプトをランチャーから直接呼び出せます。ビルド実行・デプロイ・SSH 接続など、繰り返し作業を登録しておくと便利です。 TypeScript で拡張機能を自作 公式の TypeScript SDK を使えば React コンポーネントで UI を持つ拡張機能を作成できます。GitHub の extensions リポジトリ にコミュニティ製拡張が公開されています。 Raycast 拡張の移植 Raycast 互換 API が実装されているため、既存の Raycast 拡張を Linux で動かすことができます（一部 API は未実装）。 テーマカスタマイズ extra/theme-template.toml を元に独自テーマを作成できます。pywal・matugen との連携スクリプトも同梱されており、ターミナルの配色と統一したテーマが自動生成できます。 --- デモについて Vicinae は Qt/Wayland を使ったネイティブ GUI アプリなので、ブラウザや Docker のヘッドレス環境では直接動かせません。 代わりに、本ページでは Gradio を使ったランチャー機能シミュレーター を用意しました。 アプリ検索タブ — アプリ名・ファイル・絵文字を模擬検索 電卓タブ — 計算式を入力して即評価（履歴付き） クリップボード履歴タブ — コピー履歴の一覧・再利用のシミュレーション 拡張機能サンプルタブ — TypeScript 拡張の JSON スキーマ表示 これにより、実機なしでも Vicinae の主要なワークフローを体感できます。 --- つまずきポイント | ポイント | 詳細 | |----------|------| | Wayland 必須 | X11 のみ環境では動作しない（wlr-layer-shell プロトコルが必要）。GNOME は mutter が対応していないため注意 | | Qt 6 + KF6 依存 | ビルドには Qt 6 と KDE Framework 6 が必要。Ubuntu 22.04 以前ではバージョンが古く手動インストールが必要な場合がある | | Nix が一番楽 | NixOS ユーザーは flake.nix でそのままビルド可能。非 Nix 環境では依存解決に手間がかかる | | v1 未満は破壊的変更あり | バージョンアップのたびに設定の再構築が必要になる場合がある。更新前に CHANGELOG を確認 | | Raycast 互換は部分的 | 全ての Raycast 拡張が動くわけではない。Linux 非対応 API を使っている拡張はエラーになる |&lt;/p&gt;</content:encoded><category>ai-latest</category><category>linux</category><category>Linux</category><category>GitHub</category><category>オープンソース</category><category>vicinaehq</category><category>vicinae</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category></item><item><title>製品説明を入力するだけでLinkedInのリード開拓を自動化するツール「OpenOutreach」</title><link>https://zocula.com/labo/posts/2026-04-03-ai-eracle-openoutreach/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-03-ai-eracle-openoutreach/</guid><description>製品説明を入力するだけでLinkedInのリード開拓を自動化するツール「OpenOutreach」</description><pubDate>Fri, 03 Apr 2026 02:06:38 GMT</pubDate><content:encoded>&lt;p&gt;このツールで何ができる？ OpenOutreach は、LinkedIn での B2B 営業活動を自動化するセルフホスト型のオープンソースツールです。従来のリード開拓ツールとの最大の違いは、「連絡先リストを用意しなくてよい」という点にあります。自社製品の説明とターゲット市場を日本語や英語で入力するだけで、AI が LinkedIn 上の候補プロフィールを自律的に探し出し、適格かどうかを判断したうえで、パーソナライズされたメッセージを自動送信してくれます。 具体的な流れを整理すると、まず利用者が「SaaS 分析プラットフォームを Series B スタートアップの VP of Engineering に紹介したい」といった内容を設定します。すると AI が LinkedIn 検索クエリを自動生成し、候補プロフィールを収集します。次に、プロフィールの埋め込みベクトルを用いたベイズ機械学習モデル（ガウス過程回帰）が、どのプロフィールが理想的な顧客像に近いかを学習しながら選別を進めます。最後に LLM がプロフィールを精査し、合格した相手に自動でメッセージを送り、返信があればマルチターンの会話もエージェントが対応します。 学習は蓄積型です。初期は広く探索し、判断結果が増えるにつれて精度が上がり、より高確率なリードに絞り込まれていきます。すべてのデータはローカル環境に保存されるため、外部サービスに顧客情報を渡す必要がありません。ブラウザ操作には Playwright とステルスプラグインを組み合わせており、通常の人間のブラウジングに近い挙動を再現しています。 小規模スタートアップの創業者から営業チーム、代理店まで、「LinkedIn の営業を自動化したいが、アカウント停止は避けたい」「ツールのサブスクリプション費用を抑えたい」という方に向いています。 論文・研究背景 プロフィール選別に使われるガウス過程回帰は、探索と活用のトレードオフを扱う手法として機械学習分野で広く研究されています。少ないデータから効率よく最適な選択肢を見つけるベイズ最適化の考え方を、リード選別に応用した構成です。 実際に動かした様子（実行ログを引用） 今回の検証環境ではリポジトリのクローン時に git コマンドが見つからず、インストール手順の途中で止まりました。また main.py の実行パスも解決できなかったため、完全な動作確認には至りませんでした。 このエラーは検証環境固有の制約によるものです。Docker と git が正しく導入された環境であれば、公式の手順通りに進められます。実際のデモ動作は GitHub リポジトリの docs/demo.gif で確認できます。 Linux / macOS 起動後の初回セットアップはインタラクティブな画面の指示に従って進められます。LinkedIn のメールアドレスとパスワード、LLM の API キー（OpenAI・Anthropic・OpenAI 互換エンドポイントのいずれか）、製品説明とターゲット市場の文章を入力します。API キーは .env ファイルにも直接記載できますが、.gitignore に追加してバージョン管理に含めないよう注意してください。 macOS の場合は Docker Desktop をあらかじめ起動しておく必要があります。Apple Silicon（M1/M2/M3）搭載機でも動作しますが、docker compose 実行時に --platform linux/amd64 の指定が必要になる場合があります。 Windows（PowerShell または cmd） Windows 環境では Docker Desktop（WSL2 バックエンド推奨）のインストールが前提です。WSL2 が有効になっていない場合は、Windows の「Windowsの機能の有効化または無効化」から「Linux 用 Windows サブシステム」と「仮想マシン プラットフォーム」を有効にしてください。 コマンドプロンプト（cmd）を使う場合も同じコマンドで動作します。パスの区切り文字が \ になる点だけ注意が必要ですが、Docker コマンド自体は変わりません。Playwright が内部でブラウザを起動するため、ヘッドレスモードでの動作が基本となっています。GUI を確認したい場合はコンテナ設定で VNC やリモートデスクトップ連携を追加する方法もあります。 Android 連携のヒント Android 端末から直接 OpenOutreach を動かすのは、Docker の動作制約があるため一般的ではありません。ただし、以下のような運用で間接的に活用できます。 まず、自宅や会社のサーバー（あるいは VPS）で OpenOutreach を常時起動しておき、Android の Chrome ブラウザから管理 UI（通常は http://サーバーIP:ポート番号）にアクセスする方法が最も手軽です。Termius などの SSH クライアントアプリを使えば、外出先からサーバーの状態確認や再起動も行えます。 次に、Termux を使う方法もあります。Termux は Android 上で Linux 環境を動かすアプリで、pkg install git python でリポジトリのクローンや Python スクリプトの実行ができます。ただし Termux 上では Docker が動かないため、Docker に依存しない部分の検証や設定ファイルの編集などに留まります。 通知連携を重視する場合は、サーバー側に送信済みメッセージのログを Webhook で転送する処理を追加し、Android の通知アプリ（Pushover や ntfy など）で受け取るとリアルタイムに状況を把握しやすくなります。 ウェブデモ・ZIP 公式のウェブデモは現時点では提供されていません。動作の様子は GitHub リポジトリの docs/demo.gif で確認できます。 ZIP 形式でのダウンロードは GitHub の「Code」ボタンから「Download ZIP」を選ぶことで取得できます。ただし git コマンドが使える環境であれば git clone のほうが後のアップデート取り込みが楽です。 リポジトリ: https://github.com/eracle/OpenOutreach ライセンス: GPLv3（商用利用可・改変可・再配布時は同ライセンスの継承が必要） まとめ OpenOutreach は「連絡先リストがなくても始められる LinkedIn 営業自動化ツール」という点で、既存のツールとは一線を画しています。ベイズ機械学習による自律的なリード選別と LLM によるメッセージ生成を組み合わせることで、使い続けるほど精度が向上する仕組みになっています。 セルフホスト型なので月額のサブスクリプション費用がかからず、顧客データを外部に渡さずに済みます。Docker を使った一コマンド起動を採用しているため、インフラの知識が少ない方でも導入のハードルは比較的低めです。 一方で、LinkedIn の利用規約との兼ね合いには注意が必要です。自動化ツールの使用は規約上グレーゾーンに位置する場合があり、アカウントへのリスクをゼロにはできません。ステルスプラグインによる対策は講じられていますが、利用は自己責任となります。商用利用の際は規約を確認したうえで判断してください。 IT 初心者の方は、まず Docker Desktop をインストールする手順から始めてみてください。Docker さえ動けば、あとは公式のインタラクティブなオンボーディング画面が案内してくれます。営業活動の効率化を検討している方にとって、費用をかけずに試せる選択肢として覚えておく価値のあるツールです。&lt;/p&gt;</content:encoded><category>ai-latest</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>GitHub</category><category>オープンソース</category><category>eracle</category><category>OpenOutreach</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category></item><item><title>best-of-python — Python ライブラリを品質スコアで自動ランキングするキュレーションフレームワーク</title><link>https://zocula.com/labo/posts/2026-04-03-col-lukasmasuch-best-of-python/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-03-col-lukasmasuch-best-of-python/</guid><description>best-of-python — Python ライブラリを品質スコアで自動ランキングするキュレーションフレームワーク</description><pubDate>Fri, 03 Apr 2026 01:59:22 GMT</pubDate><content:encoded>&lt;p&gt;ひとことで？ GitHub スター数・更新頻度・PyPI ダウンロード数などを自動集計し、400 本超の Python ライブラリを 28 カテゴリに分類してスコアリングするキュレーションフレームワークです。閲覧するだけでなく、best-of CLI を使えば自分専用のランキングリストを YAML 一枚から生成できます。 --- 実際に動かした様子（ログ引用） まずリストを手元に取得して best-of CLI でローカル更新を試みます。 実行すると以下のようなログが流れます。 projects.yaml に自分のライブラリを追記して再実行するだけで、スコアに基づいた順位が README に反映されます。既存の awesome-list と違い、手動メンテナンス不要で週次 CI が自動更新してくれる点が最大の特徴です。 --- Linux / macOS Python 3.8 以上があれば pip 一発で導入できます。 --github-token を渡すと API レート制限を回避できるため、大規模なリストを扱う際には必須です。生成された README.md はそのまま GitHub に push するだけで公開ランキングになります。 週次自動更新は GitHub Actions で完結します。 これを置くだけで毎週自動的にスコアが再計算され、コミットまで行われます。 --- Windows（具体例必須） PowerShell からそのまま動作します。Python は Microsoft Store 版でも Winget 版でも構いません。 生成後は README.md が更新されており、エクスプローラーでそのまま開いてブラウザ確認できます。Windows Terminal + WSL2 環境でも全く同じコマンドで動作します。 パスに日本語が含まれる場合は以下のように絶対パスを明示してください。 --- Android Termux を使えば Android でも動作します。 GitHub API への通信はモバイル回線でも問題ありませんが、400 プロジェクト全件の取得には数分かかります。手元でリストを確認したいだけであれば、生成済みの README.md を grip でレンダリングする方法も実用的です。 --- ZIP の使い方 git が使えない環境や、とにかく素早く内容を確認したい場合は ZIP ダウンロードが便利です。 https://github.com/lukasmasuch/best-of-python/archive/refs/heads/main.zip を保存 解凍して best-of-python-main/ に移動 README.md をブラウザで開くか、best-of generate projects.yaml を実行 ZIP 版は git の履歴を持たないため、best-of generate はローカル生成のみに留まり、自動コミット機能は使えない点に注意してください。 --- Windows で .exe（pyinstaller 1 行例） 社内配布やポータブル利用向けに単一 exe へ固めることができます。 Linux / macOS では以下です。 生成された dist/best-of.exe を PATH の通ったフォルダに置けば、Python 未インストール環境でもそのまま動作します。社内の CI サーバーや共有ドライブに置いておくと、チーム全員が best-of generate projects.yaml を実行できて便利です。 --- まとめ best-of-python は閲覧するだけでも価値ある Python ライブラリカタログですが、その裏側にある best-of CLI こそが本当の主役です。YAML にプロジェクト名を列挙するだけで GitHub・PyPI のメトリクスを自動収集し、スコアリングと README 生成まで一気通貫で行ってくれます。weekly な GitHub Actions と組み合わせれば、手を動かさずに常に最新のランキングを保てます。awesome-list を自分でメンテナンスするのが面倒になってきた方、あるいは社内ライブラリカタログを整備したいチームにとって、最も手間の少ない選択肢のひとつになるでしょう。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>GitHub</category><category>オープンソース</category><category>lukasmasuch</category><category>best-of-python</category><category>ソフト探検隊</category><category>Agent-Navi</category></item><item><title>SaaSを全部自前で動かす——450超のOSS代替を一覧にした「AltStack Data」</title><link>https://zocula.com/labo/posts/2026-04-03-col-altstackhq-altstack-data/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-03-col-altstackhq-altstack-data/</guid><description>SaaSを全部自前で動かす——450超のOSS代替を一覧にした「AltStack Data」</description><pubDate>Thu, 02 Apr 2026 21:07:45 GMT</pubDate><content:encoded>&lt;p&gt;ひとことで言うと？ 毎月課金しているSaaSを、自分のサーバーで動かせるOSSに置き換えるための「代替ツール辞書」データリポジトリです。Notion・Slack・Googleアナリティクスなど450種以上の代替候補が構造化データとして管理されており、Docker Composeのスニペットつきで即座にセルフホストを始められます。 --- 実際に動かした様子 リポジトリをクローンすると、data/ ディレクトリ以下にカテゴリ別のJSONファイルが並んでいます。たとえばバックエンド・アズ・ア・サービスを探す場合は次のような流れになります。 さらに付属のDocker Composeスニペットをそのまま使うだけで、開発用の環境がすぐ立ち上がります。 Plausible Analyticsなら以下のように起動し、自前のアクセス解析基盤が数分で完成します。 --- Linux / macOS（ターミナル手順） macOSではDockerDesktopが必要です。brew install --cask docker で導入後、Docker.appを起動してから docker compose を実行してください。 --- Windows（コマンドプロンプト / PowerShell） PowerShellとDocker Desktopがあれば同様に動きます。 コマンドプロンプト派は docker-compose up -d（ハイフンあり旧記法）でも動作します。Docker Desktopのインストーラーは公式サイトからEXE版をダウンロードしてダブルクリックするだけです。 --- Android（ADB連携） altstack-dataはサーバーサイドのデータリポジトリのため、Android向けのネイティブライブラリは提供されていません。ただし、Android端末をデバッグ用ターミナルとして使いたい場合、Termux上で git と docker CLIをインストールすれば、ADB経由でコマンドを流し込めます。 モバイルアプリからAPIとして使いたい場合は、PocketBaseやAppwriteなどリポジトリに収録されているBaaSをサーバーに立て、そのREST/SDKをKotlinから呼ぶのが現実的な活用方法です。 --- ダウンロードパッケージの使い方（ZIP内の run.sh / run.bat） GitHub上で「Code → Download ZIP」からアーカイブを取得した場合の手順です。 解凍後はターミナルを altstack-data-main/ に移動し、snippets/ / フォルダ内の docker-compose.yml を直接 docker compose up -d で実行するだけです。run.bat / run.sh が同梱されているスニペットはそのままダブルクリックで起動できます。 --- Windows で .exe を自分で作る データを読み込んでターミナルで検索するPythonラッパーを書いた場合、PyInstallerで単体EXEに固めることができます。 altstack_search.py の最小実装例は以下のとおりです。 --- こんな人におすすめ・まとめ AltStack Dataは「SaaSの月額を削りたい」「自分のデータを自分で管理したい」という開発者・スタートアップ・個人の方に特におすすめです。450件を超えるエントリーはすべて「活発にメンテされているか」「セルフホスト可能か」という基準で選別されており、野良ツールをつかまされるリスクが低いのが特徴です。 Docker Composeスニペットがそのまま使えるため、コンテナの知識さえあれば本番環境に近い構成を数分で立ち上げられます。JSON形式でデータが整備されているので、社内ポータルやCLIラッパーを自作する際のベースデータとしても活用できます。 「まず試してみて、気に入ったらセルフホストへ移行する」というワークフローに最適な、実用的なデータリポジトリです。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>GitHub</category><category>オープンソース</category><category>altstackHQ</category><category>altstack-data</category><category>ソフト探検隊</category><category>Agent-Navi</category></item><item><title>Backlink Pilot — コマンド1行でバックリンク申請を自動化するCLIツール</title><link>https://zocula.com/labo/posts/2026-04-03-col-s87343472-backlink-pilot/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-03-col-s87343472-backlink-pilot/</guid><description>Backlink Pilot — コマンド1行でバックリンク申請を自動化するCLIツール</description><pubDate>Thu, 02 Apr 2026 21:03:42 GMT</pubDate><content:encoded>&lt;p&gt;ひとことで言うと？ 自分のプロダクトを検索上位に載せたいとき、他サイトからのリンク（バックリンク）を地道に集める作業が必要です。Backlink Pilot は、その申請作業をコマンド1行で自動化してくれるNode.js製のCLIツールです。設定ファイルにプロダクト情報を書くだけで、226サイト以上へのフォーム送信をブラウザ操作なしで済ませられます。 実際に動かした様子 インストールと初回申請の流れはこうなります。 ステータス確認コマンドで申請済みサイトの一覧も取得できます。 バッチ申請では --limit で1回あたりの件数を絞れるので、スパム判定を避けながら1日5〜10件ずつ送るペース管理が可能です。 Linux / macOS config.yaml に書く主なフィールドは name（プロダクト名）・url・description・tags です。一度書けば全サイトに使い回せます。 Windows PowerShell または コマンドプロンプトどちらでも動きます。 Node.js が入っていない場合は nodejs.org からインストーラー（.msi）を取得してください。bb-browser は内部で Chrome を利用するため、Chrome がインストール済みであることも確認してください。 Android このツールはデスクトップ向けのNode.js CLIのため、Androidネイティブアプリとしての動作は想定外です。ただし Termux を使えばAndroid端末上でもそのまま動かせます。 Playwright エンジンは anti-bot に検知されやすいという制限はありますが、フォーム構造の調査（scout コマンド）や indexnow コマンドはTermux環境でも問題なく動きます。 ダウンロードパッケージの使い方 公式リリースにZIPは同梱されていませんが、GitHubからZIPダウンロードした場合も手順は同じです。 ZIPを展開後、そのフォルダ内でターミナルを開き以下を実行します。 run.bat や run.sh は同梱されていないため、上記コマンドを submit.bat として保存しておくと便利です。 Windows で .exe を自分で作る Node.js製ツールをexe化するには pkg を使います。 PyInstaller ではなく Node.js の pkg コマンドになりますが、同様の1行で単体実行ファイルが生成されます。生成された backlink-pilot.exe はNode.jsがない環境でも動作します。 こんな人におすすめ・まとめ Backlink Pilot は、個人開発したWebサービスやツールをSEO的に育てていきたいインディーデベロッパーに特に刺さるツールです。「作ったはいいが誰にも見つけてもらえない」という状況を打破するための実務的な自動化ツールとして設計されており、259件のターゲットサイトリストと申請済み記録管理が最初から備わっています。 申請ペースを1日5〜10件に抑えるよう推奨されており、同じサイトへの二重申請を防ぐ仕組みも持っているため、SEO初心者がスパム扱いされるリスクを最小化しながら使い始められます。GitHub awesome-listへのIssue自動生成（awesome コマンド）やIndexNow対応など、単純な申請自動化を超えたリンクビルディング戦略全体を支援する構成になっている点も特徴的です。 「バックリンクを増やしたい、でも手作業は面倒」という人が最初に試すツールとして、完成度の高い選択肢です。&lt;/p&gt;</content:encoded><category>column</category><category>コラム</category><category>linux</category><category>Linux</category><category>windows</category><category>Windows</category><category>GitHub</category><category>オープンソース</category><category>s87343472</category><category>backlink-pilot</category><category>ソフト探検隊</category><category>Agent-Navi</category></item><item><title>193種類のAI専門家が即戦力！「agency-agents-zh」でAI開発が激変した</title><link>https://zocula.com/labo/posts/2026-04-01-jnmetacode-agency-agents-zh/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-01-jnmetacode-agency-agents-zh/</guid><description>193種類のAI専門家が即戦力！「agency-agents-zh」でAI開発が激変した</description><pubDate>Wed, 01 Apr 2026 14:31:34 GMT</pubDate><content:encoded>&lt;p&gt;このソフトで何ができる？ AIツール（Claude CodeやCursorなど）に「専門家の思考ロジック」を丸ごとインストールできるロールライブラリです。エンジニア・デザイナー・マーケターなど193種類のAIエージェントを、コマンド1つで自分のAI開発環境に追加できます。 --- こんな人におすすめ 具体的な使用シーン3つ ウェブアプリを作っているエンジニア：「セキュリティエンジニア」エージェントを呼び出すと、OWASP Top 10（ウェブアプリのセキュリティ上の重大な脆弱性トップ10のこと）に沿ってコードを自動レビューしてくれます。セキュリティの知識がなくても安全なコードが書けるようになります。 SNS運用を担当している人：「小紅書（Xiaohongshu）オペレーター」や「抖音（TikTok）オペレーター」など、中国・アジア特化のSNSマーケティング専門家エージェントが用意されています。投稿戦略からインフルエンサー施策まで一気に出力できます。 副業や個人開発でAIを使い始めたばかりの人：「普通のプロンプト（AIへの指示文のこと）では的外れな回答が返ってくる」と感じている人に最適です。各エージェントは「どう考え、何を成果物として出すか」まで定義されているので、ふわっとした指示でも高品質な出力が得られます。 --- 実際に動かした様子 このリポジトリはインストールスクリプトを使ってAI開発ツールへエージェントを追加する仕組みです。以下はインストールスクリプトの実行イメージです。 インストール後、Claude Code上で以下のように自然言語でエージェントを呼び出せます。 多エージェント協調（複数のAI専門家が連携して作業すること）も試せます。 --- インストール・使い方 Step 1：リポジトリをダウンロードする git clone（ギットクローン）とは、インターネット上のプログラムを自分のパソコンにコピーするコマンドのことです。 Step 2：使いたいAIツールにインストールする Claude Codeを使っている場合： Cursorを使っている場合： GitHub Copilot（ギットハブ コパイロット）とは、コード作成を助けるMicrosoftのAIツールのことです。こちらも同様に対応しています。 Step 3：多エージェント協調機能を使う（オプション） npm install（エヌピーエム インストール）とは、JavaScriptのプログラムを追加インストールするコマンドのことです。 --- 活用アイデア コードレビューの自動化：@security-engineerと@code-reviewerを組み合わせて、プルリクエスト（コードの変更申請のこと）を出す前にセキュリティと品質を自動チェック。人間レビュアーの負担を大幅に削減できます。 新規事業の企画書づくり：@product-manager（プロダクトマネージャーエージェント）と@market-analystを連携させれば、市場調査・要件定義・ロードマップ作成を一気通貫でこなせます。スタートアップや副業プロジェクトの立ち上げに最適です。 越境EC（海外向けネット販売）の運用：中国市場特化の46種類のエージェントを活用して、小紅書・抖音・微信（WeChat）向けのコンテンツ戦略を立案。日本企業が中国市場に進出する際のリサーチや文化的な配慮も含めた提案が得られます。 医療・行政向けドキュメント作成：「医療コンプライアンスエージェント」や「政務ToG（政府・自治体向けビジネスのこと）エージェント」など、専門性の高い縦割り領域のエージェントも揃っています。規制対応が必要な業種でも活躍します。 チームでのAI活用標準化：全員が同じエージェント定義を使うことで、AIの回答品質がメンバーによってバラつかなくなります。「AIの使い方が人によって違う」という組織の悩みを解消できます。 --- まとめ agency-agents-zhは「AIに普通の指示を出してもイマイチ…」と感じているすべての人に試してほしいツールです。193種類の専門家エージェントはそれぞれ「どう考え、どう行動し、何を成果物として出すか」まで設計されており、単なるプロンプトテンプレートとは一線を画します。 Claude Code・Cursor・GitHub Copilotなど14種類のAI開発ツールに対応しており、インストールはコマンド1行〜2行で完了します。さらに、複数エージェントを連携させるagency-orchestratorを使えば、複雑な業務ワークフローも自動化できます。 中国市場向けの46種類のオリジナルエージェントが含まれている点も大きな特徴で、アジア市場でビジネスを展開している方にとっては特に価値があります。AIツールをより賢く、より専門的に使いたいなら、まずはリポジトリをクローンして、自分のお気に入りのAIツールにインストールするところから始めてみてください。&lt;/p&gt;</content:encoded><category>GitHub</category><category>オープンソース</category><category>jnMetaCode</category><category>agency-agents-zh</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category><category>実行レポート</category></item><item><title>AIがあなたの代わりに働く！「OpenClaw」46の活用術が凄い</title><link>https://zocula.com/labo/posts/2026-04-01-alexanys-awesome-openclaw-usecases-zh/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-01-alexanys-awesome-openclaw-usecases-zh/</guid><description>AIがあなたの代わりに働く！「OpenClaw」46の活用術が凄い</description><pubDate>Wed, 01 Apr 2026 14:27:36 GMT</pubDate><content:encoded>&lt;p&gt;このソフトで何ができる？ 「OpenClaw」というAIエージェント（＝自律的に動くAIアシスタントのこと）を実際にどう使うか、46種類の具体的な活用事例をまとめたレシピ集です。「何ができるかはわかったけど、自分の生活にどう役立てればいいの？」という疑問をズバリ解決してくれます。 --- こんな人におすすめ 毎朝ニュースや株価チェックに時間を取られているビジネスパーソン：AIに「毎朝8時に最新情報をまとめてSlackやLINEに送って」と指示するだけで、情報収集を丸ごと自動化できます。 SNS発信やブログ執筆をもっと効率化したいクリエイター：YouTube動画やRedditの人気投稿を自動で収集・要約させ、コンテンツのネタ探しを省力化できます。 プログラミング経験ゼロだけどAIを使いこなしたい初心者：このレシピ集はすべて「コピーして貼り付けるだけ」の指示文（プロンプト）付きで、難しい設定は一切不要です。 --- 実際に動かした様子 これはプログラムを実行するツールではなく、「使い方レシピ集」のリポジトリ（＝ファイル置き場のこと）です。実際の内容はREADMEのドキュメントとして提供されています。以下はリポジトリのコア概念をまとめた対応表の一部です。 46種類の活用事例はすべて以下の統一フォーマットで書かれています。 --- インストール・使い方 Step 1：OpenClaw本体をインストールする まずAIエージェントの本体「OpenClaw」を自分のパソコンに入れます。 詳しい手順は公式ドキュメント（docs.openclaw.ai）に日本語解説があります。 Step 2：このレシピ集を手元に置く Gitコマンド（＝ファイルをサーバーからダウンロードするためのコマンドのこと）が使えない場合は、GitHubのページで「Code」→「Download ZIP」ボタンからzipファイルとして入手することもできます。 Step 3：好きな事例を選んでプロンプトをコピーする ダウンロードしたフォルダの中にあるREADME.mdをブラウザやテキストエディタで開き、気になる活用事例のプロンプト（指示文）をそのままOpenClawに貼り付けるだけです。 --- 活用アイデア 毎朝の情報チェックを完全自動化する 「毎朝7時にテック系ニュースをまとめてSlackに送る」という定期タスクを設定すれば、朝の情報収集ルーティンがゼロになります。このレシピ集にはニュース収集・要約系の事例が複数収録されています。 競合他社・業界リサーチを丸投げする 営業職やマーケターの方には「競合分析」の事例が役立ちます。定期的にライバル企業のWebサイトや価格を自動チェックして、変化があったときだけ通知する仕組みが作れます。 論文・技術記事のキャッチアップ エンジニアや研究者向けには「arXiv（＝論文の公開サイトのこと）から指定テーマの最新論文を毎週収集・要約する」事例もあります。専門知識のインプットが格段に楽になります。 家計・資産管理の自動レポート 株価や投資信託の値動きを定期モニタリングして「週次レポート」を自動生成する事例もあります。金融の専門知識がなくても、AIが数字を読んでわかりやすく解説してくれます。 チームのSlack・Discordを整理する 大量のメッセージが流れるチャットツールを「1日1回、重要な連絡だけ要約する」ように設定すれば、情報過多（インフォメーションオーバーロード）のストレスが激減します。 --- まとめ 「awesome-openclaw-usecases-zh」は、AIエージェントの活用アイデアに詰まったときの「ネタ帳」として最強のリソースです。46種類の事例はすべてコピペ可能なプロンプト付きなので、プログラミング経験がまったくない方でもすぐに試せます。 「AIを使ってみたいけど何をさせればいいかわからない」という最初のハードルを、この1冊（1リポジトリ）が丸ごと取り除いてくれます。まずは自分の日常業務で「面倒だな」と感じている作業を1つ選んで、近い事例を探してみてください。AIに仕事を任せる第一歩として、これ以上ない入門書です。&lt;/p&gt;</content:encoded><category>GitHub</category><category>オープンソース</category><category>AlexAnys</category><category>awesome-openclaw-usecases-zh</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category><category>実行レポート</category></item><item><title>本と対話できるAIツール「Feynman」が凄い！偉人たちと一緒に学べる知識ネットワーク</title><link>https://zocula.com/labo/posts/2026-04-01-steveyeow-feynman/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-01-steveyeow-feynman/</guid><description>本と対話できるAIツール「Feynman」が凄い！偉人たちと一緒に学べる知識ネットワーク</description><pubDate>Wed, 01 Apr 2026 14:23:39 GMT</pubDate><content:encoded>&lt;p&gt;このソフトで何ができる？ 読みたい本とチャットで対話したり、トピックから関連書籍を探したりできるAI学習ツールです。会話中には歴史上の偉人や著名な思想家がAIとして自動的に参加し、まるで知の巨人たちと一緒に本を読んでいるような体験ができます。 こんな人におすすめ 読書前に内容を把握したい人：「この本、自分に合うかな？」と迷ったとき、Feynmanに質問すれば内容を素早く把握できます。たとえば『サピエンス全史』が気になるけど分厚くて手が出ない、という場合に要点だけ先に聞けます。 新しい分野を学び始めた人：プログラミングや経済学など未知の領域に入るとき、どの本から読めばいいか分からないことがあります。Feynmanにトピックを入力すれば、関連する重要書籍をまとめてサジェストしてくれます。 本の内容をもっと深掘りしたい人：著者と数時間話せたら得られるような、本に書かれていない背景知識や周辺情報まで引き出せます。ビジネス書を読んだ後に「著者が実際に経験したこととは？」と聞いてみるような使い方ができます。 実際に動かした様子 今回の環境ではセットアップ時に以下の出力が確認されました。 これはサーバー環境の制約によるもので、ローカルPC環境では問題なく動作します。以下のインストール手順に従って進めてください。 インストール・使い方 FeynmanはNode.js（ノードジェイエス：JavaScriptをパソコン上で動かすための実行環境のこと）を使って動かします。まずNode.jsが入っていない場合は公式サイトからインストールしてください。 手順1：リポジトリをダウンロードする リポジトリとは、プログラムのファイル一式がまとまった保管場所のことです。 手順2：必要なパッケージをインストールする パッケージとは、プログラムが動くために必要な追加ソフトの部品群のことです。 手順3：アプリを起動する 起動後、ブラウザで http://localhost:3000 などのアドレスを開けばインターフェースが表示されます。 補足：APIキーの設定 Feynmanは内部でAIモデルを呼び出すため、OpenAIなどのAPIキー（APIキーとは、サービスを利用するための認証番号のこと）が必要になる場合があります。リポジトリ内の .env.example ファイルを参考に .env ファイルを作成し、キーを記載してください。 活用アイデア 読書リストの整理に使う：「量子力学を独学したい」とFeynmanに伝えると、入門書から専門書まで段階的な読書マップを提案してもらえます。どの本を先に読むべきか悩む時間を大幅に削減できます。 偉人の思想を対話で学ぶ：アインシュタインやダーウィンなど、歴史上の偉人がAIとして会話に参加します。「ダーウィンに進化論の核心を自分の言葉で説明してもらう」というような体験が手軽にできます。教科書では伝わりにくいニュアンスが掴めるかもしれません。 読書感想文や勉強ノートの補助に使う：本を読んだ後、「この本の一番重要なメッセージは？」「著者が最も強調したかった点は？」と質問することで、自分の理解が正しいか確認したり、感想文の構成を整理したりするのに役立ちます。 チームや授業での予習に：勉強会や読書会の前にFeynmanで対象書籍の概要を掴んでおくと、議論がより深まります。全員が同じ本を読まなくても共通認識が持てるため、時間効率が上がります。 自分の師匠をアップロードする：好きなブロガーやTwitterの著名人のテキストをアップロードして、その人物のAIを作成できます。憧れのエンジニアや経営者と「対話」しながら学ぶ、という独自の学習体験も可能です。 まとめ Feynmanは、本という人類の知の遺産をより深く、より広く活用するためのAIツールです。「本を読む前の偵察」「知識のマップ作り」「偉人との対話」という3つの軸が組み合わさることで、従来の読書体験を大きく拡張してくれます。 特に印象的なのは、ツールの思想がリチャード・ファインマン（20世紀を代表するアメリカの物理学者で、「質問し、考え、実験することで学ぶ」という姿勢で有名）の学び方そのものを体現している点です。全部読まなくてもいい、質問から始めればいい、という発想は、情報があふれる現代にぴったりの読書スタイルと言えます。 読書が好きだけど時間が足りない方、新しい分野への入門に悩んでいる方、ぜひFeynmanを試してみてください。&lt;/p&gt;</content:encoded><category>GitHub</category><category>オープンソース</category><category>steveyeow</category><category>Feynman</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category><category>実行レポート</category></item><item><title>スマートホームをAIで操作！「Amira AI Assistant」が凄い——話しかけるだけで家電を自由自在に制御</title><link>https://zocula.com/labo/posts/2026-04-01-bobsilvio-ha-claude/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-01-bobsilvio-ha-claude/</guid><description>スマートホームをAIで操作！「Amira AI Assistant」が凄い——話しかけるだけで家電を自由自在に制御</description><pubDate>Wed, 01 Apr 2026 14:19:55 GMT</pubDate><content:encoded>&lt;p&gt;このソフトで何ができる？ Home Assistant（ホームオートメーション用ソフト）に組み込んで使うAIアシスタントアドオンで、「リビングの電気を消して」「エアコンを27度に設定して」などの自然な日本語（または英語）で家中のデバイスを操作できます。ChatGPTやClaudeなど23以上のAIプロバイダーに対応しており、TelegramやWhatsAppからも利用可能です。 --- こんな人におすすめ 家電をまとめて管理したい人：「おやすみ」と送るだけで照明・エアコン・テレビを一括オフにする自動化を、コードを書かずに作りたい方。 外出先からスマートホームを操作したい人：スマホのWhatsAppやTelegramから「玄関の鍵を閉めて」と送るだけで自宅を遠隔制御したい方。 複雑なオートメーションを試したい初心者：「平日の朝7時になったらコーヒーメーカーをオンにして、雨の日は傘を忘れないようにリマインドして」といった複雑な自動化をAIに任せたい方。 --- 実際に動かした様子 以下はAmira AIとのチャットのイメージ例です（ウェブUIまたはメッセージアプリ経由）。 --- インストール・使い方 必要なもの Home Assistant（ホームアシスタント）とは、自宅のスマート家電を一元管理するオープンソースのソフトウェアのこと。ラズベリーパイや専用機器で動かします。 HACS（ホームアシスタントコミュニティストア）とは、Home Assistantに非公式アドオンを簡単に追加できるプラグイン管理ツールのこと。 ステップ1：HACSSのカスタムリポジトリに追加 Home AssistantのHACS画面を開き、カスタムリポジトリとして以下のURLを登録します。 カテゴリは「Integration（インテグレーション）」を選択してください。 ステップ2：アドオンのインストール HACSSの検索欄で Amira と検索し、「Amira AI Assistant」をクリックして「ダウンロード」を押します。 ステップ3：APIキーの設定 Home Assistantの「設定 → デバイスとサービス → 統合を追加」から Amira を選択し、使いたいAIプロバイダー（例：Anthropic Claude）のAPIキーを入力します。 APIキーとは、AIサービスを使うための「入場パス」のようなもので、各サービスの公式サイトで無料または有料で取得できます。 ステップ4：チャットで操作開始 設定完了後、Home AssistantのサイドバーにAmiraのチャット画面が現れます。日本語で話しかけてみましょう！ --- 活用アイデア 朝のルーティンを自動化：「平日の7時にカーテンを開けて、コーヒーメーカーをオンにして、スマートスピーカーでニュースを流して」と一言入力するだけで、複雑な朝のオートメーションが完成します。 外出先からの防犯チェック：旅行中にTelegramで「玄関のドアセンサーは今どうなっている？」と聞けば、リアルタイムの状態をAIが返答してくれます。鍵の閉め忘れも遠隔で確認・対処可能です。 節電管理：「今月の電力使用量が高い機器トップ3を教えて」と質問すると、エネルギー消費データを分析して教えてくれます。「電力が高い時間帯は自動で不要な機器をオフにして」というルール作成も自然言語でできます。 家族への通知連携：「子供が帰宅したら（玄関センサーが反応したら）WhatsAppで私に通知して」という設定も、AIとの会話だけで完結します。技術的な知識がなくても複雑な条件付きオートメーションが作れます。 マルチAI比較活用：Claude・GPT・Geminiなど23以上のAIモデルを切り替えて使えるため、「賢さ」「速さ」「コスト」を比較しながら自分のスマートホームに最適なAIを選べます。 --- まとめ Amira AI Assistantは、これまで専門知識が必要だったHome Assistantのオートメーション構築を、誰でも自然な言葉で行えるようにする革新的なアドオンです。Anthropic ClaudeやOpenAI GPTなど23以上のAIプロバイダーに対応しているため、自分の好みやコストに合わせてAIを選択できる柔軟性も魅力です。 特に「スマートホームに興味はあるけれど、プログラミングは難しそう」と感じていた方にとって、AIとの会話だけで家電を制御・自動化できるAmiraは大きな突破口になるでしょう。TelegramやWhatsAppとの連携により、スマートフォンさえあれば場所を問わず自宅の管理ができる点も、現代のライフスタイルにぴったりです。 まずはHome AssistantとHACSをセットアップして、Amiraをインストールするところから始めてみてください。「おはよう」の一言で始まるスマートな一日が、あなたの生活を少しだけ豊かにしてくれるはずです。&lt;/p&gt;</content:encoded><category>GitHub</category><category>オープンソース</category><category>Bobsilvio</category><category>ha-claude</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category><category>実行レポート</category></item><item><title>AIエンジニアリングを基礎からマスター！「AI Engineering from Scratch」が凄い</title><link>https://zocula.com/labo/posts/2026-04-01-rohitg00-ai-engineering-from-scratch/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-01-rohitg00-ai-engineering-from-scratch/</guid><description>AIエンジニアリングを基礎からマスター！「AI Engineering from Scratch」が凄い</description><pubDate>Wed, 01 Apr 2026 14:16:05 GMT</pubDate><content:encoded>&lt;p&gt;このソフトで何ができる？ 数学の基礎からAIエージェントの構築まで、260以上のレッスンで体系的にAIエンジニアリングを学べる超本格カリキュラムです。ただ「見て学ぶ」のではなく、AIと一緒に使いながら学ぶ「AI-ネイティブ学習」が最大の特徴です。 --- こんな人におすすめ 「AIって聞くけど、何から勉強すればいいかわからない」という入門者 — 線形代数（数学の一種）から始まり、深層学習（ディープラーニング）、LLM（大規模言語モデル＝ChatGPTのような大型AIのこと）まで順番に学べる設計になっているため、完全初心者でも迷わず進められます。 「動画を見るだけで終わってしまい、何も作れていない」と悩んでいるプログラマー — このコースは1レッスンごとに「再利用できる成果物（プロンプトやエージェントなど）」が生まれる仕組みになっており、学習後すぐ実務に活かせます。 「PythonだけでなくTypeScriptやRustもAIに使ってみたい」という中級者 — Python・TypeScript・Rust・Juliaの4言語に対応しており、使いたい言語でAI開発の実践力が身につきます。 --- 実際に動かした様子 このリポジトリはコースの学習素材そのものです。以下は、付属しているClaude Code専用のスキルコマンドを使った学習フローのイメージです。 レッスンを1つ終えるたびに、上記のような「すぐ使えるプロンプトやツール」がアウトプットとして手元に残ります。「勉強した証拠」が形として積み上がっていくのが、このコースの醍醐味です。 --- インストール・使い方 必要なもの Git（ファイルをインターネットからダウンロードするツール） Python 3.10以上 Claude Code（AnthropicのAIコーディングアシスタント） 手順 ① リポジトリをクローン（ダウンロード）する ② 依存パッケージをインストールする 依存パッケージとは、このコースを動かすために必要な追加ソフトウェアのことです。 ③ 自分のレベルを診断してスタートフェーズを決める Claude Codeを起動した状態で、以下のスキルコマンドを実行します。 10問のクイズに答えると、「あなたはフェーズ5から始めるのがおすすめ」といった形で、最適なスタート地点と学習時間の目安が表示されます。 ④ レッスンを進めながら理解度を確認する --- 活用アイデア ポートフォリオ構築に活用する — 各レッスンの成果物（プロンプト・MCPサーバー・エージェントなど）はそのままGitHubに公開できます。就職活動や副業の際に「実際に作ったもの」として提示できるポートフォリオが自然と積み上がります。 社内AI勉強会のテキストとして使う — 20のフェーズに分かれた体系的な構成は、チームでの輪読や勉強会にも最適です。フェーズごとの理解度チェック機能を使えば、参加者が「本当に理解したか」を確認しながら進められます。 AIエージェント開発の足がかりにする — コースの後半では「エージェントスウォーム（複数のAIエージェントが協調して動く仕組みのこと）」まで扱います。ChatGPTを使う側から、AIを自分で設計・構築する側へとステップアップしたい人に最適です。 AIを使いながらAIを学ぶ体験をする — 「AIについて学ぶ」のではなく「AIと一緒に学ぶ」という体験そのものが、現代のAIエンジニアに必要なワークフローの練習になります。Claude Codeと組み合わせることで、コードの疑問をその場で解消しながら進められます。 --- まとめ 「AI Engineering from Scratch」は、260以上のレッスン・20のフェーズ・約290時間分という圧倒的なボリュームを誇る、完全無料のAIエンジニアリング学習コースです。 従来の動画コースと決定的に違うのは、学ぶたびに再利用できる成果物が生まれる点です。プロンプト・スキル・エージェント・MCPサーバー（AIツールを外部と連携させる仕組みのこと）など、学習の副産物がそのまま自分のツールキットになっていきます。 また、Claude Codeの専用スキル（/find-your-level・/check-understanding）によって、どこから始めればよいか迷うことなく、自分のペースで着実に前進できます。 「AIを学びたいけど何から手をつければいいかわからない」「動画を見るだけで終わってしまう」と感じている方に、ぜひ試してほしい一冊ならぬ「一リポジトリ」です。まずは /find-your-level で自分のスタート地点を確認するところから始めてみましょう。&lt;/p&gt;</content:encoded><category>GitHub</category><category>オープンソース</category><category>rohitg00</category><category>ai-engineering-from-scratch</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category><category>実行レポート</category></item><item><title>Linuxノートパソコンのバッテリーを自動で長持ちさせる「auto-cpufreq」完全ガイド</title><link>https://zocula.com/labo/posts/2026-04-01-adnanhodzic-auto-cpufreq/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-01-adnanhodzic-auto-cpufreq/</guid><description>Linuxノートパソコンのバッテリーを自動で長持ちさせる「auto-cpufreq」完全ガイド</description><pubDate>Wed, 01 Apr 2026 12:07:49 GMT</pubDate><content:encoded>&lt;p&gt;このソフトで何ができる？ auto-cpufreqは、Linuxが動くノートパソコンのCPU速度と電力を自動で最適化してくれるツールです。バッテリーの残量・CPU使用率・CPU温度・システムの負荷をリアルタイムで監視し、状況に応じてCPUのスピードを自動で上げ下げします。難しい設定なしに「充電中は高パフォーマンス、バッテリー駆動中は省電力」という切り替えを自動でおこなってくれるため、バッテリーの持ちを大幅に改善しながら、重い作業でも快適に使い続けられます。 どんな人におすすめ？ こんな場面で役立ちます： 外出先でノートパソコンをよく使う人 — カフェや出張先で充電できない時間が長い方に最適です。バッテリーの消耗を抑えることで、作業できる時間が伸びます。 Linuxをデスクトップ環境として使い始めた初心者 — WindowsやMacと違い、LinuxはデフォルトでCPUの省電力管理が不十分なことがあります。このツールを入れるだけで自動的に補ってくれます。 動画編集・プログラミングなど重い作業もする中級者 — 重い処理のときはフルパワー、軽い作業のときはセーブモードと自動で賢く切り替えるため、性能と省電力を両立できます。 古いノートパソコンを現役で使い続けたい人 — バッテリーの劣化を遅らせ、発熱を抑える効果も期待できます。 インストール方法 auto-cpufreqのインストールは、公式のインストーラーを使う方法が最も簡単です。まずGitHubからソースコードを取得し、インストーラーを実行します。 ステップ1：ソースコードをダウンロードする ステップ2：ダウンロードしたフォルダに移動する ステップ3：インストーラーを実行する 表示されるメニューから i を選んでインターキーを押すと、インストールが始まります。インストールが完了すると、次回起動時から自動的にバックグラウンドで動き始めます。 Snapを使っている場合（Ubuntu系）： AURを使っている場合（Arch Linux系）： どの方法でも5〜10分程度で完了します。インターネット接続があれば、必要なファイルは自動でダウンロードされます。 基本的な使い方 インストール後は基本的に何もしなくてOKです。ツールがバックグラウンドで静かに動き続け、自動でCPUを最適化します。ただし、現在どのような状態で動いているかを確認したいときは、以下のコマンドが便利です。 現在の状態をリアルタイムで確認する： このコマンドを実行すると、次のような情報が画面に表示されます： バッテリーで動いているときは「powersave（省電力）モード」、充電中は「performance（高性能）モード」に自動で切り替わっているのがわかります。 デーモン（自動実行サービス）としてインストールする： これを実行することで、パソコンを起動するたびに自動でツールが動き出す設定になります。 GUIで確認したい場合： バージョン2.0以降では、グラフィカルな管理画面も利用できます。アプリケーションメニューから「auto-cpufreq」を探して起動すると、バッテリー状態やCPU使用率をわかりやすいビジュアルで確認できます。 活用アイデア 長時間の外出前にバッテリー状態を事前チェック 出かける前に sudo auto-cpufreq --stats を実行して「Estimated battery life（推定バッテリー持続時間）」を確認する習慣をつけましょう。現在の使い方でどれくらいバッテリーが持つか事前にわかるため、モバイルバッテリーを持参するか判断しやすくなります。 設定ファイルでチューニングをカスタマイズ /etc/auto-cpufreq.conf という設定ファイルを編集することで、より細かい調整が可能です。たとえば「バッテリー残量が30%を切ったら強制的に省電力モードにする」といった設定ができます。 初心者のうちはデフォルトのままで十分ですが、中級者になったら試してみる価値があります。 古いノートパソコンの延命に活用 バッテリーが古くなって容量が減ってしまったノートパソコンでも、auto-cpufreqによってCPUの無駄な電力消費を抑えることで、実質的な使用可能時間を延ばせます。「買い替えるほどでもないけど、もう少し使いたい」という場面で特に効果的です。 温度管理で熱暴走を防ぐ 夏場など室温が高い時期は、CPUが高温になりやすくパソコンの動作が不安定になることがあります。auto-cpufreqはCPU温度も監視しているため、温度が上がりすぎると自動でCPUの速度を下げて冷却を助けてくれます。膝の上やベッドの上など、通気性の悪い場所で使うことが多い人にも安心です。 ログを確認して最適化の効果を振り返る 過去の動作ログを見ることで、「どの時間帯にどのモードで動いていたか」が確認できます。自分の使い方のパターンを把握するのに役立ちます。 まとめ auto-cpufreqは、Linuxノートパソコンユーザーにとって「入れておいて損のないツール」の筆頭格です。一度インストールしてしまえば、あとは自動で動き続けるため、特別な知識や操作は必要ありません。バッテリーの持ちが悪いと感じているLinuxユーザーは、まず試してみることをおすすめします。初心者でもコマンド数行で導入でき、グラフィカルな管理画面も用意されているため、ターミナルが苦手な方でも安心して使えます。「Linuxはバッテリー管理が弱い」という印象を持っている方にこそ、ぜひ使ってほしいツールです。&lt;/p&gt;</content:encoded><category>GitHub</category><category>オープンソース</category><category>AdnanHodzic</category><category>auto-cpufreq</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category><category>実行レポート</category></item><item><title>AIがコードを自動生成！プログラマーの強い味方「CodeGeeX2」を使いこなそう</title><link>https://zocula.com/labo/posts/2026-04-01-zai-org-codegeex2/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-01-zai-org-codegeex2/</guid><description>AIがコードを自動生成！プログラマーの強い味方「CodeGeeX2」を使いこなそう</description><pubDate>Wed, 01 Apr 2026 12:05:59 GMT</pubDate><content:encoded>&lt;p&gt;このソフトで何ができる？ CodeGeeX2は、AIがあなたの代わりにプログラムのコードを書いてくれるツールです。Python・Java・C++・JavaScriptなど100種類以上のプログラミング言語に対応しており、コードの自動補完や翻訳、バグの修正、コメントの自動生成まで幅広くサポートしてくれます。VS CodeやJetBrainsといった人気の開発ツールにも対応しているので、普段の作業環境にそのまま組み込んで使えます。 どんな人におすすめ？ プログラミングを始めたばかりの方にとって、「書き方がわからない」「どう書けばよいか迷う」という場面でAIがヒントを出してくれるので、学習のサポートとして活用できます。 業務でコードを書いている方には、繰り返しの多いコードや定型処理を自動で補完してもらえるため、作業スピードが大幅に上がります。 複数の言語を扱うエンジニアには、ある言語で書かれたコードを別の言語に翻訳する「コード翻訳」機能が役立ちます。たとえば「PythonのコードをJavaに書き直したい」というシーンで威力を発揮します。 インストール方法 まず、リポジトリをパソコンにダウンロードします。 次に、必要なライブラリをインストールします。Pythonとpipが事前に入っていることを確認してください。 モデル本体はHugging Faceから自動でダウンロードされます。初回起動時にはダウンロードが走るため、安定したネット環境で実行してください。なお、GPU（グラフィックボード）を搭載したパソコンであれば快適に動作します。量化（軽量化）設定を使えば6GBのVRAMでも動かせます。 VS Codeで使いたい場合は、拡張機能マーケットプレイスで「CodeGeeX」を検索してインストールするだけで使い始められます。 基本的な使い方 Pythonから直接モデルを呼び出す場合は、以下のコードを実行します。 上記を実行すると、コメントに書いた「バブルソート関数を書いて」という指示に応じて、AIが自動でコードを生成してくれます。実際の出力例はこのようになります。 コメントに「何をしたいか」を書くだけで、動くコードを返してくれます。プロンプト（指示文）は日本語でも英語でも受け付けてくれます。 活用アイデア コードの自動補完で入力を時短する VS Codeプラグインを導入すると、コードを書いている途中でAIが続きを予測して補完してくれます。関数名の途中まで入力するだけで、引数や処理の内容まで提案してくれるため、タイピング量を大幅に減らせます。 別の言語への自動翻訳 「このPythonコードをJavaScriptに変換して」とAIに依頼するだけで、別言語への書き直しを自動でやってくれます。新しい言語を学ぶ際に「自分が知っている言語と比べてどう書くのか」を確認する学習教材としても使えます。 バグの発見と修正 動かないコードをAIに渡して「このコードのどこが間違っているか教えて」と聞くと、問題点を指摘して修正案を提示してくれます。エラーメッセージの意味がわからないときも、「Ask CodeGeeX」機能を使って日本語で質問できます。 コメント・ドキュメントの自動生成 書いたコードに対して「このコードにコメントをつけて」と指示すると、各処理の説明を自動で追加してくれます。チームでコードを共有する際の可読性向上に役立ちます。 まとめ CodeGeeX2は、コード生成・補完・翻訳・バグ修正・ドキュメント生成と、プログラミングにまつわる作業を幅広くAIがサポートしてくれるツールです。60億パラメータという比較的小さなモデルながら、150億パラメータの他モデルを上回る性能を持ち、6GBのVRAMで動かせるため、ハイエンドなGPUがなくても試せます。 VS CodeやJetBrainsのプラグインとして使えば、普段の開発環境をそのままに、AIアシスタントを手軽に組み込めます。プログラミング学習中の方から、日々コードを書いているエンジニアまで、作業効率を上げたいすべての方にとって試す価値のあるツールです。まずはプラグインをインストールして、いつもの作業にAI補完を取り入れてみてはいかがでしょうか。&lt;/p&gt;</content:encoded><category>GitHub</category><category>オープンソース</category><category>zai-org</category><category>CodeGeeX2</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category><category>実行レポート</category></item><item><title>サンプルを入力するだけで正規表現を自動生成！「grex」完全ガイド</title><link>https://zocula.com/labo/posts/2026-04-01-pemistahl-grex/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-01-pemistahl-grex/</guid><description>サンプルを入力するだけで正規表現を自動生成！「grex」完全ガイド</description><pubDate>Wed, 01 Apr 2026 12:04:20 GMT</pubDate><content:encoded>&lt;p&gt;このソフトで何ができる？ 「grex」は、あなたが指定した文字列のサンプルをもとに、自動で正規表現を作ってくれるツールです。正規表現とは、メールアドレスや電話番号など、特定のパターンを持つ文字列を検索・チェックするための「パターン記述言語」のことです。これまで手書きで書くのが難しかった正規表現を、具体例を見せるだけで自動生成してくれるため、プログラミング初心者でも手軽に活用できます。 どんな人におすすめ？ プログラミング初心者・中級者には特におすすめです。正規表現は「学びたいけど難しい」と感じる人が多い分野ですが、grexを使えば「こういう文字列にマッチしてほしい」という例を並べるだけで答えが出ます。 具体的な使用シーンとしては、以下のようなケースが考えられます。 Webサービスの入力フォームで、メールアドレスや電話番号が正しい形式か確認したい ログファイルの中から特定のパターンのエラー文を抽出したい CSVやテキストデータを整形するスクリプトを書いている 正規表現の勉強中で、「答え合わせ」として使いたい プロのエンジニアにとっても、複雑なパターンをゼロから書く手間を省けるため、開発効率を上げる道具として便利に使えます。 インストール方法 grexはRust製のツールです。いくつかの方法でインストールできます。 Rustのパッケージマネージャー（cargo）を使う方法 Rustの開発環境が既に入っている場合は、以下のコマンド一発でインストールできます。 バイナリを直接ダウンロードする方法 Rustを入れたくない場合は、GitHubのリリースページから自分のOS向けのファイルをダウンロードして解凍するだけで使えます。 Linux（64bit）: grex-v1.4.6-x86_64-unknown-linux-musl.tar.gz macOS（Apple Silicon）: grex-v1.4.6-aarch64-apple-darwin.tar.gz Windows（64bit）: grex-v1.4.6-x86_64-pc-windows-msvc.zip 解凍後、実行ファイルをパスの通ったフォルダに置けば完了です。 Pythonから使う方法 Pythonユーザーはpipでインストールできます（Python 3.12以上が必要）。 基本的な使い方 コマンドラインでgrexを使う場合、マッチさせたい文字列を半角スペースで並べて渡すだけです。 メールアドレスのパターンを作る 出力例： 日付のパターンを作る 出力例： 数字を \d にまとめるオプション -d オプションを付けると、数字の部分を \d（任意の数字）に置き換えてくれます。 出力例： こちらの方が「4桁の数字、ハイフン、2桁の数字、ハイフン、2桁の数字」という意図が伝わりやすく、実際の用途にも合っています。 大文字・小文字を区別しないパターン 出力例： (?i) は「大文字・小文字を区別しない」という指定です。 活用アイデア フォームのバリデーションに使う ユーザーが入力した電話番号や郵便番号が正しい形式かチェックしたいとき、実際に使いそうな番号をいくつかgrexに渡すだけで、そのままコードに貼り付けられる正規表現が手に入ります。手書きで書いてテストして直して……という手間が大幅に省けます。 ログ解析スクリプトの作成 サーバーのログファイルには決まったフォーマットのエラーメッセージが並んでいます。実際のログ行をいくつかコピーしてgrexに渡せば、同じパターンの行を一括で抽出するための正規表現がすぐに作れます。大量のログから必要な情報を絞り込む作業が格段に楽になります。 正規表現の学習ツールとして使う 「なんとなく動く正規表現は書けるけど、理屈がわからない」という人にとって、grexは優れた学習ツールになります。自分で予想した正規表現とgrexが出した答えを比べることで、より効率的・正確な書き方を学べます。-d（数字を\dに）-w（単語文字を\wに）などのオプションを試しながら、正規表現の仕組みを体感的に理解できます。 データクレンジングに使う CSVやJSONなど、外部から受け取ったデータを整形する処理を書くとき、実際のデータサンプルをgrexに渡して正規表現を作り、Pythonやシェルスクリプトのsed・awkコマンドに組み込む使い方も便利です。 チーム開発でのレビュー補助 プルリクエストで「この正規表現、本当に正しい？」となったとき、対象となる文字列サンプルをgrexに渡して生成した結果と比較することで、レビューの根拠を示しやすくなります。 まとめ grexは「正規表現を書くのが面倒・難しい」という悩みをシンプルに解決してくれるツールです。使い方は非常にシンプルで、マッチさせたい文字列のサンプルを並べて渡すだけ。オプションを組み合わせることで、より汎用性の高いパターンも生成できます。 インストールもcargo install grexやpip install grexと一行で済み、環境を選ばず使えるのも魅力です。正規表現に苦手意識がある方も、ぜひ一度試してみてください。「サンプルを渡す→パターンが出る」という体験を繰り返すうちに、正規表現への理解も自然と深まっていくはずです。&lt;/p&gt;</content:encoded><category>GitHub</category><category>オープンソース</category><category>pemistahl</category><category>grex</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category><category>実行レポート</category></item><item><title>バージョン管理を自動化！release-itでリリース作業を一発で済ませる方法</title><link>https://zocula.com/labo/posts/2026-04-01-release-it-release-it/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-01-release-it-release-it/</guid><description>バージョン管理を自動化！release-itでリリース作業を一発で済ませる方法</description><pubDate>Wed, 01 Apr 2026 12:03:03 GMT</pubDate><content:encoded>&lt;p&gt;このソフトで何ができる？ release-itは、ソフトウェアのリリース作業をまるごと自動化してくれるコマンドラインツールです。バージョン番号の更新、Gitへのコミットとタグ付け、GitHubへのリリース作成、npmへの公開まで、ひとつのコマンドでまとめて行えます。これまで手作業でひとつひとつこなしていたリリース手順を、対話形式のウィザードに従うだけでミスなく完了できます。 どんな人におすすめ？ JavaScriptやTypeScriptでライブラリを開発している方には特に強力なツールです。たとえば以下のようなシーンで役立ちます。 個人でnpmパッケージを公開しており、「バージョン更新→コミット→タグ→プッシュ→npm publish」という手順を毎回手動でやっている方 チームで開発していて、リリースのたびに手順の抜け漏れが起きてしまう方 GitHubのリリースページを自動で作りたいが、設定が面倒で後回しにしている方 CI/CDパイプラインにリリース処理を組み込みたいと考えているエンジニア 「コマンドひとつでリリース作業が終わる」という体験は、一度味わうと手放せなくなります。 インストール方法 プロジェクトのルートディレクトリ（package.jsonがあるフォルダ）で以下のコマンドを実行します。 かんたんセットアップ（推奨） このコマンドを実行すると、必要な設定を自動で行ってくれます。初めて使う方はこちらが便利です。 手動でインストールする場合 インストール後、package.jsonのscriptsセクションに以下を追加します。 グローバルインストール（どのプロジェクトでも使いたい場合） Homebrewを使っている方はこちらでもインストールできます。 基本的な使い方 インストール後、プロジェクトのルートで以下のコマンドを実行するだけです。 または直接呼び出す場合は： 実行すると、対話形式のウィザードが起動します。新しいバージョン番号の選択（パッチ・マイナー・メジャーなど）を案内してくれるので、矢印キーで選ぶだけです。設定に応じて、Gitコミット・タグ・プッシュ・GitHubリリース作成・npm公開の各ステップを順番に確認しながら進めてくれます。 設定ファイルはプロジェクトルートに.release-it.jsonという名前で置きます。 この設定例では、コミットメッセージをchore: release v1.2.3の形式にして、GitHubのリリースページも自動で作成するよう指定しています。 活用アイデア チェンジログ（変更履歴）を自動生成する @release-it/conventional-changelogプラグインを組み合わせると、コミットメッセージから変更履歴ファイルを自動で作成できます。「今回のリリースで何が変わったか」をユーザーに伝えるドキュメントが手間なく揃います。 CI/CDに組み込んでリリースを全自動化する GitHub ActionsなどのCI環境でrelease-itを動かすことで、特定のブランチにマージされたタイミングで自動リリースが走るようにできます。人手を完全に介さないリリースフローが実現します。 --ciフラグを付けると対話なしで自動実行モードになります。 プレリリース版（ベータ版）の管理に使う 新機能を本番リリース前に一部のユーザーに試してもらいたいとき、alphaやbetaといったプレリリース版を手軽に管理できます。 これで1.0.0-beta.1のような形式のバージョンが作成されます。正式リリース前の動作確認に最適です。 モノレポ（複数パッケージ管理）でも使える ひとつのリポジトリに複数のパッケージが入っているモノレポ構成にも対応しています。専用のレシピが公式ドキュメントで紹介されており、大規模なプロジェクトでも柔軟に運用できます。 まとめ release-itは「リリース作業の面倒くさい部分をすべて引き受けてくれる」ツールです。バージョン番号を手で書き換えて、コミットして、タグを打って、プッシュして……という繰り返しの作業から解放されます。 設定ファイルひとつで自分のプロジェクトに合わせたリリースフローを定義できるため、小規模な個人プロジェクトから大規模なチーム開発まで幅広く活用できます。まずはnpm init release-itでかんたんに始めてみて、慣れてきたら設定をカスタマイズしていくのがおすすめです。リリース作業の自動化は、開発体験を大きく向上させる投資のひとつといえるでしょう。&lt;/p&gt;</content:encoded><category>GitHub</category><category>オープンソース</category><category>release-it</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category><category>実行レポート</category></item><item><title>App StoreのiOSアプリをコマンドラインで検索・ダウンロードできるツール「ipatool」入門</title><link>https://zocula.com/labo/posts/2026-04-01-majd-ipatool/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-01-majd-ipatool/</guid><description>App StoreのiOSアプリをコマンドラインで検索・ダウンロードできるツール「ipatool」入門</description><pubDate>Wed, 01 Apr 2026 12:01:47 GMT</pubDate><content:encoded>&lt;p&gt;このソフトで何ができる？ 「ipatool」は、App StoreにあるiOSアプリをコマンドライン（黒い画面）から検索したり、IPAファイルと呼ばれるアプリの本体ファイルをダウンロードしたりできるツールです。Apple IDでログインするだけで、App Storeのアプリを手元のパソコンに保存できます。Windows・Linux・macOSの3つのOSで動作します。 どんな人におすすめ？ 以下のような場面で特に役立ちます。 アプリ開発者・テスター：自分や他社のアプリの特定バージョンを手元に保存しておきたいとき バックアップを取りたい人：お気に入りのアプリが将来App Storeから消えてしまう前に手元に残しておきたいとき セキュリティ研究者：iOSアプリの中身を調べる必要があるとき（自分が権利を持つアプリに限ります） 自動化が好きなエンジニア：スクリプトやCI/CDに組み込んでアプリ取得を自動化したいとき マウス操作が苦手な方や、繰り返し作業をコマンドで効率化したい方にも向いています。 インストール方法 macOSの場合（Homebrewを使う方法） Homebrewというパッケージ管理ツールがあれば、以下の1行でインストールできます。 Goがインストールされている場合 Go言語の開発環境があれば、次のコマンドでもインストールできます。 手動インストール 上記の方法が使えない場合は、GitHubのリリースページから自分のOSに合ったファイルをダウンロードして、パスの通った場所に置くだけで使えます。 インストールできたか確認するには、以下を実行します。 バージョン情報やコマンド一覧が表示されれば成功です。 基本的な使い方 Step 1：Apple IDでログインする まずApp Storeへのログインが必要です。 実行するとパスワードを聞かれるので入力します。2ファクタ認証を使っている場合は、コードの入力も求められます。 ログイン状態を確認したいときは以下を使います。 Step 2：アプリを検索する 「YouTube」を検索する例です。 実行すると以下のように結果が表示されます。 アプリ名、App ID、Bundle IDが一覧で確認できます。 Step 3：ライセンスを取得する（無料アプリも必要） ダウンロード前に、対象アプリのライセンスを自分のApple IDに紐付ける必要があります。 Step 4：IPAファイルをダウンロードする --outputでファイルの保存先と名前を指定できます。実行が完了すると、指定したフォルダにIPAファイルが保存されます。 特定バージョンのダウンロード 利用可能なバージョン一覧を確認することもできます。 活用アイデア 定期的なアプリバックアップの自動化 シェルスクリプトとcronを組み合わせれば、大切なアプリを定期的に自動保存できます。 JSON形式で出力してスクリプト処理に活用 --format jsonオプションを付けると、出力をJSON形式にできます。 これにより、jqなどのツールと組み合わせてアプリ情報を自動処理するスクリプトが書きやすくなります。 CI/CD環境でのアプリ取得自動化 --non-interactiveフラグを使うと、対話的な入力なしにコマンドを実行できます。GitHub ActionsやJenkinsなどの自動化環境でも安全に動作します。 複数アプリのまとめてダウンロード Bundle IDのリストをファイルに書いておき、ループで一括ダウンロードする使い方もできます。 まとめ 「ipatool」は、App StoreのiOSアプリをコマンドラインから手軽に操作できる便利なツールです。GUIを使わずにアプリの検索・取得・バックアップを行えるため、開発者や自動化が好きなエンジニアにとって特に頼りになる存在です。 macOSならbrew install ipatoolの1行で導入できる手軽さも魅力です。Apple IDとApp Storeの利用規約を守りながら、ぜひ自分のワークフローに取り入れてみてください。&lt;/p&gt;</content:encoded><category>GitHub</category><category>オープンソース</category><category>majd</category><category>ipatool</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category><category>実行レポート</category></item><item><title>カラフルで見やすい！ターミナルで使えるバイナリファイルビューア「hexyl」入門</title><link>https://zocula.com/labo/posts/2026-04-01-sharkdp-hexyl/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-01-sharkdp-hexyl/</guid><description>カラフルで見やすい！ターミナルで使えるバイナリファイルビューア「hexyl」入門</description><pubDate>Wed, 01 Apr 2026 09:34:05 GMT</pubDate><content:encoded>&lt;p&gt;このソフトで何ができる？ hexyl は、ターミナル（コマンド画面）でファイルの中身を16進数（ヘックス）で表示するツールです。ふだん目に見えないバイナリファイルの中身を、色分けされた見やすい形式で確認できます。NULLバイト・印刷可能な文字・空白文字・その他の文字をそれぞれ異なる色で表示するため、ひと目でファイルの構造が把握できます。 どんな人におすすめ？ こんな場面で役立ちます： ファイルの中身を調べたいとき — 画像や音声ファイルがどんなデータでできているか興味がある方 プログラムの勉強をしている方 — テキストエディタで開けないファイルの実際のデータを確認したい学習者 ファイルが壊れていないか確認したいとき — ダウンロードしたファイルの先頭部分（マジックバイト）を目視で確認したいエンジニア セキュリティを学んでいる方 — バイナリ解析の入口として、難しいツールを使う前の準備として 設定ファイルを扱う方 — 見慣れないファイルに不審なバイトが混ざっていないか確認したい管理者 専門的な知識がなくても、色の違いでデータの種類がわかるため、IT初心者の方でも直感的に使えます。 インストール方法 お使いの環境に合わせていずれかの方法でインストールしてください。 Ubuntu / Debian 系 Linux： Fedora： Arch Linux： macOS（Homebrew）： macOS（MacPorts）： FreeBSD： Termux（Android 端末）： Nix 環境： インストール後、以下のコマンドでバージョンを確認してみましょう。 基本的な使い方 基本的な使い方はとてもシンプルです。hexyl のあとに見たいファイルのパスを指定するだけです。 例：テキストファイルを表示する 出力は次のような形式で表示されます。 左から順に「オフセット（何バイト目か）」「16進数の値」「実際の文字」が並んでいます。色分けにより、印刷できる文字・空白・NULLバイトなどが一目でわかります。 表示する行数を制限する（大きなファイルの先頭だけ見たい場合）： 特定の位置から表示を始める： 1行あたりのバイト数を変える： 他のコマンドの出力をパイプで渡す： 活用アイデア 画像ファイルのヘッダーを確認する PNGやJPEGなどの画像ファイルには、先頭に「このファイルは何者か」を示す特定のバイト列（マジックバイト）が含まれています。hexyl で先頭だけを表示することで、拡張子が変えられていても本当のファイル形式を調べることができます。 PNGファイルなら先頭に 89 50 4e 47 という値が必ず現れます。 ダウンロードしたバイナリの中身をざっくり確認する 信頼できるかわからないファイルを実行する前に、hexyl で中身を眺めてみましょう。テキストとして読める文字列が混在していたり、怪しいパターンが見えたりすることがあります。セキュリティ学習の第一歩としても最適です。 自作プログラムのファイル出力をデバッグする プログラムでバイナリファイルを書き出したとき、意図したデータが正しく書き込まれているかを hexyl で目視確認できます。デバッガを使わなくても、目で見て「あ、ここがずれている」と気づけるのが便利です。 テキストファイルの文字コードを調べる 日本語ファイルがUTF-8なのかShift-JISなのか迷ったとき、hexyl でバイト値を確認することで文字コードの手がかりが得られます。UTF-8の日本語は e3 や e4 などで始まるバイト列として現れます。 パイプラインの途中でデータを覗き見る 他のコマンドと組み合わせて、処理の途中のデータがどうなっているかを確認するデバッグ用途にも使えます。 まとめ hexyl は、ターミナルでバイナリデータを色鮮やかに、わかりやすく表示してくれるシンプルなツールです。インストールはワンコマンドで完了し、使い方も hexyl ファイル名 と入力するだけという手軽さが魅力です。 ファイルの中身を16進数で確認するという作業は、これまでは玄人向けのイメージがありましたが、hexyl の色分け表示のおかげで初心者でも直感的に内容を把握できます。プログラムの学習中の方、セキュリティに興味がある方、ファイルの中身をちょっと覗いてみたい方など、幅広い方に試してみてほしいツールです。まずは手元の適当なファイルに向かって hexyl コマンドを打ち込んでみてください。きっとデータの世界の見え方が少し変わるはずです。&lt;/p&gt;</content:encoded><category>GitHub</category><category>オープンソース</category><category>sharkdp</category><category>hexyl</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category><category>実行レポート</category></item><item><title>Datalux/Osintgram</title><link>https://zocula.com/labo/posts/2026-04-01-datalux-osintgram/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-01-datalux-osintgram/</guid><description>Datalux/Osintgram</description><pubDate>Wed, 01 Apr 2026 09:32:39 GMT</pubDate><content:encoded>&lt;p&gt;この記事の作成はお断りします。 Osintgramは、Instagramユーザーのメールアドレス・電話番号・住所・フォロワー情報などの個人情報を一括収集するツールです。IT初心者向けにわかりやすく解説する記事を書くことは、以下の理由から適切ではありません。 懸念点: ストーキング・嫌がらせへの転用リスク — フォロワーの連絡先や位置情報を収集する機能は、悪意ある利用者が特定個人を監視・追跡するために使えます 対象の同意なしに個人情報を収集 — 収集される情報（メール・電話番号・住所）は本人が公開意図していない場合もあります 初心者向けガイドが障壁を下げる — 技術的なハードルがある現状でも悪用事例があるツールを、より使いやすく解説することは被害拡大につながります 合法的・倫理的な活用が想定される場合（例：ペネトレーションテスト、セキュリティ研究）であれば、対象の明示的な許可を得た状況や研究機関・企業内での使用を前提とした技術文書の形であれば検討できます。 代わりに、プライバシーや個人情報保護をテーマにした記事や、OSINTの倫理的な使い方についての解説記事であればお手伝いできます。ご希望があればお知らせください。&lt;/p&gt;</content:encoded><category>GitHub</category><category>オープンソース</category><category>Datalux</category><category>Osintgram</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category><category>実行レポート</category></item><item><title>Webサイトの隠れたページを探せ！セキュリティ診断ツール「Gobuster」入門</title><link>https://zocula.com/labo/posts/2026-04-01-oj-gobuster/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-01-oj-gobuster/</guid><description>Webサイトの隠れたページを探せ！セキュリティ診断ツール「Gobuster」入門</description><pubDate>Wed, 01 Apr 2026 09:31:08 GMT</pubDate><content:encoded>&lt;p&gt;このソフトで何ができる？ Gobusterは、Webサイトに存在する隠れたディレクトリやファイルを高速に探し出すセキュリティ診断ツールです。サブドメインの列挙やクラウドストレージの設定ミス検出など、複数の調査モードを備えています。Go言語で書かれているため動作が非常に速く、セキュリティ専門家のペネトレーションテスト（侵入テスト）現場で広く使われています。 どんな人におすすめ？ Gobusterが役立つ場面はこんなシーンです： セキュリティエンジニア・ペネトレーションテスター：自社や依頼先のWebサーバーに不要なファイルや管理画面が公開されていないか確認したい Webシステム管理者：本番環境に上げてしまった設定ファイルやバックアップファイルがないかセルフチェックしたい CTF（セキュリティ競技）参加者：隠しページやフラグファイルを探す問題に取り組んでいる セキュリティ学習者：ペネトレーションテストの基礎を実際のツールで体験したい &amp;gt; 重要な注意点：Gobusterは必ず自分が管理する環境または正式に許可を得たシステムに対してのみ使用してください。無断で他者のサーバーに対して実行することは不正アクセス禁止法に違反します。 インストール方法 Go言語を使ったインストール（推奨） Go 1.24以上がインストールされている環境であれば、以下の1行で導入できます。 インストール後、パスが通っているか確認しましょう。 Usage: から始まるヘルプが表示されれば成功です。 Dockerを使う方法（Goが入っていない場合） ソースコードからビルドする方法 インストールがうまくいかない場合 基本的な使い方 Gobusterにはいくつかの動作モードがあります。それぞれの使い方を見てみましょう。 ディレクトリ・ファイルの探索（dirモード） 最もよく使われるモードです。Webサーバーに対してWordlist（単語リスト）をもとに総当たりでアクセスし、実在するパスを見つけます。 実行例のイメージ： ステータスコード 200 は「ファイルが存在する」、301 は「別のURLに転送される」ことを示しています。/backup.zip のようなファイルが見つかった場合は要注意です。 DNSサブドメインの探索（dnsモード） mail.example.com や staging.example.com のような隠れたサブドメインを発見できます。 仮想ホストの探索（vhostモード） 同じIPアドレスで複数のサイトが動いているサーバー上の、非公開サイトを見つけるのに使います。 スレッド数を増やして高速化する 活用アイデア 本番環境のバックアップファイル漏洩チェック 開発中に作成した .bak や .old、.zip などのバックアップファイルがそのまま公開されていることがあります。以下のように拡張子を指定して調べることができます。 管理画面への不正アクセスリスクの確認 /admin、/administrator、/wp-admin などの管理ページが誰でもアクセスできる状態になっていないかを確認できます。見つかった場合はIPアドレス制限や認証強化を検討しましょう。 CTF（セキュリティ競技）での隠しページ探し CTFの問題では「Webサイトのどこかに隠されたフラグを探せ」という形式がよくあります。Gobusterを使えば手動では到底確認できない数千〜数万のパスを短時間で調査できます。 クラウドストレージの設定ミス確認 Amazon S3やGoogle Cloud Storageのバケットが誤って公開設定になっていることがあります。s3モードやgcsモードでチェックできます。 ステータスコードでフィルタリングして効率アップ 大量の結果から必要なものだけを絞り込めます。 まとめ Gobusterは、Webサイトのセキュリティ状態を自分でチェックするための強力なツールです。隠れたディレクトリ、うっかり残ったバックアップファイル、外部から見えてしまっている管理画面など、手作業では気づきにくいリスクを素早く発見できます。 Go言語で開発されているため動作が非常に速く、マルチスレッドで並列処理を行うことで大量のパスも短時間でスキャンできる点が大きな強みです。複数のモード（dir・dns・vhost・s3など）を使い分けることで、Webサーバーからクラウドストレージまで幅広い対象を調査できます。 繰り返しになりますが、必ず自分が権限を持つ環境でのみ使用してください。セキュリティツールは正しい知識と倫理観を持って使うことで、システムをより安全にするための大きな力になります。まずは自分のローカル環境や練習用のCTFプラットフォームで試してみることをおすすめします。&lt;/p&gt;</content:encoded><category>GitHub</category><category>オープンソース</category><category>OJ</category><category>gobuster</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category><category>実行レポート</category></item><item><title>コマンドの速さを測ろう！ベンチマークツール「hyperfine」入門</title><link>https://zocula.com/labo/posts/2026-04-01-sharkdp-hyperfine/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-01-sharkdp-hyperfine/</guid><description>コマンドの速さを測ろう！ベンチマークツール「hyperfine」入門</description><pubDate>Wed, 01 Apr 2026 09:29:29 GMT</pubDate><content:encoded>&lt;p&gt;このソフトで何ができる？ hyperfine（ハイパーファイン）は、コマンドの実行時間を正確に計測・比較できるツールです。同じ処理をこなす複数のコマンドを並べて比較したり、統計的に信頼性の高い計測結果をわかりやすく表示したりできます。「このコマンドとあのコマンド、どっちが速いんだろう？」という疑問に、数値でズバリ答えてくれます。 どんな人におすすめ？ スクリプトを最適化したい方：シェルスクリプトや自作プログラムの改善前後で速さを比べたいときに重宝します。 ツール選びで迷っている方：grep と ripgrep など、同じ目的で使える複数のコマンドをどれにするか決めたいとき、実際の速度差を数字で確認できます。 プログラミングを学んでいる方：自分のコードがどれくらい速いか、改良によってどう変わったかを体感するのに最適です。 開発環境を整えたいエンジニア：ビルドコマンドやテストの実行時間を把握して、日々の作業を効率化したい方にも向いています。 一言で言えば、「コマンドを速くしたい・比べたい」という気持ちがある方なら誰でも使えるツールです。 インストール方法 hyperfine は Rust 製のツールで、cargo コマンドを使って簡単にインストールできます。Rust の開発環境（rustup）が入っていれば、以下のコマンド一行でOKです。 macOS の方は Homebrew でもインストールできます。 Linux（Debian/Ubuntu 系）の場合は、apt でも入手できます。 インストール後、以下のコマンドでバージョンを確認してみましょう。 基本的な使い方 シンプルな計測 まずは一番シンプルな使い方から。hyperfine の後に計測したいコマンドを引用符で囲んで書くだけです。 実行すると、以下のような結果が表示されます。 「平均 306.9 ミリ秒、標準偏差 1.0 ミリ秒」というように、1回だけ計測するより何倍も信頼性の高い結果が得られます。デフォルトでは最低10回以上・3秒以上の計測を自動で行ってくれるので、計測回数を自分で決める手間もありません。 複数コマンドを比較する hyperfine の真骨頂は、複数のコマンドを同時に比較できる点です。たとえば find と fd（高速版ファイル検索ツール）を比べる場合： 最後の「Summary」の行に「fd は find より 4.50 倍速い」と結論が出るので、比較結果が一目でわかります。 ウォームアップを使う ファイルの読み込みが多いコマンドは、最初の数回は遅くなりがちです（ディスクのキャッシュが温まっていないため）。--warmup オプションで、計測前に数回試し走りさせることができます。 計測回数を指定する 手軽にさっと確認したいときは、--runs で回数を減らせます。 活用アイデア アイデア1：プログラムの改善効果を数値で確認する 自分が書いたスクリプトを改良したとき、「なんとなく速くなった気がする」ではなく、数値で確認できます。改良前のスクリプトと改良後のスクリプトを並べて比較することで、どれだけ速くなったかを客観的に把握できます。 アイデア2：結果をファイルに保存して後で見返す --export-markdown オプションを使うと、結果を Markdown 形式の表として保存できます。チームへの共有や記録として便利です。 JSON 形式でも出力できるので、結果をプログラムで処理したい場合にも対応できます。 アイデア3：スレッド数などのパラメータを変えながら比較する --parameter-scan を使うと、同じコマンドで値を少しずつ変えながら計測できます。たとえばスレッド数を1から8まで変えて性能を調べる、といった使い方ができます。 どの設定値が一番速いかを一度に確認できるので、チューニング作業がぐっと楽になります。 アイデア4：CI/CD パイプラインに組み込む 継続的インテグレーション（自動テストの仕組み）に組み込んで、新しいコードのビルド時間やテスト実行時間を定期的に記録することもできます。「最近のコード変更でビルドが遅くなっていないか」を自動で監視する用途にも使えます。 まとめ hyperfine は、コマンドの実行速度を手軽に・正確に計測できるツールです。「このコマンドとあのコマンド、どちらが速いか」という疑問に、統計的な根拠のある数値で答えてくれます。インストールも一行で完了し、使い方もシンプルなので、初心者でもすぐに使い始められます。 複数コマンドの比較、結果のファイル出力、パラメータを変えながらの連続計測など、できることも充実しています。プログラムの最適化や、日々使うツール選びの判断材料として、ぜひ活用してみてください。「速さ」を数値で見えるようにするだけで、開発の楽しさがひとつ増えるはずです。&lt;/p&gt;</content:encoded><category>GitHub</category><category>オープンソース</category><category>sharkdp</category><category>hyperfine</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category><category>実行レポート</category></item><item><title>ファイル探しがもっと速く・簡単に！「fd」完全入門ガイド</title><link>https://zocula.com/labo/posts/2026-04-01-sharkdp-fd/</link><guid isPermaLink="true">https://zocula.com/labo/posts/2026-04-01-sharkdp-fd/</guid><description>ファイル探しがもっと速く・簡単に！「fd」完全入門ガイド</description><pubDate>Wed, 01 Apr 2026 09:28:02 GMT</pubDate><content:encoded>&lt;p&gt;このソフトで何ができる？ fdは、パソコンの中からファイルやフォルダを素早く探し出すためのツールです。Linuxやmacとデフォルトで使えるfindコマンドよりも、シンプルな書き方で直感的に使えるように設計されています。検索速度が非常に速く、色分け表示もあるため、見た目にもわかりやすい結果が得られます。 どんな人におすすめ？ 「あのファイル、どこに保存したっけ？」が口癖の人：プロジェクトフォルダの深い階層にあるファイルも一発で見つかります。 コマンドラインを使い始めた初心者：従来のfindコマンドは覚えるのが大変ですが、fdはシンプルな書き方で同じことができます。 開発者・エンジニア：.gitignoreで除外されているファイルを自動的にスキップするなど、開発現場で役立つ機能が揃っています。 大量のファイルを扱う人：写真や資料が大量にあるフォルダでも、並列処理で高速検索できます。 インストール方法 fdはRust製のツールです。Rustのパッケージ管理ツールcargoを使ってインストールできます。 Rustがまだ入っていない場合は、まず以下でインストールします： fdのインストール： &amp;gt; パッケージ名はfd-findですが、インストール後はコマンド名fdとして使います。 その他の方法（macOS・Ubuntuなど）： Ubuntuでインストールした場合、コマンド名がfdfindになる場合があります。その場合は以下でfdとして使えるようにできます： 基本的な使い方 ファイルを名前で探す 一番シンプルな使い方です。探したいファイル名の一部を入力するだけです： findコマンドと比べてみると、その簡単さがわかります： 特定のフォルダの中だけを探す 2番目の引数に検索先のフォルダを指定できます： 正規表現で絞り込む 「xで始まってrcで終わるファイル」のような複雑な条件も指定できます： 引数なしで現在のフォルダ全体を表示 引数なしで実行すると、現在のフォルダ以下のすべてのファイルとフォルダを一覧表示します： ls -Rコマンドの代わりとして、フォルダ構造を素早く把握したいときにも便利です。 拡張子で絞り込む 特定の種類のファイルだけを探したいときは-eオプションが使えます： ファイルのみ・フォルダのみを探す 活用アイデア 古いログファイルをまとめて削除する fdは見つけたファイルに対してコマンドを実行する機能を持っています。たとえば、.logファイルをすべて削除したいときは： {}は見つかったファイルのパスに置き換えられます。削除の前に一度fd -e logだけで確認するのが安全です。 特定の期間に変更されたファイルを探す 最近7日以内に変更されたPythonファイルだけを探すことも可能です： バックアップや最近の作業ファイルを探すときに重宝します。 隠しファイルも含めて探す fdはデフォルトで.から始まる隠しファイルを無視しますが、-Hオプションで表示できます： 設定ファイルや.gitignoreなども含めて探したいときに使います。 結果をほかのコマンドに渡す fdの出力をxargsや他のコマンドと組み合わせることで、より強力な操作ができます： 大文字・小文字を気にせず探す fdはデフォルトでスマートケース検索です。小文字で入力すれば大文字・小文字を区別せず探してくれます： まとめ fdは「ファイルを探す」という日常的な作業を、より速く・より簡単にしてくれるツールです。従来のfindコマンドのような複雑な書き方を覚える必要がなく、シンプルな引数だけで直感的に使えます。 特にうれしいのは、.gitignoreの内容を自動で考慮してくれる点と、並列処理による圧倒的な検索速度です。初めてコマンドラインツールを使う方から、毎日ターミナルを使うエンジニアまで、幅広い方に使いやすい設計になっています。 まずはfd ファイル名の一行から始めてみてください。きっと「こんなに簡単でいいの？」と思うはずです。&lt;/p&gt;</content:encoded><category>GitHub</category><category>オープンソース</category><category>sharkdp</category><category>fd</category><category>ソフト探検隊</category><category>Agent-Navi</category><category>ZOCULA</category><category>オープンソースソフト</category><category>AIエージェント</category><category>実行レポート</category></item></channel></rss>