SONUB
JA English 한국어 日本語 中文 हिन्दी বাংলা اردو Español Português Français Deutsch Русский العربية Bahasa Indonesia Tiếng Việt ไทย Türkçe

通知を有効にする方法

このブラウザーまたはアドレスでは通知を利用できません。対応ブラウザーで安全な接続のSONUBサイトを開いてください。

通知がブロックされている場合は、ブラウザーの設定で許可してください。

  1. アドレスバー横のサイト設定、またはブラウザーのサイト設定を開き、このサイトの通知を許可に変更してください。
  2. 端末の設定でブラウザーの通知を許可し、おやすみモードや集中モードを確認してください。
  3. SONUBに戻ってページを再読み込みしてください。通知が有効になるとベルは表示されなくなります。

iPhoneやiPadではSONUBをホーム画面に追加し、そこから開いて通知を許可してください。

管理者 ログイン 表示テーマ 標準テーマ ダークテーマ ピンクテーマ チャット 1:1 チャット グループチャット 掲示板 お知らせ ニュース掲示板 ご意見掲示板 自己紹介 主要メニュー ログアウト

用語集

SONUB がポップアップで説明している難しい言葉を一か所に集め、やさしい言葉で説明しました。外部の用語集から来た用語には出典を付けたので、原文を開いて正式な定義を確かめてください。

光る電球の下で開いた本を読む学習者が、ストップウォッチの横でクイズカードに答え、結果の紙を見て、点線の矢印をたどって本にもどる。うしろには、トロフィーがのった小さな階段がある。

用語 1410 個

説明は原文をやさしい言葉で短くまとめたものです。基準は原文なので、違いがあれば原文に従ってください。

出典 · Hugging Face

Transformers — Quantization concepts

用語 2 個 · 2026-10-24 確認

原文の用語集を開く

量子化

原文の表記 · Quantization

モデルの数値を少ないビットで保存してメモリを節約すること

量子化は、学習した数値を16・32ビットではなく、4・6・8ビットなどの少ないビット数で表す方法です。通常は保存する重みのファイルが小さくなり、実行プログラムが詰めた表現を保てば重みのメモリも減りますが、品質が下がることがあります。スケール、メタデータ、混合精度による追加容量も必要です。KVキャッシュや作業バッファもメモリを使うため、全体のメモリ使用量や処理時間が同じ割合で減るわけではありません。

もっと学ぶ 重みとパラメータについて詳しく見る

FP16・BF16

原文の表記 · FP16 · BF16

数一つを 16 ビット(2 バイト)で表す二つの形式

FP16とBF16は、浮動小数点の値1個を16ビット、つまり2バイトで保存します。FP16はより細かく表せますが範囲が狭く、BF16は範囲が広い代わりに精度が低くなります。この形式で公開されるモデルは多いものの、量子化していない元のモデルがFP32や混合精度の場合もあります。「元のモデル」が必ず16ビットを意味するわけではありません。

もっと学ぶ 重みとパラメータについて詳しく見る

出典 · Hugging Face

Hugging Face Hub — GGUF

用語 2 個 · 2026-10-24 確認

原文の用語集を開く

モデル

原文の表記 · Model

学習した数値と、その数値を使う計算の構造

AIモデルは、計算の構造と学習によって得た数値を組み合わせたものです。ファイルには主にテンソルにまとめた数値と読み込み用の情報が保存され、設定やトークナイザー情報は同じファイルに入る場合も別に分かれる場合もあります。実行プログラムがファイルを読み、実際の計算を行います。モデルは複数のファイルに分かれることがあり、通常、実行プログラム全体は含みません。

もっと学ぶ

GGUF

モデルのテンソルと読み込み情報を保存する形式

GGUFは、モデルのテンソルと、構造の設定やトークナイザー情報などのメタデータを保存する形式です。llama.cppなどの実行プログラムが読み込んでモデルを動かします。実行プログラム自体は別にあります。量子化していない重みと量子化済みの重みの両方に対応し、大きなモデルは複数のGGUFファイルに分割できます。

もっと学ぶ 重みとパラメータについて詳しく見る

出典 · Anthropic

Claude Code Docs — Glossary

用語 52 個 · 2026-10-19 確認

原文の用語集を開く

AGENTS.md

多くの AI コーディングエージェントが共通で読むプロジェクトの指示ファイル

Claude だけでなく、AI コーディングエージェント全般に向けてプロジェクトの指示を書いた Markdown ファイルです。リポジトリに AGENTS.md があって CLAUDE.md がなければ、Claude Code はそれをプロジェクトの指示として読みます。CLAUDE.md も置く場合は、その中から AGENTS.md を読み込むようにすると、どのツールも同じルールに従います。

もっと学ぶ

エージェントチーム(Agent teams)

チームリーダーの下で一緒に働く複数の Claude Code セッション

独立した複数の Claude Code セッションをチームリーダーがまとめて動かす仕組みで、共有のタスク一覧があり、チームメイト同士でメッセージをやり取りします。一つのセッションの中にとどまってそのセッションにだけ報告するサブエージェントと違い、チームメイトはそれぞれ自分のコンテキストウィンドウを持ち、どのチームメイトにも直接話しかけられます。この機能は実験段階で、最初はオフになっています。

もっと学ぶ

エージェンティックコーディング(Agentic coding)

AI が自分でコードを読み、実行し、変更する作業のしかた

AI がファイルを読み、コマンドを実行し、変更を加えるところまで自分で進め、人はそれを見守ったり、方向を変えたり、席を外したりする作業の流れです。チャットの助手は文章で答えるだけなので、人がそれをコピーして自分で反映しなければなりません。Claude Code がエージェンティックなのは、助言するだけでなく実際に動くためのツールを持っているからです。

もっと学ぶ

エージェンティックハーネス(Agentic harness)

モデルを包んでコーディングエージェントにする外側のプログラム

言語モデルを役に立つコーディングエージェントにするための、ツール、コンテキスト管理、実行環境のことです。Claude Code がハーネスで、その中に入っているモデルが Claude です。ハーネスは、ファイルへのアクセス、シェルコマンド、権限の確認、メモリの読み込み、そして行動を次々につなぐループを用意します。

もっと学ぶ

エージェンティックループ(Agentic loop)

文脈を集め、行動し、結果を確かめることをくり返す流れ

Claude がどの作業でもたどる流れです。文脈を集め、行動し、結果を確かめ、仕事が終わるまでこれをくり返します。ツールを一回使うたびに返ってくる情報が次の一歩を決め、人はいつでもループを止めて方向を変えられます。フック、スキル、MCP は、このループの決まった段階に組み込まれます。

もっと学ぶ

アーティファクト(Artifact)

Claude Code がセッションから公開する、動くウェブページ

Claude Code がセッションから claude.ai 上の非公開アドレスに公開する、操作できるライブのウェブページです。ターミナルの文字を読む代わりに結果を目で見たり、人に共有したりでき、セッションがもう一度公開するとページはその場で更新されます。アーティファクトは、claude.ai の会話で作ったものと同じギャラリーに並びます。

もっと学ぶ

自動メモリ(Auto memory)

人の指摘や好みをもとに Claude が自分用に書くメモ

人の指摘や好みをもとに Claude が自分用に書くメモで、git リポジトリごとに ~/.claude/projects/ の下に保存されます。索引ファイル MEMORY.md の冒頭部分が毎回セッションの始めに読み込まれるので、学んだことが次へ引き継がれます。自動メモリは Claude が書くもの、CLAUDE.md は人が書くものです。

もっと学ぶ

自動モード(Auto mode)

分類モデルが人の代わりに行動を許可する権限モード

人の代わりに別の分類モデルが Claude Code の行動を審査する権限モードで、ほとんどの行動は確認なしで実行されます。それでも、人がはっきり決めた ask ルールに当てはまる行動の前には、Claude Code が確認を求めます。分類モデルは、頼まれた範囲を超える作業、信頼できない外部の仕組み、プロンプトインジェクションを止めます。ツールの結果は一切見ないので、ファイルの中の悪意ある文章に操られることはありません。

もっと学ぶ

ベアモード(Bare mode)

フック・スキル・プラグイン・メモリなしで Claude Code を起動すること

--bare フラグを付けると、Claude Code はフック、スキル、カスタムコマンド、サブエージェント、プラグイン、MCP サーバー、自動メモリ、CLAUDE.md を読み込まずに起動します。例外は、--add-dir で渡したフォルダの中のスキルだけです。どのマシンでも同じ結果を出さなければならない CI やスクリプトにおすすめです。

もっと学ぶ

同梱スキル(Bundled skills)

/code-review など、Claude Code に最初から入っているスキル

/batch、/code-review、/debug、/loop のように、Claude Code に最初から入っているプロンプト形式の手順書です。組み込みコマンドは決まった処理を実行しますが、同梱スキルは Claude に詳しいプロンプトを渡し、作業の組み立てを任せます。そのため、エージェントを起動したり、ファイルを読んだり、コードベースに合わせてやり方を変えたりできます。

もっと学ぶ

チャンネル(Channel)

外の出来事を実行中のセッションに送り込む MCP サーバー

実行中のセッションに出来事を送り込む MCP サーバーで、人がターミナルを離れている間に起きたことに Claude が反応できるようにします。チャンネルは双方向にもでき、Claude は届いた出来事を読んで、同じチャンネルから返事をします。リサーチプレビューには Telegram、Discord、iMessage が含まれています。

もっと学ぶ

チェックポイント(Checkpoint)

プロンプトごとに保存され、変更を元に戻せる復元ポイント

プロンプトを送るたびに作られる復元ポイントです。Claude Code は編集の前に毎回ファイルを保存するので、Esc を2回押すか /rewind を実行すると、コード、会話、またはその両方を前の時点に戻せます。チェックポイントは git とは別のもので、シェルコマンドで行った変更は記録しません。

もっと学ぶ

.claude フォルダ(.claude directory)

Claude Code が設定を読み込むフォルダ

Claude Code が設定、フック、スキル、サブエージェント、ルール、自動メモリといった構成を読み込むフォルダです。プロジェクトはルートに .claude/ を置いてプロジェクトの設定を入れ、すべてのプロジェクトに使う自分用の初期設定はホームフォルダの ~/.claude/ に置きます。

もっと学ぶ

CLAUDE.md

人が Claude のために書く、長く使う指示ファイル

人が Claude のために書く、ずっと有効な指示の Markdown ファイルで、毎回セッションの始めに読み込まれます。プロジェクトの決まりごと、構成のメモ、「いつも X をする」といったルールをここに書きます。置き場所はプロジェクトの中、すべてのプロジェクト用の ~/.claude/、または組織のポリシーです。見つかったファイルは範囲の広いものから狭いものの順にすべて合わせて使われ、プロジェクトのルートにあるファイルは圧縮のあとにもう一度読み込まれます。

もっと学ぶ

クラウドセッション(Cloud session)

自分のコンピューターではなくクラウドで動く Claude Code セッション

自分のマシンではなくクラウドの設備で動くので、ノートパソコンを閉じても動き続ける Claude Code セッションです。claude.ai/code、Claude モバイルアプリ、Cloud を選んだデスクトップアプリ、または claude --cloud から始めます。自分のターミナルや IDE で動くセッションはローカルセッションです。

もっと学ぶ

コマンド(Command)

/名前 と入力して実行する、くり返し使える指示

プロンプトに /名前 と入力して呼び出す、くり返し使える指示です。/clear、/model、/compact のような組み込みコマンドはセッションを操作し、自分のコマンドを .claude/commands/ にファイルとして加えたり、プラグインから入れたりもできます。今は、いくつもの手順があるコマンドはスキルにまとめるのがおすすめです。古い呼び名の「スラッシュコマンド」も同じものを指します。

もっと学ぶ

圧縮(Compaction)

コンテキストがいっぱいに近づくと会話を自動で要約すること

コンテキストウィンドウが上限に近づいたとき、会話を自動で要約することです。まず古いツールの出力が消され、そのあと会話が要約されます。終わったあと、プロジェクトのルートの CLAUDE.md と自動メモリはディスクから読み直されますが、チャットでだけ伝えた指示は失われることがあります。自分で行うには /compact を実行します。例えば /compact focus on the API changes のように使います。

もっと学ぶ

コネクタ(Connector)

claude.ai のアカウントに追加した MCP サーバー

Claude Code で設定するのではなく、claude.ai のアカウントに追加した MCP サーバーです。そのアカウントで Claude Code にサインインすると、コネクタはローカルで追加したサーバーと並んで /mcp に表示されます。組織がコネクタを用意し、そのツールを一つずつ管理することもできます。

もっと学ぶ

コンテキストウィンドウ(Context window)

Claude Code セッションの作業用の記憶

セッションの作業用の記憶です。会話、ファイルの中身、コマンドの出力、CLAUDE.md、自動メモリ、読み込んだスキル、システムの指示がここに入ります。作業するほどいっぱいになり、やがて圧縮で要約されます。何が場所を使っているかは /context で確かめられます。

もっと学ぶ

ディスパッチ(Dispatch)

スマートフォンからデスクトップアプリへコーディング作業を送ること

スマートフォンから始める作業の振り分け役です。Claude モバイルアプリからコーディング作業を送ると、デスクトップアプリで Claude Code セッションが始まり、プロンプトは自動で適切なツールへ渡されます。一部の有料プランで使えます。

もっと学ぶ

エフォートレベル(Effort level)

モデルが一歩ごとにどれだけ考えるかを決める設定

適応型の推論を調整する設定です。適応型の推論とは、一歩ごとに考えるかどうか、どれだけ考えるかをモデルが決める仕組みです。エフォートを高くすると思考トークンが増えて深く推論し、低くすると速く安くなります。対応しているのは一部のモデルだけです。

もっと学ぶ

拡張思考(Extended thinking)

モデルが答える前に見せる段階的な推論

モデルが返答する前に一歩ずつ進める、目に見える推論です。エフォートレベルで調整するか、思考の予算が決まっているモデルでは MAX_THINKING_TOKENS で思考トークンの上限を決めます。ターミナルでは、思考は灰色の斜体の文字で表示されます。

もっと学ぶ

フロントマター(Frontmatter)

Markdown ファイルのいちばん上にある YAML の設定ブロック

Markdown ファイルのいちばん上で、始まりの --- の行と終わりの --- の行にはさまれた YAML の設定ブロックです。スキル、サブエージェント、出力スタイル、ルールは、スキルの説明やサブエージェントのツールといった設定をここから読みます。終わりの --- より後ろはすべて指示で、始まりの --- はファイルの1行目になければなりません。

もっと学ぶ

フック(Hook)

決まった瞬間に自動で動く、自分で作った処理

ツールが動く前、ファイルを編集した後、セッションが始まるときなど、Claude Code の動きの中の決まった時点で自動的に実行される、自分で定義した処理です。シェルコマンド、HTTP エンドポイント、MCP ツール、LLM へのプロンプト、サブエージェントのどれでも作れます。フックは決定的で、モデルが決めたときではなく、その時点に必ず実行されます。

もっと学ぶ

管理設定(Managed settings)

ユーザーが上書きできない組織全体の設定

IT や DevOps の担当者が組織全体に強制する設定で、管理コンソールを通じて Anthropic のサーバーから届けられるか、各端末の ~/.claude の外に置かれます。ユーザーやプロジェクトの設定では上書きできません。セキュリティの方針、コンプライアンスのルール、すべてのマシンで同じツールをそろえることに使われます。

もっと学ぶ

MCP(Model Context Protocol)

原文の表記 · MCP (Model Context Protocol)

AI ツールを外部のサービスにつなぐ公開の標準

AI ツールを外部のデータやサービスにつなぐための公開の標準です。MCP サーバーは、Slack、Jira、データベース、ブラウザをはじめ、何百もの連携のための新しいツールを Claude に与えます。サーバーは /mcp でつなぐか、.mcp.json に書き加えてつなぎます。

もっと学ぶ

MCP サーバー(MCP server)

MCP を通じて Claude にツール・プロンプト・リソースを渡すプログラム

MCP を通じて Claude にツール、プロンプト、リソースを渡すプログラムです。claude mcp add、.mcp.json、プラグイン、または claude.ai のコネクタとして追加します。ローカルのサーバーは、設定の command と args の欄から起動されるプロセスとして動きます。この欄は、プロンプトに入力するコマンドとは関係ありません。

もっと学ぶ

非対話モード(Non-interactive mode)

claude -p でプロンプトを一つ実行して終わること

対話の画面を出さずにプロンプトを一つだけ実行して終わるモードで、-p または --print で始めます。CI、スクリプト、パイプで使われ、実行の内容は後で再開できるセッションとして保存されます。以前はヘッドレスモードと呼ばれていました。Agent SDK は、これを Python と TypeScript で使えるようにしたものです。

もっと学ぶ

出力スタイル(Output style)

Claude の答え方を変える設定

Claude Code が Claude に渡す指示を変えて、答え方、口調、形式を決める設定です。CLAUDE.md は、標準の指示の横にプロジェクトの文脈を加えます。カスタムの出力スタイルは自分の指示を加え、標準のソフトウェア開発向けの指示を外すこともできます。

もっと学ぶ

権限モード(Permission mode)

Claude Code がいつ許可を求めるかを決める基本のルール

セッションで許可をどう求めるかの基本の動きです。CLI では Shift+Tab で、VS Code、Desktop、claude.ai ではモード選択で切り替えます。モードは default(Manual と表示)、acceptEdits、plan、auto、dontAsk、bypassPermissions です。

もっと学ぶ

権限ルール(Permission rule)

特定のツールの使用を許可・確認・拒否する設定

ツールの名前と引数のパターンをもとに、ツールの呼び出しを許可する、確認する、または拒否する設定の項目です。ルールは deny、ask、allow の順に調べられ、最初に当てはまったものが採用されます。大まかな権限モードの上に重ねる、細かい調整の仕組みです。

もっと学ぶ

プランモード(Plan mode)

編集せずに調べて計画を示すモード

Claude がソースファイルを編集せずに調べ、変更を提案する権限モードです。ファイルを読み、検索し、調査のためのコマンドを実行してから、何かに手を付ける前に計画を見せて承認を求めます。/plan を入力するか、Shift+Tab を押して入ります。

もっと学ぶ

プラグイン(Plugin)

スキル・フック・サブエージェント・MCP サーバーを一度に入れるパッケージ

スキル、フック、サブエージェント、MCP サーバーを一つにまとめ、一度にインストールできるようにしたものです。プラグインのスキルは plugin-name:skill-name という名前になるので、たくさんのプラグインを並べて使えます。チームはマーケットプレイスを通じてプラグインを共有します。

もっと学ぶ

プロジェクトの信頼(Project trust)

Claude Code が設定を読み込む前にフォルダを承認すること

Claude Code がフォルダの構成を読み込む前に、そのフォルダを受け入れるかどうかを決める確認画面です。答えはプロジェクトのフォルダごとに保存されますが、ホームフォルダだけは今のセッションの間しか有効ではありません。フォルダを信頼するまで、Claude Code はリポジトリが用意したものの一部、例えば .claude/settings.json の allow ルールを使わずにおきます。

もっと学ぶ

プロンプトインジェクション(Prompt injection)

AI を乗っ取ろうと隠された悪意ある指示

ファイル、ウェブページ、ツールの結果に隠され、頼んでもいない行動へ Claude を向かわせようとする悪意ある指示です。Claude Code は、権限の仕組み、コマンドインジェクションの検出、信頼の確認で防ぎます。自動モードでは、さらにツールの結果を調べる検査と、仕込まれた文章を見ずに行動を審査する分類モデルが加わります。

もっと学ぶ

リモートコントロール(Remote Control)

ローカルのセッションをスマートフォンやブラウザから続けること

自分のコンピューターで動いている Claude Code セッションを、claude.ai を通じてスマートフォンやブラウザから続ける方法です。コードは自分のマシンで動き、ファイルもそこに残ります。離れた場所にあるのは画面だけです。クラウドのサンドボックスで動くクラウドセッションとは違います。

もっと学ぶ

ルール(Rules)

CLAUDE.md と一緒に読み込まれる .claude/rules/ の指示ファイル

.claude/rules/ に置く、部品のように分けた指示ファイルで、CLAUDE.md と一緒に読み込まれます。フロントマターの paths: でルールを特定のパスに限ると、Claude が当てはまるファイルを読んだり編集したりするときだけ読み込まれます。こうして、ルールが必要になるまでコンテキストを小さく保ちます。

もっと学ぶ

サンドボックス(Sandboxing)

コマンドが届くファイルとネットワークに囲いを作ること

Bash ツールのために、ファイルとネットワークを OS のレベルで隔離する仕組みです。コマンドは前もって決めた境界の中で動くので、Claude はその中ではコマンドごとに許可を求めずに自由に作業できます。サンドボックスは、権限ルールとは別の層です。

もっと学ぶ

セッション(Session)

フォルダに結びつき、自分のコンテキストを持つ一つの会話

今いるフォルダに結びついた会話で、それぞれ別のコンテキストウィンドウを持ちます。claude -c で再開したり、--fork-session で分岐させたり、別々のターミナルでいくつも動かしたりできます。/clear で新しいセッションが始まり、前のセッションは保存されたまま残るので /resume で開けます。

もっと学ぶ

設定の階層(Settings layers)

Claude Code が設定ファイルを組み合わせる順番

Claude Code が設定を読む順番で、優先度の高いものから、管理ポリシー、--settings フラグ、.claude/settings.local.json、.claude/settings.json、~/.claude/settings.json です。一覧の設定は階層をまたいで合わせられ、一つの値の設定は上の階層のものが下の階層に勝ちます。

もっと学ぶ

スキル(Skill)

Claude が道具箱に加える指示ファイル SKILL.md

指示、知識、作業の手順を書いた SKILL.md ファイルで、Claude はこれを自分の道具箱に加えます。作業に合うときは Claude が自動でスキルを読み込み、/skill-name で呼び出すこともできます。スキルは公開の標準 Agent Skills に従い、古いカスタムコマンドに代わるものです。古いカスタムコマンドも引き続き使えます。

もっと学ぶ

サブエージェント(Subagent)

自分のコンテキストで任された一つの作業をする助手の AI

自分専用のコンテキストウィンドウで、自分のシステムプロンプト、ツール、権限を持って動く、専門の AI アシスタントです。任された作業をこなしてメインの会話に要約を返すので、大きな検索でメインのコンテキストが埋まりません。組み込みのサブエージェントには Explore、Plan、general-purpose があります。

もっと学ぶ

サーフェス(Surface)

CLI・IDE・デスクトップ・ウェブなど、Claude Code を使う場所

Claude Code を使うあらゆる場所のことで、CLI、VS Code、JetBrains、Desktop、claude.ai があります。どのサーフェスも同じエンジンを使います。自分のマシンのセッションはローカルの CLAUDE.md、設定、スキルを読み、クラウドセッションはリポジトリの新しいコピーから始まります。

もっと学ぶ

システムプロンプト(System prompt)

Claude Code が会話の前に送る指示

Claude Code が毎回のリクエストで会話の前に送る指示で、Claude がツールをどう使い、どう安全を守り、答えをどんな形にするかを決めています。--append-system-prompt で付け足したり、--system-prompt で置き換えたりできます。CLAUDE.md や出力スタイルの指示はこれに含まれず、システムリマインダーとして届きます。

もっと学ぶ

システムリマインダー(System reminder)

Claude Code が Claude に文脈を渡すため会話に加えるメッセージ

ハーネスである Claude Code が、Claude に文脈を渡すために会話に加えるメッセージです。人が自分で送るものではありません。CLAUDE.md、出力スタイルの指示、フックが返した文章、スキルの一覧、変更されたファイルについてのお知らせは、すべてこの形で Claude に届きます。

もっと学ぶ

テレポート(Teleport)

/teleport でクラウドセッションを手元のターミナルに引き寄せること

/teleport コマンドは、クラウドの Claude Code セッションを手元のターミナルに引き寄せます。Claude はブランチを取得し、会話の履歴を読み込んで、クラウドセッションが止まったところから続けます。逆向きは --cloud で、ローカルの作業をクラウドに送って実行させます。

もっと学ぶ

ツール(Tool)

ファイルを読む、コマンドを実行するなど、Claude ができる行動

ファイルを読む、コードを編集する、シェルコマンドを実行する、ウェブを検索する、サブエージェントを起動するといった、Claude ができる行動です。ツールがあるから Claude Code はエージェンティックになり、ツールがなければ Claude は文章で答えることしかできません。ツールを使うたびに結果が返り、その結果がエージェンティックループの中で Claude の次の判断を形づくります。

もっと学ぶ

トランスクリプト(Transcript)

セッションをファイルとして保存した記録

セッションを保存した記録です。会話は人と Claude がやり取りする内容で、トランスクリプトはその会話をファイルとして残したものです。標準では ~/.claude/projects/ の下に置かれます。再開するとき Claude Code はこのファイルを読み戻すので、セッションが終わった後も会話を続けられます。

もっと学ぶ

ターン(Turn)

自分のメッセージから Claude が答え終わるまでの一回分

セッションの中での Claude の一回分の完全な返答です。ターンは人がメッセージを送ったときに始まって Claude が終えたときに終わり、その間にツールの呼び出しがいくつあってもかまいません。セッションはたくさんのターンでできていて、各ターンの終わりに Stop フックが実行されます。

もっと学ぶ

検証ループ(Verification loop)

作業が本当に通るまで Claude がくり返す確認を与えること

正しく見えるだけの結果で満足せず、作業が本当に終わったとセッションが知るための方法です。テスト、ビルド、スクリーンショットの比較のように Claude が実行できる確認を与えると、Claude はそれに通るまで作業を続けます。これがなければ、「終わった」かどうかを判断するのはエージェント自身だけになります。

もっと学ぶ

ワークツリー分離(Worktree isolation)

Claude を専用の git ワークツリーで動かし、並行作業がぶつからないようにすること

Claude を .claude/worktrees/ の下にある別の git ワークツリーで動かす分離のモードで、-w フラグか、サブエージェントの設定の isolation: worktree でオンにします。変更はそれぞれのフォルダの自分のブランチにとどまるので、並行して働くエージェントは、それぞれ自分のファイルのコピーを編集します。

もっと学ぶ

出典 · SONUB

SONUB AI Course — Agent and Agentic

用語 1 個 · 2026-10-19 確認

原文の用語集を開く

エージェンティック(Agentic)

ツールを使い、自分で何段階も進める AI ソフトウェアを形容する言葉

エージェンティック(agentic)は「エージェントのように自分で段階を進める」という意味の形容詞です。言語モデルがツールを使い、見て、決めて、行動し、結果を見てまた繰り返すループで働くソフトウェアやシステムに付けます。そのため Agentic tool、Agentic system と言います。Anthropic は、コードを読み、ファイルを直し、コマンドを実行して自分で働く Claude Code を「an agentic coding tool」と呼んでいます。

もっと学ぶ

出典 · SONUB

SONUB Build Your Own AI — XSLM

用語 1 個 · 2026-10-19 確認

原文の用語集を開く

XSLM(超小型言語モデル)

原文の表記 · XSLM (Extra Small Language Model)

ブラウザの中で自分で作る超小型の学習用言語モデル

SONUB が自ら作った用語で、Extra Small Language Model(超小型言語モデル)の略です。性能の高い大型モデルではなく、学ぶためのモデルです。学習者がコードを自分で入力し、トークナイザー・小さな GPT・学習・文章生成から、モデルを動かす Runner と、その Runner と対話するチャットボット XChat まですべて作ります。インストール不要で、100% ウェブブラウザの中の Linux ターミナルで完成させ、事前学習済みの重みや外部の AI API は使いません。

もっと学ぶ GPT について詳しく見る 重みとパラメータについて詳しく見る

出典 · SONUB

SONUB — Harness

用語 4 個 · 2026-10-26 確認

原文の用語集を開く

ハーネス(harness)

原文の表記 · Harness

モデルを包んで仕事をさせる外側のプログラム

モデルは文章を書くだけです。そのまわりのハーネスが、ファイルを読み、コマンドを実行し、承認を求め、結果をモデルに返すことをくり返します。AnthropicのClaude Code用語集は、Claude Codeがハーネスで、Claudeはその中のモデルだと説明しています。OpenAIは、すべてのCodexアプリが同じCodexハーネスで動いていると説明しています。

もっと学ぶ GPT について詳しく見る

Claude Code

Anthropicのエージェンティックなコーディングツール — 厳密にはハーネス

ターミナル、エディター、デスクトップアプリ、Webで使えるAnthropicのエージェンティックなコーディングツールです。厳密にいうとハーネスです。Anthropicの用語集は、Claude Codeがハーネスで、Claudeはその中のモデルだと説明しています。このハーネスを単体で取り出したものが Claude Agent SDK です。

もっと学ぶ

Codex

OpenAIのコーディングエージェント — CLIはハーネス

ターミナル(Codex CLI)、エディター、ChatGPTアプリで使えるOpenAIのコーディングエージェントです。AGENTS.mdに従って、プロジェクトを読み、ファイルを直し、コマンドを実行します。OpenAIは、すべてのCodexアプリが同じCodexハーネスで動き、その中にGPTモデルがあると説明しています。

もっと学ぶ GPT について詳しく見る

コーディングエージェント(Coding Agent)

原文の表記 · Coding agent

コードを読み、直し、実行して開発の仕事をこなすAI開発ツール

Claude Code や Codex のような AI 開発ツールを呼ぶ名前です。モデルがツールを使ってコードを読み、ファイルを直し、コマンドを実行しながら自分で働きます。同じプログラムは文脈によってツール・ハーネス・エージェンティックシステム・エージェントとも呼ばれ、どれも正しい呼び方です — いつどれを使うかは AI コースのエージェントの章にあります。LangChain はモデルとハーネスを合わせたものをエージェントと呼ぶので、モデルとプログラムが一緒に働く姿がコーディングエージェントです。

もっと学ぶ

出典 · SONUB

SONUB — Tool Master

用語 2 個 · 2026-10-26 確認

原文の用語集を開く

ツール(エージェントコーディングツール)

原文の表記 · Tool (agent coding tool)

Claude Code や Codex のように、人がコンピューターと AI を使って働くためのプログラム

ツールは道具という意味です。AI の話では、ツールは人がコンピューターと AI を使って働くためのプログラムのことで、Claude Code と Codex が代表です。こうしたプログラムはエージェントコーディングツールとも呼ばれ、Claude Code の公式リポジトリも自らを "an agentic coding tool" と紹介しています。最近は同じプログラムを、モデルを包む部分として見るときはハーネス、モデルまで含めて働く姿全体として見るときはエージェントとも呼びます。

もっと学ぶ

Hermes Agent

Nous Research が作ったオープンソースの AI エージェント(ハーネス)

Hermes Agent は Nous Research が MIT ライセンスで公開している AI エージェントです。ターミナルで hermes コマンドで開き、hermes model で OpenRouter・OpenAI・Nous Portal など、たくさんの提供元のモデルから選んで使います。モデルを取り替えても、ツール・メモリ・スキル・予約したジョブといった残りはそのままです。だから、モデル以外のすべてであるハーネスがよく分かる例です。

もっと学ぶ

出典 · OpenAI

Harness engineering: leveraging Codex in an agent-first world

用語 1 個 · 2026-10-20 確認

原文の用語集を開く

ハーネスエンジニアリング(Harness engineering)

エージェントが確実に働ける環境を設計すること

OpenAIが、コードを手で書かずにCodexで製品を作ったときに使った名前です。人が舵を取り、エージェントが実行します。エンジニアは環境を設計し、意図を伝え、フィードバックのループを作ります。AGENTS.mdは100行ほどの短い地図にし、くわしいことは docs/ に置き、ルールはリンターとテストで守らせます。

もっと学ぶ

出典 · OpenAI

Codex Docs — Non-interactive mode

用語 2 個 · 2026-10-20 確認

原文の用語集を開く

プロジェクト専用ハーネス(project harness)

原文の表記 · Project harness

エージェントを作業者として呼ぶ、1つのプロジェクト用の実行役

harness.sh や harness.mjs のように、1つのプロジェクトのために作った外側の実行役です。すべての依頼を受け取り、CodexやClaude Codeを非対話の作業者として呼び、返ってきたコードを保存し、自分のテストで判定し、実行記録とハッシュを証拠として残します。作業者の中では、組み込みハーネスがそのまま動いています。

もっと学ぶ

codex exec

チャット画面なしでCodexを1回実行するコマンド

スクリプト、CI、プロジェクト専用ハーネスが使うCodexのコマンドです。初期設定では読み取り専用のサンドボックスで動きます。--json はすべてのイベントをJSON Linesで出力し、最初のイベント thread.started にセッションIDが入っています。--output-schema は、最後の答えを自分で決めたJSONの形に合わせます。

もっと学ぶ

出典 · SONUB

SONUB AI Internals — MoE

用語 1 個 · 2026-10-24 確認

原文の用語集を開く

MoE

入力ごとに一部の専門家だけで計算する構造

MoE(Mixture of Experts)は「複数の専門家の組み合わせ」という意味です。モデルの中に専門家と呼ぶ処理部分をいくつも置き、ルーターがトークンごとにその一部だけを選んで計算します。計算量は減りますが、どの専門家が選ばれるか分からないので、モデル全体を入れるメモリー(RAM)はそのまま必要です。例: Qwen3-Coder 30B-A3B。

もっと学ぶ 重みとパラメータについて詳しく見る

出典 · OpenAI

Unrolling the Codex agent loop

用語 1 個 · 2026-10-24 確認

原文の用語集を開く

組み込みハーネス(built-in harness)

原文の表記 · Built-in harness

エージェントのプログラムに最初から入っているハーネス

Codex CLIやClaude Codeの中に最初から入っているハーネスです。依頼すると、ファイルを書き、テストを実行し、作業が終わったかどうかを自分で決めます。作業するのも確かめるのも同じプログラムなので、git diff とセッション記録を読み、テストを自分でもう一度実行して確かめます。

もっと学ぶ

出典 · OpenRouter

OpenRouter Docs — FAQ

用語 1 個 · 2026-10-24 確認

原文の用語集を開く

OpenRouter

いろいろな会社のAIモデルを、1つの API と1つのキーで使えるようにする仲介サービス

OpenRouter を使うと、数百のモデルを同じ OpenAI 形式の API で呼べます。トークン料金は提供会社の値段そのままで、クレジットをチャージするときに 5.5% の手数料を取ります。だから「安い場所」というより「選びやすい場所」です。

もっと学ぶ

出典 · DeepSeek

DeepSeek API Docs

用語 1 個 · 2026-10-24 確認

原文の用語集を開く

DeepSeek

モデルの重みを公開し、OpenAI 形式の安い API を売る中国の AI 企業

DeepSeek(ディープシーク)は2023年にできた中国・杭州の AI 企業です。モデルの重みを MIT ライセンスで公開しているので誰でもダウンロードして動かせます。また、OpenAI と同じ形式の API を安い値段で売っています。2025年1月の推論モデル R1 は、トップのモデルに並びながら費用はずっと少なく済みました。SONUB のリエン チャットボットは DeepSeek で考えます。

もっと学ぶ 重みとパラメータについて詳しく見る

以下は SONUB がポップアップで説明している言葉を分野ごとにまとめたものです。外部の用語集ではなく、SONUB の授業で使う説明です。[もっと学ぶ]を押すと、その言葉を教える画面に移ります。

SONUB 用語辞典

人工知能

用語 298 個

人工知能

原文の表記 · AI

データから規則を見つけて答えを作るプログラム

人工知能は、膨大な例を見てそこにある規則を見つけ出し、その規則で答えを作ったり判断したりするプログラムです。生き物ではなく、人のように考えているわけでもありません。次に来る可能性が最も高いものを、とても速く計算しているだけです。

もっと学ぶ

大規模言語モデル

原文の表記 · LLM

膨大な文章を学び、文の続きを書く人工知能

大規模言語モデルは、膨大な文章を読んで「どの言葉の後にどの言葉が来やすいか」を学んだモデルです。あなたが文を書くと、次に来そうな語を選び続けて答えを作ります。だから流暢に聞こえても内容が間違っていることがあります。

もっと学ぶ

プロンプト

原文の表記 · Prompt

人工知能に書いて渡す文 — あなたの指示

プロンプトとは、あなたが人工知能に打ち込む文そのものです。呪文ではありませんが、書き方は大切です。自分が誰で、何がほしくて、どんな形式で受け取りたいかをはっきり書くほど答えは良くなります。答えが気に入らないときは、言い争うよりプロンプトを書き直す方が早いです。

もっと学ぶ

システムプロンプト

原文の表記 · System prompt

会話が始まる前にあらかじめ与えておく指示

システムプロンプトは、あなたのメッセージより前に置かれる指示です。この助手が誰で、いつも守るべきこと、決してしてはいけないことを定めます。画面には普通見えませんが、すべての答えに影響します。リエンの教育方針もここに入っています。

トークン

原文の表記 · Token

人工知能が実際に数える文字のかたまり

人工知能は文字や単語のまま読むのではなく、文章をトークンという小さなかたまりに切って扱います。短い語は一つ、長い語はいくつかに分かれます。長さの上限も API の料金も文字数ではなくトークン数で数えるので、費用や容量の話には必ずこの語が出てきます。

コンテキストウィンドウ

原文の表記 · Context window

人工知能が一度に見ていられる文章の量

コンテキストウィンドウは、人工知能が作業する机です。今の質問、これまでの会話、貼り付けた資料が、すべてその上に載っていなければなりません。会話がその大きさを超えると古い部分から机の外へ押し出され、人工知能は本当にもう見られなくなります。長い会話で最初の話を忘れたように見えるのは、このためです。

ハルシネーション(誤生成)

原文の表記 · Hallucination

根拠がないのにもっともらしく作られた答え

この分野でこの語が指すのは一つだけ、すなわち誤っている、または根拠のない出力を、確信ありげに述べることです。人が幻を見る体験とは何の関係もありません。機械は何も体験していません。モデルは出典を確かめるのではなく、もっともらしい語を選んでいるために起こります。人名・数値・引用は必ず別途確認してください。

温度(temperature)

原文の表記 · Temperature

無難で一定な答えと意外な答えを調節するつまみ

温度は、モデルが次の語をどれだけ大胆に選ぶかを決めます。低くすると最も確からしい語ばかり選ぶので、答えは安定して再現しやすくなります。事実確認やコードに向きます。高くすると確率の低い語にも手を伸ばすので、答えは多様になる代わりに誤りも増えます。発想を広げたいときに向きます。

パラメータ(parameter)

原文の表記 · Parameter

モデルが学習しながら調整する無数の数値の一つ

パラメータは英語で parameter(たくさんあるときは parameters)と呼びます。モデルが学習しながら自分で調整する数値のすべてです。重みが最も多く、バイアス、埋め込み、正規化の係数もパラメータです。7B モデルには約 70 億個あります。多いと動かすのが重くなりますが、自動的に良くなるわけではありません。

もっと学ぶ

学習(訓練)

原文の表記 · Training

例を繰り返し見せてモデルの数値を整えていく作業

学習とは、モデルが作られる過程です。例を一つずつ見せると答えを推測し、どれだけ外れたかを教えると数値を少しずつ正解の方へ動かします。これを何十億回も繰り返すと規則が定着します。時間も費用もかかるため、モデルは一度学習させて何度も使い回します。

ファインチューニング(微調整)

原文の表記 · Fine-tuning

すでに学習済みのモデルに自分の例を追加で教えること

モデルを一から作るのではなく、完成済みのモデルに自分が用意した少量の例で追加学習させ、口調や分野を寄せる方法です。一から学習するよりずっと安く済みます。ただし初心者の段階では、プロンプトをより明確に書くだけで解決することがほとんどです。

推論(実行)

原文の表記 · Inference

学習済みのモデルを実際に動かして答えを得ること

推論とは、モデルを普段どおり使うこと自体です。文を入れるとモデルが計算し、答えが出てきます。このとき モデルは何も新しく学びません。実行の前後でモデルはまったく同じです。人工知能サービスの費用や速度の話は、たいていこの段階を指します。

検索拡張生成(RAG)

先に資料を探し、それを見ながら答えさせるやり方

この方式では、まずシステムが質問に関係する段落をあなたの資料から探し出し、その段落を人工知能に渡して「これを根拠に答えなさい」と指示します。人工知能が記憶だけで答えなくなるため、作り話が大きく減り、どの資料を使ったかも確認できます。

エージェント

原文の表記 · Agent

道具を使い、自分で手順を進める人工知能

普通のチャットボットは返事を書くだけです。エージェントはファイルを読む、検索する、コマンドを実行するといった道具を与えられ、結果を見ながら次に何をするかを自分で決めて目標へ進みます。その分だけ役に立ち、同時に危険も増えます。だから何に触れてよく、何に触れてはいけないかを明確に決めておく必要があります。広い意味では、エージェントはモデルとハーネスを合わせたものです — LangChain はこれを "Agent = Model + Harness" と書いています。

サブエージェント

原文の表記 · Sub-agent

メインのエージェントが仕事の一部を任せるために起動する助っ人エージェント

サブエージェントは、自分専用の新しいコンテキストウィンドウで働きます。だからたくさんのファイルを読んだり広く検索したりしても、結果だけを報告し、メインの会話を短く保てます。サブエージェントには狭い仕事を一つと、必要な道具だけを渡しましょう。そして、その報告もほかの下書きと同じように確認しましょう。

もっと学ぶ

Ralph Loop(ラルフ・ループ)

仕事が本当に終わるまで、エージェントに同じプロンプトを何度も渡すこと

エージェントが止まろうとすると、フック(hook)が同じプロンプトをもう一度渡します。エージェントは、ファイルや Git にすでに保存した作業の続きから進めます。ループには、確かめられるゴールと、最大の回数のような上限が必要です。そうしないと、いつまでも回り続けることがあります。

もっと学ぶ

スキル

原文の表記 · Skill

必要なときに人工知能が読み込む再利用可能な手順書

スキルとは、ある一種類の仕事のための指示書と、必要ならスクリプトまで収めた小さなフォルダです。その仕事が出てきたときだけ読み込むので、すべての会話がすべての知識を抱え込まずに済みます。同じ説明をプロンプトに何度も書いているなら、それはスキルにすべき合図です。

もっと学ぶ

ニューラルネットワーク

原文の表記 · Neural network

例から規則を学ぶ、単純な計算のつながり

ニューラルネットワークは、とても単純な計算を何層にも重ねてつないだ仕組みです。人が規則を書くのではなく、たくさんの例を見せると自分の数値を少しずつ直して正解に近づいていきます。名前は脳細胞のたとえから来ていますが、中身はコンピューターが行う計算であり、考える生き物ではありません。

もっと学ぶ

機械学習

原文の表記 · Machine learning

規則を書く代わりに、例で教えるやり方

普通のプログラミングでは、人が規則を書きます。機械学習では代わりに、答えの付いた例を何千と見せて、規則をコンピューター自身に見つけさせます。だから写真や音声のようにきっちり割り切れないものをうまく扱える一方、例が偏っていると自信満々に間違えることもあります。

もっと学ぶ

ディープラーニング

原文の表記 · Deep learning

層を何重にも重ねた機械学習 — 今の人工知能の土台

ディープラーニングは、層を何重にも重ねたニューラルネットワークで行う機械学習です。前の層は写真の輪郭のような単純なものをとらえ、後ろの層ほど顔のような複雑なものを見分けます。今よく話題になる人工知能は、対話モデルも含めてほとんどがこの方式で作られています。

もっと学ぶ

トランスフォーマー

原文の表記 · Transformer

今の言語モデルをほぼ支えているネットワーク設計

トランスフォーマーは2017年に発表されたニューラルネットワークの構成方法で、入力中のすべての語が互いを一度に見比べられるようにします。そのおかげで長い文でも前後がぶれずにつながります。GPT の T はこれを指しており、名前を知っている対話モデルはほぼすべてトランスフォーマーです。

もっと学ぶ GPT について詳しく見る

重み(weight)

原文の表記 · Weight

入力をどれだけ強く反映するかを決める、学習で得た数値

重みは英語で weight(たくさんあるときは weights)と呼びます。ニューラルネットワークの中の各つながりにある数値で、入力にかけ算され、その入力が結果にどれだけ影響するかを決めます。人が入力するのではなく、答えが良くなるまで学習が少しずつ動かして見つけます。モデルのファイルはほとんどがこの数値なので、オープンモデルとは重みをダウンロードできるモデルのことです。

もっと学ぶ

プロンプトエンジニアリング

原文の表記 · Prompt engineering

人工知能がうまく答えられるように尋ねる技術

プロンプトエンジニアリングは、依頼文を上手に書くための実践的な技術です。どんな役割で、何のために、どんな形の答えを、そして本人には分からない事実は何かを一緒に伝えます。プログラミングというより、新しい同僚に仕事を説明する作業に近いものです。同じモデルでも、尋ね方ひとつで見事にも役立たずにも見えます。

もっと学ぶ

チャットボット

原文の表記 · Chatbot

普段の言葉で会話するプログラム

チャットボットとは、ボタンを押す代わりに普段の文でやり取りするプログラムのことです。昔のものは決まった台本をなぞるだけで、少し外れるとすぐ行き詰まりました。今は多くの場合、対話画面の裏に言語モデルがいます。このサイトのリエンもチャットボットであり、どのチャットボットとも同じく人ではなく、規則どおりに動くソフトウェアです。

もっと学ぶ

MCP

人工知能に道具や資料をつなぐ共通の差込口

MCP は Model Context Protocol の略で、人工知能の助手がファイルを読む・データベースを調べる・他のサービスを呼ぶといった、自分の外側に手を伸ばすときの共通の約束事です。これがない頃は道具ごとに専用の接続を作る必要がありました。人工知能の助手にとっての USB 端子だと考えると分かりやすいでしょう。形が一つなので、それに合わせて作ったものは差し込むだけで動きます。エージェントが MCP クライアントで、自分の機能をエージェントが使えるように差し出すプログラムが MCP サーバーです — たとえば WebMCP は、ウェブサイトがウェブブラウザーを通して自分の機能をエージェントが使えるように差し出すものです。

もっと学ぶ

MCP サーバー(MCP server)

MCP で AI アプリにツールとデータを提供するプログラム

MCP サーバーは、自分にできること — 呼び出せるツール、読めるデータ、用意されたプロンプト — を MCP で提供するプログラムです。MCP に対応したアプリならどこからでも接続して使えます — Claude Code、Codex、Claude Desktop、自分で作ったプログラム。自分のコンピューターで動いて標準入出力でやり取りすることも、Web 上で動いて HTTP でやり取りすることもあります。サーバーが提供するものはエージェントが実行するので、インストールする前に中身を読みましょう。

もっと学ぶ

確率

原文の表記 · Probability

あることがどれくらい起こりやすいかを表す 0 から 1 の数

確率は、あることがどれくらい起こりやすいかを 0(決して起きない)から 1(必ず起きる)までの数で表したもので、よくパーセントでも書きます。言語モデルは、次に来うるすべてのトークンに確率を付け、その合計はちょうど 1 になります。確率が高いのは、その言葉が学習したパターンによく合うというだけで、文の内容が正しいという意味ではありません。

もっと学ぶ

言語モデル

原文の表記 · Language model

次に来そうなトークンを計算するプログラム

言語モデルは、文章を受け取り、次に来うるすべてのトークンの確率を計算するプログラムです。トークンを一つ選んで文の末尾に付け、また計算する、という繰り返しで文章を書きます。いまの大規模言語モデル(LLM)は膨大な文章で学習したニューラルネットワークですが、言語モデルはとても小さくてもかまいません。このサイトのバイグラムのように、単語の回数を数えた表一つでも言語モデルです。

もっと学ぶ

サンプリング

原文の表記 · Sampling

重み付きのくじ引きで次のトークンを選ぶこと

言語モデルが文章を書くとき、次に来うるトークンそれぞれに確率が付きます。サンプリングは、いつも最上位を取るのではなく、確率の高いものほど当たりやすいくじ引きで一つを選びます。だから同じ質問でも違う答えが出ることがあり、同じ答えがまた出ることもあります。温度・top-k・top-p は、このくじ引きのしかたを変える設定です。

もっと学ぶ

貪欲法(greedy decoding)

原文の表記 · Greedy decoding

いつも一番確率の高い次のトークンを選ぶこと

貪欲法はくじ引きをせず、毎回いちばん確率の高い候補を選びます。同じ入力なら毎回同じ結果になるので、事実やコードには向きますが、文が単調になり、同じ言い回しを繰り返しがちです。各段階で最上位を選んでも、文全体として最善になるとは限らず、答えが正しくなるわけでもありません。

もっと学ぶ

バイグラム

原文の表記 · Bigram

隣り合う二つの単語の組。数えて次の単語を予測する

バイグラムは、隣り合って現れる二つの単語の組です。バイグラムモデルは、学習用の文の中で、ある単語の後にどの単語が何回続いたかを数え、その回数を確率に変えます。直前の一語しか見ないので学習用の教材であり、現代のニューラル言語モデルのしくみとは違います。「人工知能を作る」画面で自分で作ってみられます。

もっと学ぶ

次のトークン予測

原文の表記 · Next-token prediction

次に来るトークンを当てることをくり返して、文章を作るやり方。

言語モデルが文章を作る基本のしくみです。それまでの文脈を見て、次に来るかもしれないすべてのトークンの確率を計算し、1つを選んで最後につなげます。長くなった文脈で、答えが終わるまでこれをくり返します。

もっと学ぶ

確率分布

原文の表記 · Probability distribution

起こりうる結果と、それぞれがどれくらい起こりやすいかの一覧。ぜんぶ足すと100%。

確率分布は、起こりうるすべての結果に確率を1つずつわりあてて、合計が1(100%)になるようにしたものです。言語モデルは次のトークンについて、知っている語彙ぜんたいの確率分布を作り、貪欲法やサンプリングがそこから1つを選びます。

もっと学ぶ

自己回帰

原文の表記 · Autoregressive

トークンを一つずつ作り、それを次の入力に戻すこと

自己回帰モデルは、トークンを一つずつ書きます。新しいトークンは文の末尾に付け足され、そこまでの文全体が、次の一つを選ぶための入力になります。この繰り返しがあるので答えは一語ずつ現れ、早い段階で一つ間違ったトークンが出ると、その後の文全体が間違った方向へ引っ張られることがあります。

もっと学ぶ

文脈(コンテキスト)

原文の表記 · Context

一つの答えのためにモデルに渡される文章のすべて

文脈とは、モデルが一つの答えを出すために受け取るもの全部です。システムプロンプト、それまでの会話、添付ファイル、アプリが加えた検索結果などが入ります。モデルの重みは変わりません。答えが変わるのは文脈が違うからです。何を入れるかはアプリが決め、入れなかったものはモデルには存在しないのと同じです。入れられる量はコンテキストウィンドウで決まります。

重みとパラメータについて詳しく見る

推論モード

原文の表記 · Reasoning mode

答える前に計算を多めに使う設定

推論モードでは、モデルがまず途中の手順(計算、確認、別の道の試し)を出力し、そのあとで最終的な答えを出します。数学やコード、何段階もある問題に役立つことが多いですが、トークンを多く使い、時間もかかり、それでも正しい答えが保証されるわけではありません。画面に出る「考え中…」のような表示は製品の見せ方であり、人のように考えている証拠ではありません。

もっと学ぶ

トークナイザー

原文の表記 · Tokenizer

文章をトークンに切り分け、番号を付ける道具

トークナイザーは、文章をトークンに分け、それぞれを自分の語彙にある ID 番号に置き換えます。トークンは単語まるごとのことも、単語の一部や一文字、バイトのこともあり、空白や句読点も数に入ります。モデルの系統ごとにトークナイザーが違うので、同じ文でもトークン数が変わることがあります。AI ラボでは、本物の LLM のトークナイザーではなく、学習用の簡単な単語分割を使っています。

もっと学ぶ

アテンション(attention)

原文の表記 · Attention

モデルがほかのトークンの情報を混ぜ合わせるしくみ

アテンションは Transformer の中の一段階で、各トークンが文脈の中のほかのすべてのトークンに点数を付け、その点数に応じて、それぞれの情報をどれだけ混ぜるかを決めます。文の中の「それ」が、指している名詞と結び付くのはこのしくみのおかげです。文章を生成するモデルのアテンションは因果的で、トークンは前の位置しか使えず、まだ書かれていない言葉は見られません。

もっと学ぶ

ソフトマックス(softmax)

原文の表記 · Softmax

生のスコア(ロジット)を合計 1 の確率に変える計算

モデルは各段階で、語彙のすべてのトークンにロジットという生のスコアを付けます。ソフトマックスは、そのスコアの並びを 0 から 1 の間の確率に変え、合計を 1 にします。順番は保たれ、いちばん高いスコアがいちばん高い確率になります。温度はソフトマックスの前にスコアを割る値で、結果をとがらせたり平らにしたりします。

もっと学ぶ

top-k・top-p

原文の表記 · Top-k and top-p

サンプリングで引ける候補をしぼる制限

サンプリングの前に、ありそうにない候補を切り捨てる設定です。top-k は確率の高い上位 k 個のトークンだけを残します。top-p は、上から確率を足していき、合計が p 以上になる最小のまとまりを残すので、残る数は段階ごとに変わります。どちらも変な言葉が出にくくなりますが、事実を確かめる機能ではありません。

もっと学ぶ

勾配降下法

原文の表記 · Gradient descent

損失が小さくなる向きに、重みを少しずつ動かす方法

勾配降下法は、多くのモデルが学習に使う方法です。予測を一通り行ったあと勾配を計算します。勾配とは、損失を小さくするには各重みをどちら向きに、どれくらい強く動かせばよいかを表す値です。そして学習率をかけた小さな一歩だけ、すべての重みをその向きに動かします。これを何度も繰り返すと、重みはデータに合う値に近づきます。「実践AI開発」画面では w が 0 から約 2 になります。

もっと学ぶ 重みとパラメータについて詳しく見る

学習率

原文の表記 · Learning rate

1回の更新で各重みが動く歩幅の大きさ

学習率は、勾配降下法のすべての修正にかける数です。小さすぎると学習がなかなか進まず、大きすぎると重みが行ったり来たりしたり、値が爆発したりして落ち着きません。この値はモデルが自分で学ぶものではなく、人が選んで試すハイパーパラメータです。「実践AI開発」画面では 0.01、入力 × w + b の課題では 0.05 を使います。

もっと学ぶ 重みとパラメータについて詳しく見る

損失関数(loss)

原文の表記 · Loss

予測がどれだけ外れているかを表す一つの数

損失は、モデルの予測と正解とのずれを一つの数にまとめたものです。学習とは、この数が小さくなるように重みを変えることです。その計算式を損失関数といいます。「実践AI開発」画面では誤差を2乗した値の平均を使い、ほかの課題ではほかの式を使います。学習データでの損失が低いだけでは、新しいデータでもうまくいく証明にはなりません。

もっと学ぶ 重みとパラメータについて詳しく見る

学習データ

原文の表記 · Training data

モデルが重みを学ぶための例

学習データは、学習のときにモデルに見せる例の集まりです。言語モデルなら文章、画像の分類器ならラベル付きの写真、小さな回帰なら入力と正解の組です。モデルが拾えるのはこのデータの中にあるパターンだけで、データの誤りや抜けもそのまま学びます。確認用に取っておくデータ(検証データ・テストデータ)は学習に使ってはいけません。

重みとパラメータについて詳しく見る

評価指標

原文の表記 · Evaluation metric

見たことのないデータでモデルがどれだけうまくいくかの点数

評価とは、学習を終えたモデルの性能を、学習に使っていないデータと指標(結果に点を付ける決まったやり方)で測ることです。いちばん簡単な指標は正解した割合である正解率で、ほかの指標は違う種類の間違いを数えます。一つのテストデータで点が良くても、それは根拠であって証明ではありません。間違えた答えも見て、テストデータは学習に混ぜないようにします。

分類モデル

原文の表記 · Classification

あるものがどの種類に入るかを予測すること

分類は、答えが決まった種類の中の一つになる課題です。迷惑メールかどうか、3種類のアヤメのどれか、写真に写っている数字はどれか、といったものです。モデルは種類ごとに点数を付け、いちばん高いものを選びます(argmax)。答えが二つなら二値分類、三つ以上なら多クラス分類です。答えが種類ではなく連続した数なら、それは回帰です。

もっと学ぶ

回帰(regression)

原文の表記 · Regression

連続した値として数を予測すること

回帰は、答えが種類ではなく数になる課題です。家の値段、明日の雨量(ミリ)、入力 × 2 の結果などです。モデルは、出した数が本当の値からどれだけ離れているかで採点され、よく2乗誤差が使われます。「実践AI開発」画面の小さなプログラムは回帰です。花がどのアヤメの種類かを決めるのは分類になります。

もっと学ぶ

過学習

原文の表記 · Overfitting

学習データに合わせすぎて、新しいデータで外れること

過学習とは、モデルが一般的なパターンではなく、学習データのくせや雑音まで覚えてしまうことです。すると学習した例では点数がとても高いのに、新しい例ではかなり悪くなります。学習データでの点数と、取っておいた検証データやテストデータでの点数を比べると見つかります。データを増やす、モデルを簡単にする、学習を早めに止める、といった方法が役立ちます。

もっと学ぶ

ハイパーパラメータ

原文の表記 · Hyperparameter

学習の前に人が選ぶ設定。学習では変わらない

ハイパーパラメータは、学習を始める前に人が選ぶ設定です。学習率、学習の回数、層の数、近傍の数 k、決定木の深さなどがあります。学習で変わるのはパラメータ(重み)で、ハイパーパラメータは変わりません。良い値は、いくつか試して検証データで比べて見つけます。最終のテストデータで選んではいけません。

もっと学ぶ 重みとパラメータについて詳しく見る

検証データ

原文の表記 · Validation data

設定を選ぶために取っておくデータ。テスト用とは別

データはふつう三つに分けます。学ぶための学習データ、ハイパーパラメータなどの設定を比べるための検証データ、最後に一度だけ使って最終の点数を出すテストデータです。交差検証は学習データをいくつかに分け、順番に一つずつ外して確かめる方法で、データが少ないときに安定した比較ができます。テストの点数を見ながら調整すると、その点数は実際より良く見えてしまいます。

もっと学ぶ

活性化関数

原文の表記 · Activation function

ニューロンが入力を足し合わせたあとに通す関数

ニューラルネットワークのニューロンは、まず入力を z = w·x + b のようにまとめ、その z を活性化関数に通します。シグモイドはどんな数も 0 から 1 の範囲に押し込み、ReLU は負の数を 0 にして正の数はそのまま残します。こうしたまっすぐでない段階がないと、層をいくら重ねても一本の直線の計算と同じになり、ネットワークは曲がったパターンを学べません。

もっと学ぶ

ランナー(推論エンジン)

原文の表記 · Runner (inference engine)

モデルを読み込んで文章を書かせるプログラム

学習を終えたモデルは、数字が入ったファイルにすぎません。ランナーはその数字を読み込み、あなたの文章をトークンに変え、モデルを動かして次のトークンに点数をつけ、一つを選び、これをくり返して、出てきた言葉を順に表示します。Ollama や llama.cpp は自分のパソコンで使えるランナーです。

もっと学ぶ

KVキャッシュ

原文の表記 · KV cache

前のトークンを計算し直さないために保存したアテンションの結果

アテンションでは、各トークンがキー(key)とバリュー(value)を作ります。自己回帰で生成している間、前のトークンは変わらないので、そのキーとバリューをメモリに取っておき(これが KVキャッシュ)、新しいトークンのたびに計算し直さず使い回します。生成はずっと速くなりますが、キャッシュは文脈が長くなるほど大きくなり、GPU のメモリを多く使うことがあります。

もっと学ぶ 重みとパラメータについて詳しく見る

ツール呼び出し

原文の表記 · Tool call

ツールを実行してほしいとモデルがアプリに出す、形の決まった依頼

モデルが作れるのは文章だけなので、自分では何も実行できません。ツール呼び出しでは、モデルが形の決まった依頼(ツールの名前と引数、ふつうは JSON)を出力し、アプリがそれを確かめ、必要なら許可を求めてからツールを実行します。結果は追加の文脈としてモデルに戻されます。この繰り返しを回すものが、エージェントと呼ばれます。

もっと学ぶ

マルチモーダル

原文の表記 · Multimodal

文章と画像など、何種類ものデータを扱えること

マルチモーダルなモデルは、文章・画像・音声・動画のうち、二種類以上のデータを受け取ったり作ったりします。たとえば写真を受け取り、それについての質問に文章で答えられます。どんな入力も、モデルが計算に使える数に変えられます。マルチモーダルに見える機能がすべて一つのモデルとは限りません。アプリが先に別の音声認識モデルで声を文字にしていることもあります。

もっと学ぶ

バイブコーディング

原文の表記 · Vibe coding

作りたいものを言葉で伝え、AI にコードを書かせること

バイブコーディングは、作りたいもの(見た目や動き)をふつうの言葉で説明し、AI ツールにコードを書かせ、結果を確かめて直してほしい点を伝える作り方です。アイデアを手早く試したり、小さな Web アプリやゲームを作ったりするのに向いています。生成されたコードには誤りやセキュリティの問題が混じることがあるので、出てきたものは自分で確かめる必要があります。SONUB の「バイブコーディング」画面では、リエンがアプリを作ってプレビューを見せます。

もっと学ぶ

クエリ・キー・バリュー(Query・Key・Value)

原文の表記 · Query, key and value

アテンションが情報を探すときに使う三つのベクトル

アテンションでは、位置ごとに自分のトークンから三つのベクトルを作ります。クエリはこの位置が何を探しているか、キーは前にある各位置が何を持っているか、バリューはその位置が渡す情報を表します。モデルはクエリをすべてのキーと比べ、その点数を合計 1 になる重みに変え、その重みでバリューを混ぜ合わせます。

もっと学ぶ

BPE

いちばんよく並ぶ組を次々にまとめるトークナイザーの方式

BPE(byte pair encoding)は、学習用の文章からトークナイザーを作る方法です。1 文字や 1 バイトから始め、隣り合う二つのかけらのうちいちばんよく出てくる組を一つの新しいかけらにまとめ、語彙が十分な大きさになるまでくり返します。よく使う単語は一つのトークンになり、めったに出ない単語はいくつかのかけらに分かれるので、どんな文章でも書き表せます。

もっと学ぶ GPT について詳しく見る

マージ規則

原文の表記 · Merge rules

BPE が組をまとめる順番のリスト

BPE は学習しながら、まとめた組をすべて順番に書き留めます。このリストがマージ規則です。新しい文章をトークンに分けるときは、同じ規則を同じ順番で当てはめます。規則は語彙といっしょに保存します。規則を変えるとトークン番号が変わるので、モデルの重みも学習し直さなければなりません。

もっと学ぶ 重みとパラメータについて詳しく見る

会話履歴

原文の表記 · Chat history

新しい質問といっしょにモデルへ送り直す、前のやり取り

言語モデルは、リクエストとリクエストの間に何も残しません。チャットアプリが覚えているように見えるのは、前のやり取りを新しい質問といっしょにもう一度送っているからです。そのリストが会話履歴です。モデルのコンテキストの長さに収める必要があるので、長い会話は切り詰めたり要約したりします。会話履歴がなければ、質問ごとに別々に答えます。

もっと学ぶ

計算グラフ

原文の表記 · Computation graph

どの計算にどの数が使われたかをつないだ記録

モデルが答えを計算している間、学習用のライブラリは一歩ごとに、どの数がどの足し算や掛け算に入り、何が出てきたかを記録します。その手順のつながりが計算グラフです。逆伝播はこのグラフを損失から逆向きにたどり、一つ一つの数が結果にどれだけ影響したかを順に求めます。

もっと学ぶ

デコーダー

原文の表記 · Decoder

前のトークンから次のトークンを書くトランスフォーマー

デコーダーは、今の位置より前にあるトークンだけを見て次のトークンを予測するトランスフォーマーです。選んだトークンを付け足して、また予測することをくり返して文章を書きます。GPT 系のモデルはこうして書きます。最初のトランスフォーマーには入力全体を一度に読むエンコーダーもありましたが、今のチャットモデルの多くはデコーダーだけを使います。

もっと学ぶ GPT について詳しく見る

拡散モデル

原文の表記 · Diffusion model

ノイズを少しずつ取り除いて画像を作るモデル

拡散モデルは、ランダムなノイズだらけの画像から始め、入力した文章を手がかりに、一歩ごとにノイズを少しずつ取り除いて絵を作ります。本物の画像にノイズを混ぜ、それを元に戻す方法を覚えることで学習します。Stable Diffusion など多くの画像・動画生成ツールがこの方式で、トークンを一つずつ書く言語モデルとは仕組みが違います。

もっと学ぶ

encode / decode

文章をトークン番号に、番号を文章に戻す変換

encode は、トークナイザーが文章をトークンに切り、それぞれを語彙の番号に置き換える段階です。decode はその逆で、番号ごとにかけらを探してつなぎ、文章に戻します。よいトークナイザーなら encode してから decode すると元の文章がそのまま戻るので、これを確かめてみるとよいでしょう。

もっと学ぶ

実行プロバイダー(Execution Provider)

原文の表記 · Execution provider

ONNX Runtime でモデルを特定のチップで動かす部品

ONNX Runtime は、すべてのチップと自分だけでやり取りするわけではありません。実行プロバイダーは、モデルの計算を 1 種類のハードウェアに渡す部品です。たとえば NVIDIA GPU(CUDA・TensorRT)、Apple のチップ(Core ML)、ふつうの CPU があります。使いたいプロバイダーを順に並べると、前のプロバイダーが実行できない部分は次のプロバイダーが受け持ちます。

もっと学ぶ

FreeToken

とても大きな MoE モデルを個人の PC で動かすランタイム

FreeToken は /ai/internals の画面で紹介しているランタイムです。トークンごとに一部の専門家(エキスパート)だけを使う、とても大きな MoE モデルを個人のコンピューターで動かすために作られました。NVIDIA GPU、CPU、メインメモリ(RAM)とその間の接続を、一台の推論マシンのようにまとめて使います。

もっと学ぶ

勾配クリッピング

原文の表記 · Gradient clipping

大きすぎる勾配を上限まで縮めること

一つのバッチがとても大きな勾配を出すと、1 回の更新で重みが遠くに飛び、損失が急に上がったり nan になったりします。勾配クリッピングは更新の前に勾配全体の大きさを測り、決めた上限を超えていればその上限まで縮めます。向きはそのままで、歩幅だけを短くします。

もっと学ぶ 重みとパラメータについて詳しく見る

正規化

原文の表記 · Normalization

学習が安定するようにネットワーク内の数の大きさをそろえること

数がたくさんの層を通るうちに大きくなりすぎたり小さくなりすぎたりすると、学習が壊れることがあります。正規化は、一段ごとに数の大きさをそろえ直します。トランスフォーマーはレイヤー正規化を使います。トークンごとに数を平均 0、ばらつき 1 にそろえてから、学習で決めた数を掛けたり足したりします。この数もパラメータです。

もっと学ぶ 重みとパラメータについて詳しく見る

MLP

層を何枚も重ねた基本のニューラルネットワーク

MLP(多層パーセプトロン)は、数を二つ以上の層に順に通します。層ごとに重みを掛け、バイアスを足し、ReLU や GELU のような活性化関数をかけます。トランスフォーマーのブロックごとに 2 層の小さな MLP があり、アテンションがほかのトークンの情報を混ぜたあと、トークンごとに別々に特徴を変えます。

もっと学ぶ GPT について詳しく見る 重みとパラメータについて詳しく見る

モメンタム

原文の表記 · Momentum

前の更新の勢いを次の一歩に引き継ぐこと

ふつうの SGD は今の勾配の分だけ重みを動かすので、ジグザグに揺れることがあります。モメンタムは過去の更新を積み重ねた値を持ち、新しい一歩ごとにその一部を足します。こうして重みが一定の方向に転がり続け、小さな揺れの影響が減ります。この積み重ねた値はオプティマイザーがチェックポイントにいっしょに保存すべき状態で、ふつうの SGD にはありません。

もっと学ぶ 重みとパラメータについて詳しく見る

負の対数

原文の表記 · Negative log

確率が小さいほど大きくなる値 −log(p)

確率の対数を取って前にマイナスを付けると、確率が 1 のときは 0 で、確率が 0 に近づくほど急に大きくなる数になります。学習ではこれを正解のトークンの損失として使います。自信を持って当てれば損失はほとんどなく、自信を持って外すと損失が大きくなります。

もっと学ぶ

ONNX

いろいろなツールが共通で読める AI モデルのファイル形式

ONNX(Open Neural Network Exchange)は、モデルを入れるための公開のファイル形式です。PyTorch などのフレームワークで学習したモデルを .onnx ファイルに書き出すと、元の学習コードがなくても、いろいろなプログラムがいろいろな機器で実行できます。2017 年に Microsoft と Facebook が始めました。

もっと学ぶ

ONNX Runtime

ONNX モデルをいろいろな機器で動かすエンジン

ONNX Runtime は、.onnx モデルを実行する Microsoft のオープンソースのエンジンです。Windows、macOS、Linux、スマートフォン、ブラウザーで動き、実行プロバイダーを通して GPU などのアクセラレーターを使います。SONUB では、文章を声に出して読み上げる音声モデルをこれで動かしています。

もっと学ぶ

出力層

原文の表記 · Output layer

語彙のトークンごとに点数を付ける最後の層

出力層は、ある位置の最後のベクトルを、語彙のトークンごとに一つずつの点数に変えます。その点数をソフトマックスが次のトークンの確率に変えます。トークンごとに重みが一行ずつ必要なので、語彙が大きいとこの層も大きくなります。

もっと学ぶ 重みとパラメータについて詳しく見る

3B・7B・8B(パラメータ数)

原文の表記 · 3B, 7B, 8B (parameter count)

モデルの大きさ — B はバイトではなく 10 億個

3B、7B、70B のような名前は、パラメータの個数を表します。7B は、数値一つ一つが約 70 億個という意味で、ファイルの大きさでもベクトルの個数でもありません。メモリで占める大きさは、数値一つに何バイト使うかで決まります。同じ 8B モデルでも、16 ビットなら約 16 GB、4 ビットなら約 4 GB です(追加で必要な分は除きます)。

もっと学ぶ

量子化スケール

原文の表記 · Quantization scale

保存した小さな整数を元の値に戻すための掛け算の値

量子化したファイルは、重みを小さな整数で保存します。使うときは、ランタイムが整数ごとにそばに保存されたスケールを掛けて、元に近い値に戻します。GGUF のような形式は重み 32 個のような小さなまとまりごとにスケールを一つずつ持つので、ファイルには整数のほかにスケールやメタデータも入っています。そのため実際のファイルは、単純な計算より少し大きくなります。

もっと学ぶ 重みとパラメータについて詳しく見る

残差接続

原文の表記 · Residual connection

層の入力を出力にもう一度足すこと

残差接続は、層に入ったものを層から出たものに足します。出力 = 入力 + 層(入力)。元の情報がそのまま残り、層は何を変えるかだけを覚えればよくなります。勾配も多くの層を近道でさかのぼれるので、とても深いトランスフォーマーでも学習できます。

もっと学ぶ

RoPE

ベクトルを回してトークンの位置を伝える方法

RoPE(回転位置埋め込み)は、クエリとキーのベクトルをトークンの位置に応じた角度だけ回して、位置の情報を入れます。するとアテンションが二つのトークンを比べるとき、二つがどれだけ離れているかが結果に表れます。2021 年に提案され、Llama をはじめ多くのオープンなモデルが使っています。

もっと学ぶ

SGD

小さなバッチの勾配で重みを少しずつ直すこと

SGD(確率的勾配降下法)は、いちばん単純な学習の決まりです。ランダムに選んだ小さなバッチで損失の勾配を求め、すべての重みをその反対の向きに、学習率の分だけ少し動かします。次のバッチでまたくり返します。Adam のようなオプティマイザーはこれにモメンタムのような状態を加えますが、ふつうの SGD には別に保存するものがありません。

もっと学ぶ 重みとパラメータについて詳しく見る

sherpa-onnx

インターネットなしで音声認識・音声合成を動かすオープンソースのツール

sherpa-onnx は Next-gen Kaldi チームのオープンソースプロジェクトで、音声モデルを ONNX Runtime で動かします。インターネットにつながっていなくても、話し声を文字に、文字を話し声に変えられ、コンピューター、スマートフォン、小さなボードで動きます。SONUB では、あなたの声を文字に書き起こすエンジンです。

もっと学ぶ

SLM

ふつうの機器でも動くほど小さな言語モデル

SLM(小さな言語モデル)は LLM と同じ仕組みですが、パラメータがずっと少ないので、ノートパソコンやスマートフォンで動き、答えが速く、費用も安くすみます。決まった境目はなく、ふつうはパラメータが数十億個以下のモデルを小さいと呼びます。幅広い知識や長い推論は苦手ですが、範囲のせまい仕事には十分使えます。

もっと学ぶ 重みとパラメータについて詳しく見る

音声認識

原文の表記 · Speech-to-text

話した言葉を文字に変えること(STT)

音声認識(STT、speech-to-text)は、話し声を文字に変えることです。モデルが音を短く区切って聞き取り、いちばんありそうな単語を書きます。その文字を言語モデルに送ることができます。最近の一部のモデルは、文字に変えずに音をそのまま受け取ることもできます。

もっと学ぶ

TensorRT-LLM

NVIDIA GPU で LLM を速く動かすための NVIDIA のライブラリ

TensorRT-LLM は NVIDIA が作ったオープンソースのライブラリで、大規模言語モデルを NVIDIA GPU 向けに最適化します。モデルをその GPU に合わせて変換し、たくさんのリクエストをまとめて処理する方法や量子化などの工夫を加えて、サーバーが一度に多くのユーザーに答えられるようにします。対象は NVIDIA のハードウェアだけです。

もっと学ぶ

音声合成

原文の表記 · Text-to-speech

書いた文章を話し声に変えること(TTS)

音声合成(TTS、text-to-speech)は、文章を声に出して読み上げることです。モデルが文字を音に変えながら、発音、リズム、抑揚を選びます。SONUB のリエンの声はこうして作られていて、そのモデルは ONNX Runtime が動かしています。

もっと学ぶ

トレーニングステップ

原文の表記 · Training step

学習中に重みを 1 回直す単位

トレーニングステップは、バッチを一つ取る → 順伝播 → 損失を計算 → 逆伝播 → 重みを更新、を一回りすることです。学習のログにはふつうステップ番号と損失がいっしょに表示されるので、ステップが進むにつれて損失が下がっているかを見られます。データ全体を一通り見終えることは、エポックという別の単位です。

もっと学ぶ 重みとパラメータについて詳しく見る

vLLM

LLM を速く提供するためのオープンソースのサーバーエンジン

vLLM は UC バークレーで始まったオープンソースのエンジンで、言語モデルを多くのユーザーに提供するときに使います。PagedAttention という方法で、KV キャッシュをコンピューターのメモリのように小さなページに分けて入れるので、GPU メモリのむだが少なく、たくさんのリクエストをまとめて処理できます。OpenAI と同じ形の API を用意しています。

もっと学ぶ

VLM

画像も読める言語モデル

VLM(視覚言語モデル)は、文章といっしょに画像を受け取り、文章で答えます。画像を担当する部分が画像をベクトルに変えると、言語モデルがそれをトークンと並べて読みます。写真に何が写っているかを聞いたり、グラフや画面のスクリーンショットを読ませたりできます。出すのはやはり文章で、画像を作るのは拡散モデルなど別のモデルの仕事です。

もっと学ぶ

アテンションヘッド

原文の表記 · Attention head

アテンションの計算一式

アテンションヘッドは、クエリ・キー・バリューの重みを自分で持ち、アテンションを 1 回計算する単位です。一つの層にはふつうヘッドがいくつも並んでいて、前の単語や文の主語のように、それぞれ違う種類のつながりを探すように学習できます。結果はつなぎ合わせて次に渡します。一つのヘッドがどこを見ているかは役に立つ手がかりですが、モデル全体の説明にはなりません。

もっと学ぶ GPT について詳しく見る 重みとパラメータについて詳しく見る

llama.cpp

自分のコンピューターで言語モデルを動かす C/C++ のランナー

llama.cpp は Georgi Gerganov が始めたオープンソースのプログラムで、Python なしに C/C++ だけで言語モデルを CPU や GPU(Apple のチップを含む)で動かします。GGUF ファイルを読み込み、モデルを変換・量子化するツールも付いています。Ollama やスマートフォンのアプリなど、多くのプログラムがこれをもとに作られています。

もっと学ぶ

モデルのチェックポイント

原文の表記 · Model checkpoint

学習の途中や終わりに保存したモデルの重みファイル

チェックポイントは、学習のある時点の重みを保存したファイルで、設定、オプティマイザーの状態、ステップ番号もいっしょに入れることがよくあります。学習が止まってもそこから続けられ、学習が終わると最後のチェックポイントがそのまま実行するモデルになります。ファイルの編集を巻き戻す Claude Code のチェックポイントとは別のものです。

もっと学ぶ GPT について詳しく見る 重みとパラメータについて詳しく見る

位置埋め込み

原文の表記 · Positional embedding

トークンが文章の何番目にあるかを伝えるベクトル

アテンションだけではトークンの順番がわからないので、「犬が人をかむ」と「人が犬をかむ」が同じに見えてしまいます。位置埋め込みは、位置ごとに決まったベクトルをトークン自身のベクトルに足します。GPT-2 は位置ごとにベクトルを一つずつ(1,024 位置まで)学習し、ほかのモデルは RoPE など別の方法を使います。

もっと学ぶ GPT について詳しく見る

トランスフォーマーブロック

原文の表記 · Transformer block

アテンションと MLP をまとめたトランスフォーマーの 1 層

トランスフォーマーブロックは、何度も積み重ねる単位です。中ではアテンションがトークンの間で情報を混ぜ、続いて小さな MLP がトークンごとに特徴を変えます。その両方のまわりに正規化と残差接続が付きます。GPT-2 small は同じブロックを 12 個積み、もっと大きなモデルはさらに多く積んで、ブロックも広くします。

もっと学ぶ GPT について詳しく見る

逆伝播(誤差逆伝播法)

原文の表記 · Backpropagation

誤差を逆向きにたどって重みごとの勾配を求めること

順伝播で損失が出たあと、逆伝播は計算グラフを逆向きにたどり、連鎖律を使ってすべての重みについて損失の勾配を求めます。勾配とは、その重みを少し変えたとき損失がどれだけ変わるかです。そのあと勾配降下法がこの勾配で重みを更新します。PyTorch では loss.backward() の 1 行でこれを行います。

もっと学ぶ 重みとパラメータについて詳しく見る

PyTorch

ニューラルネットワークを作って学習させる代表的な Python ライブラリ

PyTorch は Python 用のオープンソースのディープラーニングライブラリです。最初は Meta(当時の Facebook)が公開し、今は Linux Foundation の下にある PyTorch Foundation が運営しています。GPU に載せられるテンソルと自動微分を用意しているので、loss.backward() の 1 行ですべての勾配を求められます。コードでは torch という名前で読み込みます。

もっと学ぶ

GPT

次のトークンを予測するトランスフォーマーの言語モデル

GPT は Generative Pre-trained Transformer(事前学習した生成型トランスフォーマー)の略です。大量の文章で次のトークンを予測するように学習したデコーダーだけのトランスフォーマーで、トークンを一つずつ書き足して文章を作ります。OpenAI が 2018 年の GPT-1 から ChatGPT の土台になっている GPT モデルまでこの名前を使ってきました。ほかの多くのモデルも同じ設計を使っています。

もっと学ぶ

トークナイザーの語彙

原文の表記 · Vocabulary

トークナイザーが知っているかけらと番号(ID)のリスト

トークナイザーの語彙は、作り出せるかけらを番号(ID)といっしょに決めておいたリストです。モデルは項目ごとに埋め込みを 1 行と出力の点数を一つ持つので、語彙の大きさがモデルの形を決めます。モデルは学習に使った語彙でしか正しく動きません。別の語彙に取り替えると、番号の意味が変わってしまいます。

もっと学ぶ GPT について詳しく見る

交差エントロピー

原文の表記 · Cross-entropy

正解の確率の負の対数で測る、ふつうの次トークン損失

交差エントロピー損失は、モデルが正解に与えた確率だけを見て、その負の対数を取ります。正解のトークンに確率 1 を与えていれば損失は 0 で、その確率が低いほど損失は大きくなります。たくさんのトークンでの平均が、言語モデルの学習が下げようとする数です。損失が低いのはこのデータでうまく当てているという意味で、内容が本当だという保証ではありません。

もっと学ぶ

微分

原文の表記 · Derivative

入力が少し変わったとき、結果がどれだけ変わるか

微分は、ある値がほんの少し変わったとき、別の値がどれだけ速く変わるかを測るものです。学習では、損失を重みで微分した値が、その重みをどちらへどれだけ動かせばよいかを教えてくれます。勾配は、すべての重みの微分をまとめたものです。手で計算しなくても、ライブラリが自動で求めてくれます。

もっと学ぶ 重みとパラメータについて詳しく見る

ドロップアウト

原文の表記 · Dropout

学習中にネットワークの一部をランダムに止めること

ドロップアウトは、学習の一歩ごとに、ある層の出力のうち 10% のようなランダムな割合を 0 にします。するとネットワークがどれか一つの部分に頼りすぎることができず、過学習が減ります。推論のときはドロップアウトを切って、すべてを使います。割合を高くしすぎると、学習が遅くなりモデルが弱くなります。

もっと学ぶ

順伝播

原文の表記 · Forward pass

入力を層ごとに順に計算して出力まで進めること

順伝播は、モデルがふだんどおりに計算することです。入力が層を順に通り、点数や予測として出てきます。学習のときはその出力から損失を計算し、続いて逆伝播が反対の向きに進みます。推論には順伝播だけがあれば足ります。

もっと学ぶ

乱数シード

原文の表記 · Random seed

「ランダム」な結果を同じようにくり返せる最初の番号

コンピューターは、シードという最初の値から乱数を作ります。シードが同じなら同じ順番の乱数が出るので、学習、データの並べ替え、サンプリングをそのとおりにもう一度実行して確かめられます。シードは実行をくり返せるようにするだけで、答えが正しいことの保証ではありません。GPU の一部の計算は、シードを固定しても実行ごとに少し違うことがあります。

もっと学ぶ

OCR

画像やスキャンしたページの文字を読み取る技術

OCR(光学文字認識)は、写真やスキャンした PDF のような画像の中の文字を、コンピューターで検索したりコピーしたりできる本物の文字に変えます。スキャンした PDF は、OCR で読み取るまではページの画像にすぎません。手書きやぼやけた画像では読み間違えることがあるので、大事な文章は確認しましょう。

もっと学ぶ

Adam

重みごとに歩幅を合わせる代表的なオプティマイザー

Adam は 2014年に発表されたオプティマイザーで、今ではトランスフォーマーをはじめ、ほとんどのニューラルネットワークの学習で標準的に使われます。重みごとに、最近の勾配の平均(モメンタムに近いもの)とその大きさの平均を覚えておき、その重みに合った歩幅を選びます。ふつうの SGD より速くなめらかに学習できることが多いですが、その分の状態を余計に保存する必要があります。

もっと学ぶ 重みとパラメータについて詳しく見る

アダプター

原文の表記 · Adapter

固定したモデルの横に足して学習する小さな重み

ファインチューニングでモデルの重みをすべて変える代わりに、元の重みは固定し、横に足した小さなアダプターだけを学習できます。いちばん知られているのが LoRA で、細い行列を二つ学習し、その積で重み行列を少しだけ直します。アダプターのファイルはモデルよりずっと小さく、同じ基本モデルに作業ごとに違うアダプターを付け替えられます。

もっと学ぶ 重みとパラメータについて詳しく見る

エージェントメモリ

原文の表記 · Agent memory

エージェントが書き留めて次に読み込み直す記録

言語モデルはセッションが終わるとすべて忘れます。エージェントメモリは、ハーネスが役に立つ事実・ルール・進み具合をふつうはファイルに書き留め、次回それを文脈に読み込み直す部分です。たとえば Claude Code は、セッションを始めるたびに CLAUDE.md と自動メモリを読みます。このメモリはファイルの中の文章で、パソコンの RAM ではありません。

もっと学ぶ

エージェンティックシステム

原文の表記 · Agentic system

言語モデルをツールとつないで仕事をさせる仕組み

エージェンティックシステムは、言語モデルにツール・ファイル・繰り返しのループをつなぎ、一度答えて終わりではなく仕事をやり遂げられるようにした構成をまとめて呼ぶ言葉です。Anthropic は、コードが手順を決めるワークフローと、モデルが自分で手順を決めるエージェントの両方をこの言葉でまとめています。そうしたシステムの設計を話すときに使います。

もっと学ぶ

argmax

いちばん大きな値そのものではなく、その値の位置

max はリストの中でいちばん大きな数を、argmax はその数がある位置を返します。分類モデルは argmax で点数がいちばん高いクラスを選び、貪欲法の生成では次にいちばん来そうなトークンを選びます。位置はふつう 0 から数えます。

もっと学ぶ

基準モデル

原文の表記 · Baseline model

超えるべき点数を決める、とても単純なモデル

賢そうなモデルを信じる前に、いちばん多い答えだけを選ぶ、平均を使うといった単純な基準モデルと比べます。自分のモデルが基準モデルをやっと超える程度なら、ほとんど何も学んでいません。点数の横に基準モデルの点数も書いてはじめて、その数字の意味が見えます。

もっと学ぶ

バッチ(batch)

原文の表記 · Batch

一度にまとめて処理する例のかたまり

学習では例を一つずつ見るのではなく、文章の切れ端 12 個のようなひとまとまり(バッチ)を取り、まとめて損失を計算して一回更新します。バッチが大きいと GPU をうまく使えますが、メモリを多く使います。学習中にメモリが足りなくなったら、まずバッチサイズを減らしてみます。

もっと学ぶ GPT について詳しく見る

ブロックサイズ

原文の表記 · Block size

モデルが一度に読むトークン数(文脈の長さ)

nanoGPT などのコードでは、ブロックサイズは学習の例一つに入れるトークンの最大数で、モデルが使えるいちばん長い文脈でもあります。アテンションに使うメモリはこれに合わせて急に増えるので、学習中にメモリが足りなくなったらブロックサイズを小さくするのがよくある解決法です。モデルはブロックサイズより前を見ることはできません。

もっと学ぶ GPT について詳しく見る

BM25

単語の一致で文書に順位をつける昔ながらの式

BM25 は、検索語と文書が共通して持つ単語で点数をつけます。めずらしい単語はよくある単語より重く数え、同じ単語が繰り返されても点数は少しずつしか上がらず(頻度の飽和)、長い文書が長いというだけで勝たないよう長さを補正します。速く、名前やコードのような正確な単語に強い方法です。言い方が違っても意味が同じものは埋め込み検索のほうが得意なので、両方を使うシステムが多くあります。

もっと学ぶ

キャリブレーション

原文の表記 · Calibration

点数が実際に当たる割合と合っているかどうか

モデルの点数をそのまま本当の確率として読めるとき、よくキャリブレーションされていると言います。0.8 と答えたもののうち、およそ 80% が正しいような場合です。多くのモデルはパーセントのように見える 0〜1 の数を出しますが、キャリブレーションされていないこともあるので、点数を確率として信じる前に、取っておいたデータで確かめます。

もっと学ぶ

因果マスク

原文の表記 · Causal mask

あとのトークンを隠して前だけを見させる仕組み

学習のとき、モデルは文全体を一度に受け取りますが、各トークンはその前のトークンだけで予測しなければなりません。因果マスクは softmax の前に、うしろの位置の点数をマイナス無限大に変え、どの位置も自分よりあとを見られないようにします。マスクがないとモデルは未来の正解を写してしまい、役に立つことを何も学べません。

もっと学ぶ

文字単位のモデル

原文の表記 · Character-level model

一文字を一トークンとして扱う言語モデル

文字単位のモデルは、文字・空白・句読点の一つ一つをトークン一つとして扱うので、語彙がとても小さく、トークナイザーを別に学習する必要がありません。nanoGPT のシェイクスピアの例のように練習には手軽ですが、単語の切れ端をトークンにするモデルより、一文あたりずっと多くのステップがかかります。重みは自分の文字の語彙にしか合わないので、GPT-2 のトークンを前提にするランナーにそのまま入れることはできません。

もっと学ぶ GPT について詳しく見る 重みとパラメータについて詳しく見る

チャットテンプレート

原文の表記 · Chat template

チャットモデルが前提にしている会話の書き方

チャットモデルは、決まった一つの書き方で書かれた会話で学習しています。その書き方では、特別なトークンでシステム・ユーザー・アシスタントの部分がどこで始まりどこで終わるかを示します。チャットテンプレートは、自分のメッセージの一覧をその文章に変えます。Ollama や llama.cpp のようなランナーは、モデルのファイルからテンプレートを読み取ります。テンプレートが違うと、モデルが要領を得ない答えを続けたり、同じことを繰り返したりします。

もっと学ぶ

保存した指示

原文の表記 · Saved instructions

ChatGPT が新しい会話ごとに従う自分の設定

ChatGPT の設定では、自分についての情報や、ほしい答えの形を指示として保存できます。たとえば「初心者なので短い文で説明して」のようなものです。ChatGPT はこれを新しい会話ごとに加えるので、同じことを毎回言わなくて済みます。それでも指示にすぎないので、答えを導くだけで保証はしません。秘密の情報は入れないようにします。

もっと学ぶ GPT について詳しく見る

クローズドモデル

原文の表記 · Closed model

その会社のアプリや API でしか使えない非公開のモデル

クローズドモデルは重みを公開していません。その会社のアプリや API でしか使えず、料金・利用の上限・古いバージョンをいつなくすかも会社が決めます。Claude、Gemini、ChatGPT の元になっている GPT モデルはクローズドモデルです。いちばん性能が高いことが多いですが、自分のデータは会社のサーバーに送られます。

もっと学ぶ GPT について詳しく見る 重みとパラメータについて詳しく見る

完了のフレーズ

原文の表記 · Completion promise

作業が本当に終わったときだけエージェントが書く合図の言葉

Ralph Loop では、DONE のような短い完了のフレーズを決めます。エージェントがそのフレーズを正確に書くまでループは続き、プロンプトでは本当にそうなったときだけ書くように伝えます。エージェントがゴールに届かないこともあるので、最大の回数や予算といっしょに使い、終わったあとは結果を自分で確かめます。

もっと学ぶ

コンテキスト管理

原文の表記 · Context management

モデルの限られた文脈に何を入れるかを選ぶこと

モデルが一度に読める量には限りがあります。コンテキスト管理は、ハーネスが何を入れるかを決める仕事です。どのファイル、どの前の会話、どのツールの結果を入れ、会話が長くなったら何を要約し何を外すか。うまくいけば大事な事実は見えたまま、雑音は外れます。作業が長くなるほど大切になります。

もっと学ぶ

Core ML

iPhone・iPad・Mac でモデルを動かす Apple のフレームワーク

Core ML は、Apple 製品のアプリの中で機械学習モデルを動かす、Apple の標準のフレームワークです。CPU・GPU・Neural Engine チップを使い、データをサーバーに送らずに端末の中で実行します。PyTorch などで作ったモデルは、Apple の coremltools などで先に Core ML 形式に変換します。

もっと学ぶ

累積確率

原文の表記 · Cumulative probability

大きい確率から順に足していった合計

候補を確率の大きい順に並べ、順に足していくと、その合計が累積確率です。top-p サンプリングはこれを使います。p = 0.9 なら、合計が 90% に届くいちばん小さな候補のまとまりだけを残してその中から選ぶので、モデルが自信を持っているほど候補は少なくなります。

もっと学ぶ

決定木

原文の表記 · Decision tree

はい・いいえの質問を続けて分類するモデル

決定木は、「花びらの長さ < 2.5 cm?」のような特徴についての質問のつながりを学び、答えごとに次の質問へ進んで、最後の葉でクラスを決めます。読みやすいモデルです。深さを制限せずに育てると、学習データを完全に覚えてしまい、新しいデータではかえって悪くなる過学習が起きることがあります。

もっと学ぶ

埋め込みモデル

原文の表記 · Embedding model

文章を意味で検索するためのベクトルに変えるモデル

埋め込みモデルは文章を書きません。文や文書を読んでベクトルを一つ出し、意味の近い文章どうしが近い向きのベクトルを持つようにします。検索・おすすめ・RAG のシステムは、このベクトルで関係のある文章を探します。小さなものはスマホで動かして、自分のメモを探すのにも使えます。

もっと学ぶ

埋め込み空間

原文の表記 · Embedding space

埋め込みベクトルが置かれる多次元の空間

埋め込みベクトルの一つ一つは、数百次元ある空間の中の一つの点です。その空間では、モデルが似ていると見なすものどうしが近くに集まります。距離は同じモデルが作ったベクトルどうしでしか意味がありません。埋め込みモデルが違えば空間も違うので、ベクトルを比べることはできません。

もっと学ぶ

フィードフォワード層

原文の表記 · Feed-forward layer

トランスフォーマーのブロックで、トークンごとに別々に通る部分

アテンションがトークンどうしの情報を混ぜたあと、フィードフォワード層は各トークンのベクトルを、同じ小さなネットワークで別々に処理します。ふつうは、幅の広い層、GELU のような活性化関数、元の幅に戻す層でできています。ブロックの MLP がこれで、大きなモデルではパラメーターの大部分がここにあります。

もっと学ぶ GPT について詳しく見る 重みとパラメータについて詳しく見る

GELU

多くのトランスフォーマーが使うなめらかな活性化関数

GELU(Gaussian Error Linear Unit)は ReLU に似た活性化関数ですが、0 のところで角ばって折れず、なめらかに曲がります。大きな正の値はほぼそのまま、大きな負の値はほぼ 0 になり、0 に近い値は少しだけ小さくなります。GPT-2 や BERT がフィードフォワード層で使っています。

もっと学ぶ GPT について詳しく見る

汎化

原文の表記 · Generalization

初めて見るデータでもうまく当てる力

学習の目的は、学習に使った例でよい点を取ることではなく、新しい例でうまくいくことです。その力が汎化です。学習に使わずに取っておいたデータで測ります。学習データでは完ぺきなのに新しいデータではうまくいかないモデルは、汎化せずに覚えただけで、これが過学習です。

もっと学ぶ

GPT-2

学習の題材として定番の、OpenAI の 2019年のトランスフォーマーモデル

GPT-2 は OpenAI が 2019年に公開したデコーダーだけのトランスフォーマー言語モデルで、パラメーター 1億2400万個から 15億個までいくつかの大きさがあります。トークンと位置の埋め込み、積み重ねたトランスフォーマーブロック、50,257 トークンの語彙に対する出力層という設計がシンプルでよく知られているため、nanoGPT のようなプロジェクトが LLM のしくみを教えるために作り直しています。

もっと学ぶ GPT について詳しく見る 重みとパラメータについて詳しく見る

作業の引き継ぎ

原文の表記 · Handoff

エージェントが仕事と文脈を別のエージェントに渡すこと

作業の引き継ぎでは、あるエージェントが残りの仕事を、もっと向いている別のエージェントに、知っておくべき内容といっしょに渡します。文脈をどれだけ渡すか、どのモデルが引き継ぐか、結果がどう戻ってくるかはハーネスが決めます。文脈が少なすぎると次のエージェントが同じ作業を繰り返し、多すぎると迷ってしまいます。

もっと学ぶ

隠れ層

原文の表記 · Hidden layer

ネットワークの入力と出力のあいだにある層

隠れ層は、入力と出力層のあいだにある層です。数を受け取って重みをかけ、活性化関数を通して新しい数として次へ渡し、入力にも答えにも直接は見えない特徴を作り出します。ディープラーニングとは、隠れ層が何層もあるということです。

もっと学ぶ 重みとパラメータについて詳しく見る

Imagen

文章から画像を作る Google の以前のモデル

Imagen は、文章の説明を画像に変える Google のモデルのシリーズです。SONUB の講座では、2026年10月の時点で Gemini API の以前の Imagen モデルは提供が終了し、そこでの画像の生成と編集は Nano Banana モデルで提供されていると案内しています。

もっと学ぶ

指示の遵守

原文の表記 · Instruction following

モデルが受けた指示をどれだけそのとおりに守るか

指示の遵守とは、モデルがプロンプトやシステムプロンプトの指示、つまり形式・長さ・言語・してはいけないことを、どれだけよく守るかです。モデルによって差が大きく、これを専用に試験します。性能の高いモデルでも外れることがあるので、アプリは安全を指示だけに任せず、権限のような本当の制限をコードでかける必要があります。

もっと学ぶ

k近傍法(k-NN)

原文の表記 · k-nearest neighbours (k-NN)

いちばん似た学習例 k 個で答えを決める方法

k-NN には学習らしい学習がほとんどなく、学習例をすべて取っておきます。新しい例が来たら、いちばん近い例を k 個探し、その中でいちばん多いクラスを答えにします。近傍の数 k は学習の外で選ぶハイパーパラメーターです。小さいと雑音に振り回され、大きいと違いがぼやけます。

もっと学ぶ

LangChain

LLM アプリやエージェントのためのオープンソースのフレームワーク

LangChain は Python と JavaScript で使えるオープンソースのフレームワークで、言語モデルの上にアプリを作るとき、モデルをツール・文書・メモリ・ほかのモデルとつなぎます。対になる LangGraph は、手順のはっきりしたエージェントを作るのに使います。LangChain はハーネスを、モデルのまわりのすべてだと説明しており、SONUB の講座はこれを引用しています。

もっと学ぶ

LiteRT

スマホや小さな機器でモデルを動かす Google のランタイム

LiteRT は、端末の中で機械学習モデルを動かす Google のランタイムで、2024年からの TensorFlow Lite の新しい名前です。Android・iOS・Web・小さなボードで動き、あればスマホの GPU などのアクセラレーターを使い、データをサーバーに送りません。

もっと学ぶ

llama.rn

llama.cpp を React Native アプリの中に入れるライブラリ

llama.rn は llama.cpp を包んだ React Native 用のオープンソースのライブラリです。React Native で作ったスマホアプリが、サーバーなしで端末の中で GGUF モデルを読み込み、文章を作れるようにします。PocketPal AI はこうして作られたアプリの一つで、Flutter のアプリは別の llama.cpp バインディングで同じことをします。

もっと学ぶ

メインのエージェント

原文の表記 · Main agent

自分が話している、サブエージェントに仕事を任せる中心のエージェント

メインのエージェントは、自分の会話の中にいるエージェントです。プロジェクト全体の検索のような仕事の一部は、自分だけの新しい文脈と少ないツールを持つサブエージェントを起動して任せ、要約だけを受け取ります。そうするとメインのエージェントの文脈がすっきりしたまま保たれます。最後の答えはメインのエージェントが責任を持ちます。

もっと学ぶ

最大の回数

原文の表記 · Maximum number of rounds

ループを何回まで回すかを決めた上限

エージェントのループは、自分ではゴールに届かないこともあり、一周ごとにトークンとお金がかかります。最大の回数は、その回数を超えたら何があっても終わらせる上限です。確かめられるゴールやトークンの予算といっしょに、毎回必ず決めます。

もっと学ぶ

MCP ホスト

原文の表記 · MCP host

MCP クライアントを中に持つ、人が使う AI アプリ

MCP には三つの役割があります。ホストは、Claude Code、Claude Desktop、コードエディターのような、人が使う AI アプリです。その中でサーバーごとにクライアントが一つずつ接続を受け持ち、サーバーはツールやデータを提供します。どのサーバーを起動するかはホストが決め、ツールを使う前にユーザーの許可を得る必要があります。

もっと学ぶ

initialize

バージョンをそろえる、MCP の最初のリクエスト(2025-11-25 までの仕様)

MCP の仕様 2025-11-25 までは、セッションは initialize で始まります。クライアントが使うプロトコルのバージョンとできることを送ると、サーバーは使うバージョン、提供するもの(たとえばツール)、自分の名前を返します。続いてクライアントが notifications/initialized の通知を送ってはじめて、tools/list や tools/call が使えます。最新の仕様(2026-07-28)にはこのハンドシェイクがなく、リクエストごとに _meta でバージョンを送ります。

もっと学ぶ

tools/call

MCP サーバーにツールを一つ実行してもらうリクエスト

tools/call は、ツールの名前と引数を送ります。サーバーはそのツールを実行し、結果をふつうは文章の内容として、うまくいかなければエラーとして返します。どのツールを使うかはモデルが選びますが、リクエストを送るのはホストのアプリで、危ないことは実行する前にユーザーに確認するべきです。

もっと学ぶ

tools/list

MCP サーバーにどんなツールがあるかを聞くリクエスト

tools/list は、MCP サーバーに何ができるかを聞きます。サーバーはツールごとに、名前、いつ使うかを決めるためにモデルが読む説明、引数を書いた入力スキーマを返します。モデルはこの説明を信じて動くので、信頼できるサーバーにだけ接続します。

もっと学ぶ

Nano Banana

Google の Gemini の画像生成・編集モデル

Nano Banana は、文章から画像を作ったり直したりする Gemini のモデルを Google が呼ぶ名前です。新しい画像を説明して作ることも、画像をアップロードして、同じ人や物はそのままに背景だけを変えるように直すこともできます。Gemini アプリと Gemini API で使えます。

もっと学ぶ

nanochat

小さなチャット LLM を最初から最後まで作る Karpathy のプロジェクト

nanochat は、Andrej Karpathy が 2025年に nanoGPT の後継として公開したオープンソースのプロジェクトです。トークナイザーの学習、事前学習、チャット向けのファインチューニング、評価、結果と会話する Web 画面までを、一つの小さなコードにまとめています。ChatGPT のようなモデルが最初から最後までどう作られるかを学ぶためのものです。

もっと学ぶ GPT について詳しく見る

nanoGPT

GPT-2 風のモデルを学習させる短い PyTorch のコード

nanoGPT は Andrej Karpathy が公開したオープンソースのコードで、数百行の PyTorch で GPT 風のモデルを学習・ファインチューニングします。大きな GPU で GPT-2 を再現することも、ノートパソコンの CPU でシェイクスピアの小さな文字単位のモデルを数分で学習させることもできます。今では作者が古いものとして扱い nanochat を案内していますが、GPT-2 風のモデルを見るにはいまも分かりやすいコードです。

もっと学ぶ GPT について詳しく見る

Ollama

オープンモデルをダウンロードして自分のパソコンで動かすアプリ

Ollama は macOS・Windows・Linux で使える無料のランナーです。コマンド一つでオープンモデルをダウンロードしてすぐに会話でき、自分のプログラムから呼べるローカル API も用意します。量子化したモデルファイルやチャットテンプレートを自動で扱ってくれるので、インターネットなしでモデルを動かしてみる最初の一歩に向いています。

もっと学ぶ

オープンモデル

原文の表記 · Open model

重みをダウンロードして自分で動かせるモデル

オープンモデルは重みを公開しているので、自分のパソコンやサーバーにダウンロードして動かせます。多くは無料で、データを外に送らずに済みます。ただし、多くは完全なオープンソースではなくオープンウェイトです。重みは公開されていても、学習データやコードは公開されていないことがあり、ライセンスに制限があることもあります。Llama・Gemma・Qwen がその例です。

もっと学ぶ

オプティマイザー

原文の表記 · Optimizer

勾配をもとに重みの直し方を決める規則

誤差逆伝播法は重みごとの勾配を教えてくれます。オプティマイザーは、その勾配を使って重みをどう変えるかを決めます。いちばん単純な SGD は、勾配と反対の方向へ決まった幅だけ進みます。Adam などは過去の勾配も覚えておき、よりよい歩幅を選びます。オプティマイザーの状態はチェックポイントに保存され、学習を途中から再開できます。

もっと学ぶ 重みとパラメータについて詳しく見る

PocketPal AI

小さなモデルとオフラインで会話できる無料のスマホアプリ

PocketPal AI は iPhone と Android 向けのオープンソースのアプリで、GGUF 形式の小さな言語モデルをダウンロードしてスマホの中で動かします。そのため、インターネットにつながっていなくても会話できます。llama.cpp の上に llama.rn を使って作られています。スマホのメモリは少ないので、小さく強く量子化したモデルがいちばん向いています。

もっと学ぶ

事後学習

原文の表記 · Post-training

事前学習のあとで、決まったふるまいを教える学習

事前学習では、膨大なデータを使って文章の続きを書くことをモデルに教えます。事後学習はそのあとに行います。会話の例でファインチューニングをしたり、人や自動のフィードバックから学ばせたり、ツールを使う課題を練習させたりします。ただ文章を予測するだけだったモデルが役に立つアシスタントになるのも、コーディングエージェントがハーネスとうまく働けるようになるのも、この段階です。

もっと学ぶ

Q4_K_M

GGUF ファイルでよく使われる 4 ビット量子化の種類

Q4_K_M は llama.cpp の「k-quant」と呼ばれる種類の一つです。ほとんどの重みを約 4 ビットで保存し、影響の大きい一部はより多くのビットで残します(M は medium の意味です)。重みをブロックに分け、ブロックごとに目盛りを共有します。ファイルの大きさと品質のバランスがよく人気があり、大きさは FP16 のおよそ 30% です。

もっと学ぶ 重みとパラメータについて詳しく見る

推薦システム

原文の表記 · Recommender system

好みそうなものを予測して勧める人工知能

推薦システムは、その人やよく似た人が前に何をしたかをもとに、見たくなりそうな動画・曲・商品を予測し、それを先に見せます。会話もしなければ文章も書きませんが、もっとも広く使われている人工知能の一つです。人工知能が ChatGPT だけではないことを思い出させてくれる良い例です。

もっと学ぶ GPT について詳しく見る

回帰係数

原文の表記 · Regression coefficient

回帰モデルが入力ごとに掛ける、学習で決まる数

線形回帰は「値段 = a × 広さ + b」のような式で予測します。a と b は学習のときにデータから求めます。これが係数で、木の深さのように自分で選ぶ設定とは違い、パラメータです。係数は、その入力が 1 増えたときに予測がどれだけ動くかを表します。

もっと学ぶ 重みとパラメータについて詳しく見る

規則ベースのシステム

原文の表記 · Rule-based system

人が書いた規則だけで判断するプログラム

規則ベースのシステムは、「件名に『無料でお金』があれば迷惑メールにする」のような、人が書いた「もし〜なら〜する」という規則に従います。データから学ばないので理由は説明しやすいのですが、誰も考えていなかった場合には対応できません。機械学習は、反対に例から規則を見つけます。どちらも人工知能に含まれます。

もっと学ぶ

類似度

原文の表記 · Similarity

二つのベクトルや文章がどれだけ似ているかを表す数

類似度は、二つのベクトルがどれだけ近いかを測ります。いちばんよく使われるコサイン類似度は向きを比べます。1 は同じ向き、0 は関係なし、−1 は反対向きです。埋め込み検索は、これで文書を並べます。類似度が高いのは意味が近いということで、二つの文が同じ正しいことを言っているという意味ではありません。

もっと学ぶ

fit

原文の表記 · scikit-learn fit

scikit-learn でデータからモデルを学習させるメソッド

scikit-learn では、どのモデルも同じやり方で学習させます。model.fit(X, y) が入力 X と正解 y から学びます。そのあと model.predict(X_new) で予測します。fit は学習用データだけで行い、テスト用データは最後まで取っておきます。そうしないと、点数が実際より良く見えてしまいます。

もっと学ぶ

終了条件

原文の表記 · Stop condition

エージェントの仕事が終わったかどうかを確かめられる決まり

終了条件は、エージェントにいつ止まるかを伝えます。たとえば「tests/ のテストがすべて通り、ページがエラーなしで開く」です。エージェントは一歩進むたびにこれを確かめ、満たされるまで作業を続けます。「もっと良くして」のようなあいまいな願いでは終わりが来ないので、長く動くループには回数やトークンの上限も必要です。

もっと学ぶ

終了トークン

原文の表記 · Stop token

「文章はここで終わり」を表す特別なトークン

終了トークンは、文章の終わりを示す特別なトークンです。学習のとき、モデルはすべての例の最後でこれを見るので、答えがどこで終わるかを覚えます。文章を作るときは、このトークンが選ばれるか長さの上限に届いた時点で、プログラムが止まります。これがないと、モデルはいつまでも言葉を足し続けます。

もっと学ぶ GPT について詳しく見る

特殊トークン

原文の表記 · Special token

文字の代わりに位置を示す予約トークン

特殊トークンは、トークナイザーが文字の断片ではなく役目のために取っておくトークンです。[BOS] は文章の始まり、[EOS] は終わりを示し、モデルが EOS を出すと生成が止まります。[PAD] は空いた場所を埋め、[UNK] はトークナイザーが知らない文字の代わりです。XSLM は改行を実際のモデルの EOS のように使います。

もっと学ぶ

safetensors

モデルの重みを安全に保存するファイル形式

safetensors はモデルの重みを保存するためのファイル形式です。ファイルに入っているのは数値と、各層の名前・データ型・形を記した小さな JSON ヘッダーだけです。Python の pickle をもとにした以前の形式はファイルを開いたときに隠れたコードが実行されることがありましたが、safetensors ではそれが起きないため、Hugging Face が標準で使っています。

もっと学ぶ 重みとパラメータについて詳しく見る

事前学習

原文の表記 · Pre-training

言語モデルの学習の最初で最大の段階

事前学習は言語モデルを作る最初の段階で、膨大な量の文章で次のトークンを予測するようにモデルを学習させます。これで言語全般を幅広く扱えるようになりますが、まだ指示にうまく従うことはできません。その後、指示チューニングなどの段階でアシスタントへと仕上げます。

もっと学ぶ

指示チューニング(SFT)

原文の表記 · Instruction tuning (SFT)

指示に従わせるため、依頼と回答のペアで行う追加の学習

指示チューニングは SFT(教師ありファインチューニング)とも呼ばれ、事前学習を終えたモデルを依頼と良い回答のペアでさらに学習させます。これにより、モデルは文章の続きをただ書くのではなく、人の頼み方に合わせて答えるようになります。事後学習の一部です。

もっと学ぶ

Llama

Meta が重みを公開している言語モデルのシリーズ

Llama は Meta が作った言語モデルのシリーズです。Meta がモデルの重みを公開しているので、Meta のライセンス条件の範囲で、誰でもダウンロードして自分のパソコンで動かせます。llama.cpp や Ollama といったツールも、最初は Llama モデルを動かすところから始まりました。

重みとパラメータについて詳しく見る

Qwen

Alibaba が作った言語モデルのシリーズ

Qwen は Alibaba Cloud が作った言語モデルのシリーズです。ノートパソコン向けの小さなものからサーバー向けの大きなものまで、Qwen3-Coder のようなコーディング用モデルも含め、多くの Qwen モデルが重みを公開して出ています。OpenRouter のようなサービスを通しても使えます。

重みとパラメータについて詳しく見る

頻度の飽和

原文の表記 · Term frequency saturation

キーワード検索で、同じ単語がくり返されるほど点数の増え方が小さくなること

BM25 のキーワード検索では、文書に何度も出てくる単語はその文書の点数を上げますが、一回増えるごとの上がり幅は前より小さくなります。点数は限りなく増えるのではなく、頭打ちになります。そのおかげで、一つの単語を何度もくり返しただけの文書が上位を取ることを防げます。

もっと学ぶ

しきい値

原文の表記 · Threshold

モデルの答えを「はい」とみなす境目の数

分類器は、最終的な答えではなく点数を出すことがよくあります。しきい値はそこに引く線です。点数がそれより上なら「はい」、下なら「いいえ」になります。しきい値を動かすと、陽性とされる例が変わります。上げると、モデルが「はい」と言う回数は減りますが、より慎重になります。0.7 という点数が、そのまま 70% の確率という意味ではありません。

もっと学ぶ

トークン予算

原文の表記 · Token budget

一つの仕事やエージェントのループが使ってよいトークンの上限

トークン予算は、エージェントが一つの仕事に使えるトークンの数を制限します。AI のサービスはトークンごとに料金がかかるので、予算は費用の上限でもあります。予算のないループは一晩中動いて費用を使い続けることがあります。予算が尽きると、目標を達成していなくてもエージェントは止まります。

もっと学ぶ

検証損失

原文の表記 · Validation loss

モデルが学習に使っていない文章で測った損失

学習中は二つの数を見守ります。学習損失はモデルが学ぶ文章で測り、検証損失は学習には使わない別の文章で測ります。学習損失が下がり続けているのに検証損失が上がり始めたら、モデルは一般的なパターンを学ぶのではなく丸暗記しています。そこが学習を止めるか、モデルを小さくするタイミングです。

もっと学ぶ

Antigravity CLI

agy で起動する、ターミナル用の Google のコーディングエージェント

Antigravity CLI は、ターミナルで動く Google のコーディングエージェントです。公式ページのスクリプトでインストールし、プロジェクトのフォルダーで agy コマンドを打って起動します。初めてのときはブラウザーが開き、Google アカウントでログインします。Google の Gemini モデルを使い、Claude Code や Codex と同じように、計画を承認するとファイルを読み、書き換え、実行します。Google は、以前の Gemini CLI から移る人のためのガイドも公開しています。

もっと学ぶ

Claude Cowork

ファイルやアプリをまたいで何段階もの作業を進める Claude の機能

Claude Cowork は Claude のデスクトップアプリの機能で、プログラミング以外の何段階もの作業に使います。フォルダーの中のファイルを整理する、レシートの山を表計算シートにまとめる、いくつかの資料から報告書の下書きを作る、といった作業です。フォルダーを渡してほしい結果を伝えると、手順を計画し、見ている前で一つずつ進めます。ほかのエージェントと同じく、できたものは下書きなので、必ず自分で確かめます。

もっと学ぶ

特徴量(Feature)

家の広さのように、モデルが判断に使う入力の値一つ

特徴量は、モデルが見る入力データの一つ一つです。家の値段を当てるモデルなら、広さ・部屋の数・駅までの距離などを使います。表のデータでは、ふつう列一つが特徴量一つです。役に立つ特徴量を選ぶことが大切です。答えと関係のない特徴量は雑音になり、モデルを悪くすることがあります。

もっと学ぶ

Hugging Face

AI モデルやデータセットを共有するウェブサイトと会社

Hugging Face は、AI のモデル・データセット・小さなデモアプリを公開したりダウンロードしたりできるウェブサイトです。コードにとっての GitHub のような場所です。この会社は、そうしたモデルを読み込んで動かす Transformers などのオープンソースの Python ライブラリも作っています。とても小さなものから非常に大きなものまで、多くのオープンモデルがここからダウンロードされています。

画像生成

原文の表記 · Image generation

書いた説明から人工知能が新しい絵を作ること

画像生成とは、AI モデルが文章の説明(プロンプト)から新しい絵を作ることで、多くのモデルは渡した絵を直すこともできます。良い結果を得るには、題材・画風・大きさ・変えてはいけないところを説明し、一度に一つずつ直します。使う前に、間違った文字や余分な指のような誤りがないか、人物・ブランド・画風の権利に問題がないかを確かめます。

もっと学ぶ

画像認識

原文の表記 · Image recognition

絵に何が写っているかを見分ける人工知能

画像認識は、絵を見て何が写っているかを答える人工知能です。猫、止まれの標識、手書きの数字などです。ふつうは、ラベルのついた写真をたくさん使って学習したディープニューラルネットワークで行います。スマホは写真アルバムの整理に、車は道路標識を読むのに使っています。

LoRA

モデルは固定し、小さな追加部分だけを学習させる安いファインチューニング

LoRA(Low-Rank Adaptation)は、大きなモデルを安くファインチューニングする方法です。元の重みは固定したまま、アダプターと呼ばれる小さな追加の行列だけを学習させ、元の重みに足します。学習させる数がずっと少ないので、GPU のメモリも保存場所もずっと少なくて済み、一つの元のモデルで用途ごとに小さなアダプターを切り替えて使えます。

重みとパラメータについて詳しく見る

行列の積

原文の表記 · Matrix multiplication

二つの数の表を、行と列で掛け合わせる計算

行列の積は二つの行列を組み合わせます。結果の数一つ一つは、一つ目の行列の行と二つ目の行列の列を要素ごとに掛けて、足し合わせたものです。内側の大きさがそろっている必要があります。4×3 の行列に 3×2 の行列を掛けると、4×2 の行列になります。ニューラルネットワークの中の計算はほとんどが行列の積で、それを一度にたくさんこなせる GPU が AI に使われるのはそのためです。

もっと学ぶ

ニューロン

原文の表記 · Neuron

ニューラルネットワークのいちばん小さな計算の単位

人工のニューロンは、いくつかの数を受け取り、それぞれに重みを掛け、バイアスと一緒に足し合わせ、その合計を活性化関数に通します。ニューロンを横に並べると層になり、層を積み重ねるとニューラルネットワークになります。名前は脳の神経細胞から来ていますが、ここでのニューロンはただの計算です。

もっと学ぶ 重みとパラメータについて詳しく見る

最適化

原文の表記 · Optimization

損失ができるだけ小さくなるようにモデルの数を調整すること

機械学習での最適化とは、損失(予測がどれだけ外れているか)が小さくなるように、モデルの重みを少しずつ変えていくことです。よく使われるのは勾配降下法で、どちらに動けば損失が下がるかを計算し、その方向へ少し進みます。最適化は学習データに合う良い数を見つけますが、それは新しいデータで正しいこととは同じではありません。

重みとパラメータについて詳しく見る

出力形式

原文の表記 · Output format

答えの形の指定 — 箇条書き、表、JSON、ファイル

出力形式は、答えをどんな形で出してほしいかを伝えるプロンプトの部分です。箇条書き、列を決めた表、キーを決めた JSON、ファイルなどです。これを書いておくと答えを書き直す手間が省け、プログラムで結果を読むこともできます。役割・目標・背景・例・条件と並ぶ、良いプロンプトの六つの部分の一つです。

もっと学ぶ

陽性

原文の表記 · Positive class

「はい・いいえ」の分類で、モデルが見つけようとしている「はい」の側

答えが二つの分類器で、陽性は見つけたい側のことです。迷惑メールフィルターなら迷惑メール、医療の検査なら病気です。「陽性」は良いという意味ではなく、「探しているものが見つかった」というだけの意味です。適合率・再現率・混同行列は、どれもこの陽性を基準に数えます。

scikit-learn

昔ながらの機械学習のための Python ライブラリ

scikit-learn は、分類・回帰・クラスタリング・モデルの評価といった、昔ながらの機械学習のための無料の Python ライブラリです。どのモデルも、fit() でデータから学び、predict() で答えるという同じ使い方なので、学ぶ人が最初に使う道具としてよく選ばれます。大きなニューラルネットワークの学習には向いておらず、そちらには PyTorch を使います。

トークン ID

原文の表記 · Token ID

トークナイザーが語彙の中の各トークンにつける番号

トークナイザーは語彙、つまり知っているすべてのトークンに番号をつけた一覧を持っています。トークン ID は、その一覧の中でのトークンの番号です。モデルは文字を見ることはありません。文章はトークン ID の並びに変えられ、モデルはその数で計算し、出てきた ID がまた文章に戻されます。同じ単語でも、モデルが違えば ID も違うことがあります。

GPT について詳しく見る

ChatGPT

OpenAI の AI チャットサービス

ChatGPT は OpenAI が作ったチャットサービスで、2022 年 11 月に一般公開されました。質問を打ち込むと大規模言語モデルが答えを書きます。添付したファイルや画像を読むこともでき、その機能がオンならウェブ検索もします。答えは下書きです。なめらかな文章でも間違っていることがあるので、事実や数字は確かめましょう。

もっと学ぶ GPT について詳しく見る

Gemini

Google の AI モデルのシリーズとそのチャットアプリ

Gemini は、Google の大規模言語モデルと、それを使ったチャットアプリの名前です。モデルはマルチモーダルで、文章・画像・音声・動画を受け取れます。Google のコーディングエージェントである Antigravity CLI と、その前の Gemini CLI も Gemini モデルで動いています。

Grok

xAI の AI モデルのシリーズとそのチャットアプリ

Grok は、xAI が作った大規模言語モデルの名前で、そのモデルを使ったチャットアプリ(ウェブ・スマートフォン・X の中)の名前でもあります。Grok Build(Grok CLI とも呼ばれます)は別のもので、ターミナルで動く xAI のコーディングエージェントです。つまり Grok はモデル、Grok CLI はそのモデルを使う道具です。

SKILL.md

エージェントスキルを決めるファイル — 名前・説明・手順

エージェントスキルは、どれも SKILL.md というファイルの入ったフォルダーです。いちばん上の --- の行のあいだに、スキルの名前と、エージェントがいつそれを使うかを伝える説明を書きます。その下に、ふつうの Markdown で手順を書きます。エージェントは最初に名前と説明だけを読み、作業に必要になったときに残りを読み込みます。同じフォルダーにスクリプトや参考ファイルを置くこともできます。

もっと学ぶ

Gemini CLI

Google が以前に出したターミナル用のオープンソース AI エージェント

Gemini CLI は、ターミナルで動き Gemini モデルを使う、Google のオープンソースの AI エージェントです。Claude Code や Codex と同じように、ファイルを読み、コマンドを実行し、指示ファイルに従い、エージェントスキルにも対応しています。SONUB の AI コースでは、今は Google の新しい Antigravity CLI(agy)を教えています。Google は Gemini CLI の利用者向けに移行ガイドを公開しているので、古い手順に従う前に公式ページを確かめましょう。

リソース(Resources)

MCP サーバーがアプリに読ませるために用意するデータ

MCP サーバーが用意できるものは三つあります。モデルが呼ぶツール、ユーザーが選ぶプロンプト、そしてリソースです。リソースは、ファイル・記録・メモの一覧のような、アプリが読めるデータです。リソースにはそれぞれ notes://shopping のような自分の住所(URI)があります。ツールは何かを実行し、リソースは中身を渡すだけです。

もっと学ぶ

Claude

Anthropic の AI モデルのシリーズとチャットサービス

Claude は Anthropic が作った大規模言語モデルのシリーズの名前で、ウェブ・デスクトップ・スマホで使えるチャットアプリの名前でもあります。Claude Code は別のものです。Claude のモデルを使って自分のファイルを相手に作業する、ハーネスのプログラムです。まとめると、Claude はモデル、Claude Code はそれを包む道具です。

GitHub Copilot

コードを書くための GitHub の AI アシスタント

GitHub Copilot は GitHub の AI コーディングアシスタントです。コードエディターでは、打っている途中に次の行を提案し、チャットの画面で質問に答えます。エージェントモードや Copilot CLI では、ファイルを書き換えたりコマンドを実行したりもできます。エージェントスキルも読み込みます。提案は推測なので、自分で読んでテストすることが必要です。

OpenCode

ターミナルで動くオープンソースの AI コーディングエージェント

OpenCode は、ターミナルで動くオープンソースのコーディングエージェントです。Claude Code や Codex と同じように、プロジェクトを読み、ファイルを書き換え、コマンドを実行しますが、さまざまな提供元のモデルにつなげられます。エージェントスキルも読み込みます。

もっと学ぶ

Grok CLI

ターミナル用の xAI の AI コーディングエージェント(Grok Build)

Grok は xAI の AI モデルの名前です。Grok Build は Grok CLI とも呼ばれ、Claude Code や Codex と同じようにターミナルで動く xAI のコーディングエージェントです。公式のインストールスクリプトか、npm のグローバルパッケージとしてインストールし、バージョンを表示するコマンドでインストールできたかを確かめます。

Orca

いくつもの AI コーディングエージェントを並べて動かすオープンソースのデスクトップアプリ

Orca は、Claude Code・Codex・OpenCode など、いくつもの AI コーディングエージェントを同時に動かすためのオープンソースのデスクトップアプリです。エージェントはそれぞれ自分の Git ワークツリーで作業するので変更がぶつからず、結果は一つのウィンドウで比べて確認できます。各エージェントの利用契約は自分で用意します。

AlphaGo

Google DeepMind が作った囲碁の人工知能

AlphaGo は Google DeepMind が作った、囲碁を打つプログラムです。2016 年 3 月、世界トップクラスの棋士である李世乭(イ・セドル)に 4 勝 1 敗で勝ちました。多くの専門家が、あと 10 年はかかると考えていたことでした。ディープニューラルネットワークと探索を組み合わせ、自分自身と対局して強くなりました(強化学習)。

もっと学ぶ

二値分類

原文の表記 · Binary classification

答えがちょうど二つのうちの一つになる分類

二値分類は、ありうる答えが二つだけの分類問題です。迷惑メールかそうでないか、不正かふつうか、病気か健康か、などです。モデルはふつう 0 から 1 のあいだの点数を出し、しきい値でそれを「はい」か「いいえ」に変えます。見つけたい側を陽性といいます。

もっと学ぶ

多クラス分類

原文の表記 · Multiclass classification

答えが三つ以上のうちの一つになる分類

多クラス分類では、入力一つにつき、三つ以上の中からラベルをちょうど一つつけます。猫・犬・うさぎ、0 から 9 の数字などです。モデルはクラスごとに点数を出し、softmax がそれを確率に変え、いちばん高いものが答えになります。一つの入力に同時にいくつものラベルがつくなら、それは別の課題(マルチラベル分類)です。

もっと学ぶ

思考の連鎖

原文の表記 · Chain-of-thought

モデルに途中の手順を書き出させるプロンプトの方法

思考の連鎖(Chain-of-Thought、CoT)のプロンプトは、「一歩ずつ解いて」のように、最終的な答えの前に途中の手順を書くようモデルに頼む方法です。言語モデルは一度に一つずつトークンを作るので、書き出した手順が次のトークンのための文脈になり、算数や論理の答えが良くなりやすくなります。書き出した手順はただの文章で、答えが実際にどう計算されたかを必ず記録したものではありません。

連鎖律

原文の表記 · Chain rule

関数の中に関数があるときの傾きの決まり — 傾きを掛け合わせる

連鎖律は、合成関数の傾き(微分)が、外側の関数の傾きと内側の関数の傾きを掛けたものに等しい、という決まりです。ニューラルネットワークは関数が長くつながったものなので、誤差逆伝播法は出力から最初の層まで連鎖律を何度も使い、それぞれの重みが損失にどう影響するかを求めます。小さな傾きをたくさん掛けると勾配が消え、大きな傾きをたくさん掛けると勾配が爆発するのはこのためです。

重みとパラメータについて詳しく見る

合成関数

原文の表記 · Composite function

ある関数の出力を別の関数に入れて作る関数

合成関数は、関数の中に別の関数を入れたものです。まず g(x) を計算し、その結果を f に入れます。f(g(x)) と書きます。ニューラルネットワークは大きな合成関数で、どの層も前の層の出力を受け取ります。このような関数の傾きを求める方法が連鎖律です。

クラスタリング

原文の表記 · Clustering

正解を与えずに、似たデータどうしをグループにまとめること

クラスタリングは、誰もラベルをつけていないときに、似たものどうしをグループにまとめます。たとえば、お店のお客さんを、何をどれくらいの頻度で買うかでいくつかのグループに分けます。教師なし学習の一つで、グループはアルゴリズムが見つけ、それぞれのグループが何を意味するかは人が決めます。いくつのグループに分けるかを指定する k-means がよく使われる方法です。

もっと学ぶ

混同行列

原文の表記 · Confusion matrix

正解と不正解を種類ごとに数えた表

混同行列は、分類器の答えと本当の正解を突き合わせて数えた表です。「はい/いいえ」の問題なら、真陽性・偽陽性・偽陰性・真陰性の四つのマスがあります。正解率・適合率・再現率はどれもこの四つの数から計算するので、この表を見ると、モデルがどれくらいまちがえるかだけでなく、どちらの向きにまちがえるかもわかります。

偽陽性

原文の表記 · False positive

モデルは「はい」と答えたが、本当の答えは「いいえ」の場合

偽陽性はまちがって鳴った警報です。ないものを「ある」と答えた場合で、ふつうのメールが迷惑メールフォルダーに入ったり、健康な人が病気と判定されたりします。偽陽性が多いと適合率が低くなります。偽陰性より悪いかどうかは、その仕事でそれぞれのまちがいがどれだけ高くつくかで決まります。

偽陰性

原文の表記 · False negative

モデルは「いいえ」と答えたが、本当の答えは「はい」の場合

偽陰性は見逃しです。本当はあったのに、モデルが見つけられなかった場合で、迷惑メールが受信トレイに届いたり、検査で病気が見つからなかったりします。偽陰性が多いと再現率が低くなります。がん検診では、見逃しのほうがまちがった警報よりずっと高くつくことがあるので、再現率をより重く見ます。

再現率

原文の表記 · Recall

本当の「はい」のうち、モデルが見つけた割合

再現率は、本当の陽性のうちモデルが正しく見つけたものの割合で、真陽性 ÷ (真陽性 + 偽陰性) です。再現率が低いと見逃しが多く、迷惑メールが受信トレイにたくさん入ります。再現率を上げるとふつうは適合率が下がります。たくさん捕まえようとすると、まちがった警報も増えるからです。

適合率

原文の表記 · Precision

モデルが「はい」と答えたもののうち、本当に正しかった割合

適合率は、モデルが「はい」と答えたもののうち実際に正しかったものの割合で、真陽性 ÷ (真陽性 + 偽陽性) です。適合率が低いとまちがった警報が多く、ふつうのメールが迷惑メールフォルダーに入ってしまいます。判定を厳しくすると適合率は上がりますが、ふつうは再現率が下がります。(コンピューターで数一つを何ビットで表すかという意味の「精度」とは別の言葉です。)

F1 スコア

原文の表記 · F1 score

適合率と再現率を一つにまとめた点数

F1 スコアは適合率と再現率の調和平均で、2 × P × R ÷ (P + R) です。両方が高いときだけ高くなり、片方がよくてももう片方が悪いと低いままです。そのため、クラスの数が大きく偏っているとき、つまり正解率だけ見るとよさそうなのに陽性をほとんど見逃しているような場合に役立ちます。

調和平均

原文の表記 · Harmonic mean

小さいほうの値に強く引っぱられる平均

二つの数 a と b の調和平均は 2ab ÷ (a + b) です。ふつうの平均とちがって小さいほうの数に強く引っぱられるので、片方が高くても、もう片方の低さを隠せません。F1 スコアは、適合率と再現率をまとめるときにこの平均を使います。

コサイン類似度

原文の表記 · Cosine similarity

二つのベクトルがどれだけ同じ向きを指すかを −1〜1 で表した値

コサイン類似度は、長さは気にせず、二つのベクトルの間の角度を測ります。1 なら同じ向き、0 なら関係なし(直角)、−1 なら正反対です。埋め込み検索はこれを使って、質問と意味のベクトルが同じ向きを指す文章を探します。ベクトルが近いのは話題が似ているということで、その文が正しいという意味ではありません。

データの偏り

原文の表記 · Data bias

学習データが一方に偏り、モデルが不公平になる問題

データの偏りは、学習データが、モデルが実際に出会う人やケースを公平に含んでいないときに起こります。モデルはその偏りまで学んでしまいます。たとえば、ある集団の写真が少ししか入っていない顔認識のモデルは、その集団をよりよくまちがえます。集団ごとに結果を分けて確かめ、モデルだけでなくデータも直します。

もっと学ぶ

ディープリサーチ

原文の表記 · Deep research

AI が数分かけて多くの資料を探して読み、レポートを書く機能

ディープリサーチは、ChatGPT・Gemini・Claude などの AI チャットサービスの機能で、AI が数分かけて多くのウェブページを探して読み、出典のリンク付きのレポートを書きます。調べる時間を大きく減らせますが、資料を読みちがえたり引用をまちがえたりすることもあるので、大事な主張はリンクを開いて自分で確かめます。

もっと学ぶ GPT について詳しく見る

ディープフェイク

原文の表記 · Deepfake

AI で本物のように作った偽の動画・写真・声

ディープフェイクは、ディープラーニングで実在の人のように見えたり聞こえたりするように作った偽の動画・写真・音声です。同じ技術は映画や吹き替えで正当に使われることもありますが、その人が言っていないことを言わせたり、詐欺をしたり、実在の人の性的な画像を作ったりすると犯罪になることがあります。衝撃的な動画は、信じる前にまず出どころを確かめます。

もっと学ぶ

次元

原文の表記 · Dimension

ベクトルに入っている数の個数

ベクトルの次元は、その中に入っている数の個数です。[1.2, 0.5, 3.0] は 3 次元のベクトルです。数の一つ一つを一本の軸の上の位置と考えると、数が二つなら平らな地図の上の点、三つなら空間の中の点になります。AI の埋め込みは数百〜数千次元のことが多く、図には描けませんが、計算のしかたは同じです。

もっと学ぶ

エポック

原文の表記 · Epoch

学習データ全体を最初から最後まで一回通すこと

エポックは、モデルが学習データのすべての例を一回ずつ見終わる一周のことです。学習はふつう何エポックも回します。エポックごとに検証データの損失を確かめ、学習の損失は下がっているのに検証の損失がよくならなくなったり上がり始めたりしたら、それ以上回してもモデルは丸暗記するだけです。

もっと学ぶ

AI 法(AI Act)

原文の表記 · EU AI Act

リスクの大きさに応じて AI を規制する欧州連合の法律

欧州連合(EU)の AI 法(AI Act)は、2024年8月1日に発効した、この種のものとしては初めての包括的な人工知能の法律です。AI システムをリスクの大きさで分け、一部の使い方は禁止し、採用や信用スコアのような高リスクの使い方には厳しいルールを課し、それ以外には透明性を求めます。たとえば、AI が作った内容であることを人に知らせなければなりません。ルールは数年かけて段階的に適用されます。

もっと学ぶ

エキスパートシステム

原文の表記 · Expert system

人間の専門家が書いたルールで判断する初期の人工知能

エキスパートシステムは、1970〜80年代に広く使われた初期の人工知能で、人間の専門家が書いた「もし〜なら〜する」というルールをたくさん集めて作ります。たとえば病気を診断するためのルールです。どのルールを使ったかは説明できましたが、だれもルールを書いていないケースには対応できず、何千ものルールを最新に保つのも大変でした。データからルールを学ぶ機械学習が、その役割の多くを引き継ぎました。

もっと学ぶ

顔認識

原文の表記 · Face recognition

写真の顔がだれなのかを見分ける AI

顔認識は、写真の中から顔を見つけ、知っている人と照らし合わせる AI です。スマートフォンが顔を見てロックを解除するのがその例です。顔をベクトルに変え、ベクトルどうしを比べるしくみで動きます。学習用の写真に少ししか入っていなかった集団では精度が下がることがあり、公共の場の人に使うと、プライバシーや法律の問題が起こります。

もっと学ぶ

生成 AI

原文の表記 · Generative AI

文章・画像・音・動画を新しく作り出す AI

生成 AI は、分類やラベルの予測だけをするのではなく、文章・画像・音楽・声・動画・コードなどの新しい内容を作り出す AI です。チャットのアシスタントや画像生成ツールがその例です。出力は学習データのパターンから作られるので、自信ありげに聞こえても、まちがっていることがあります(ハルシネーション)。

知識蒸留

原文の表記 · Knowledge distillation

大きなモデルをまねるように小さなモデルを学習させる方法

知識蒸留は、小さな「生徒」モデルに、正解だけでなく大きな「教師」モデルの出力をまねさせて学習させる方法です。生徒は、より多くの情報を含む教師の確率の点数をまるごと見て学ぶので、ずっと小さく速いのに、教師に近い性能を出せることが多いです。少しの正確さと引き換えに、速さと費用を得る設計上の選択です。

正解ラベル

原文の表記 · Label

学習データの一つ一つに付ける正解の名札

ラベルは、学習データの一つ一つに付ける正解の名札です。ネコの写真には「ネコ」、迷惑メールには「迷惑メール」、家の記録には価格を付けます。教師あり学習にはラベルが欠かせず、その質がモデルの限界になります。まちがったラベルやばらばらなラベルは、まちがった答えを教えてしまいます。ラベル付けは、人が手作業で行う時間のかかる仕事であることが多いです。

もっと学ぶ

教師あり学習

原文の表記 · Supervised learning

正解の付いた例から学ぶ学習

教師あり学習では、モデルは正解(ラベル)と組になった例から学びます。「ネコ」や「イヌ」と書かれた写真、価格の付いた家の記録などです。正解に合うように自分を調整し、それから新しい例の答えを予測します。分類と回帰が代表的な二つの種類です。ラベル付きのデータがたくさん必要で、ふつうはそこがいちばん費用のかかる部分です。

もっと学ぶ

教師なし学習

原文の表記 · Unsupervised learning

正解のないデータから、その中の構造を自分で見つける学習

教師なし学習は、ラベルのないデータを使い、その中の構造を自分で見つけます。似たものどうしのまとまり(クラスタリング)、目立って変わったデータ、データをもっと簡単に表す方法などです。ラベル付けの費用が高すぎるときに役立ちます。見つけたまとまりには名前がないので、それが何を意味するかは人が決めます。

もっと学ぶ

強化学習

原文の表記 · Reinforcement learning

行動してみて報酬や罰をもらいながら学ぶ学習

強化学習では、エージェントが環境の中で行動してみて、その結果に応じて報酬や罰を受け取ります。何度も試すうちに、長い目で見て報酬がいちばん大きくなる行動を身につけます。AlphaGo は自分自身と対局してこの方法で強くなり、RLHF はこれを使ってチャットモデルの答え方を整えます。報酬の設計がまずいと、まちがった行動を学んでしまいます。

もっと学ぶ

報酬モデル

原文の表記 · Reward model

二つの答えのうち、人がどちらを好むかを点数にするモデル

報酬モデルは、人が二つの答えのうちよいほうを選んだ比較のデータで学習します。そうして、どんな答えにも点数を付けられるようになり、強化学習の中で人の判断の代わりをします。弱点があると問題になります。言語モデルが本当によくなる代わりに、長くて耳ざわりのよい答えのように、報酬モデルを喜ばせる方法だけを学んでしまうことがあります。

RLHF

人間のフィードバックによる強化学習: 人の好みでモデルを調整する方法

RLHF(Reinforcement Learning from Human Feedback)は、人の好みを使って言語モデルを整える方法です。ふつうは、① よいお手本の答えでモデルをファインチューニングし、② 人が二つの答えを比べて選んだデータで報酬モデルを作り、③ 報酬モデルが高く評価する答えを書くように強化学習をさせます。チャットのアシスタントが指示に従い、ていねいに答える大きな理由がこれです。

モデルカード

原文の表記 · Model card

モデルの用途と、うまくいかない場面をまとめた短い文書

モデルカードは、モデルといっしょに公開する文書です。モデルを何に使うのか、何に使ってはいけないのか、どんなデータで学習したか、どう評価したか、わかっている限界と偏り、ライセンスを書きます。ほかの人がそのモデルが自分の仕事に合うかどうかを判断する助けになります。Hugging Face のモデルには、たいていモデルカードが付いています。

n-gram

直前の n−1 個の単語を数えて、次の単語を予測するモデル

n-gram モデルは、文章の中で直前の n−1 個の単語のあとにどの単語が何回来たかを数え、その回数を確率に変えます。バイグラム(n = 2)は直前の単語一つを、トライグラムは二つを見ます。速くてわかりやすいのですが、それより前は使えず、一度も見たことのない単語の並びには確率を与えられません。これは、ニューラルネットワークの言語モデルが乗り越えた限界です。

もっと学ぶ

数値微分

原文の表記 · Numerical differentiation

入力をほんの少し動かして傾きを見積もる方法

数値微分は、入力にとても小さな値 h を足して、出力がどれだけ変わるかを見て傾きを見積もります: (f(x + h) − f(x)) ÷ h。簡単なので検算に便利ですが、あくまで近似値で、パラメーター一つごとに計算をもう一回ずつしなければなりません。重みが何百万個もあるモデルには遅すぎるので、ディープラーニングのフレームワークは代わりに自動微分を使います。

重みとパラメータについて詳しく見る

オンデバイス AI

原文の表記 · On-device AI

サーバーを使わず、スマートフォンやノートパソコンの中で動く AI

オンデバイス AI は、データをサーバーに送らず、自分のスマートフォンやノートパソコンなどの端末の中でモデルを動かします。データが外に出ず、インターネットがなくても使え、ネットワークの待ち時間なしに答えます。その代わりメモリ・速さ・電池に限りがあるので、モデルは小さく、量子化されていることが多く、いちばん大きなクラウドのモデルにはかないません。

もっと学ぶ

パープレキシティ

原文の表記 · Perplexity

言語モデルが次のトークンにどれだけ迷っているかを表す値

パープレキシティは、言語モデルが文章をどれだけうまく予測できるかを測る値で、低いほどよい値です。パープレキシティが 10 なら、モデルは平均して、一歩ごとに 10 個のトークンから均等に一つを選ぶのと同じくらい迷っているという意味です。損失から直接求められます(平均の損失を e の指数にした値)。低いのは予測がうまいということで、文章が正しいとか役に立つという意味ではありません。

位置エンコーディング

原文の表記 · Positional encoding

トークンごとに何番目かを表す数を足して、モデルに位置を伝える方法

アテンションだけでは、入力をトークンの袋のように扱うだけで、順番がわかりません。位置エンコーディングは、1 番目・2 番目・3 番目…という位置を数に変え、トークンの埋め込みに足すことでこれを解決します。これがないと、トランスフォーマーには「犬が人をかむ」と「人が犬をかむ」が同じに見えてしまいます。

誤差

原文の表記 · Prediction error

予測が正解からどれだけ離れているか

予測の誤差は、予測した値から正解を引いた値です。学習ではふつう、誤差を 2 乗して平均した値(平均二乗誤差)を損失にします。そのため大きく外れたものほどずっと重く数えられ、プラスとマイナスの誤差が打ち消し合いません。モデルは、その平均が小さくなるように重みを調整します。

もっと学ぶ 重みとパラメータについて詳しく見る

枝刈り

原文の表記 · Pruning

学習したモデルから重要でない重みを切り取って小さくする方法

枝刈り(プルーニング)は、学習したモデルの出力にあまり影響しない重みやつながりを取り除き、モデルを小さく、ときには速くする方法です。名前は、木の要らない枝を切る園芸から来ています。切りすぎると正確さが落ちるので、そのあと短く学習し直すことが多いです。量子化や知識蒸留と並ぶ、モデルを小さくする方法の一つです。

重みとパラメータについて詳しく見る

再現性

原文の表記 · Reproducibility

実験をもう一度行って、同じ結果が得られること

ほかの人が同じデータ・コード・設定で実験をもう一度行い、同じ結果が得られるとき、その実験には再現性があります。そのためには、データのバージョン、コードのバージョン、ライブラリと Python のバージョン、乱数のシード、実行したコマンドをそのまま記録しておきます。それでも、GPU の計算は実行するたびにわずかに変わることがあります。

ルールベースのチャットボット

原文の表記 · Rule-based chatbot

決まったパターンに対して、人が書いておいた答えだけを返すチャットボット

ルールベースのチャットボットは、入力された文を、人が書いたルール(キーワードやパターン)と照らし合わせ、決まった答えを返します。動きが予測しやすく安く、if 文をいくつか書くだけでも作れます。ただし、新しい答えを作り出す LLM のチャットボットとちがい、ルールの外の言葉には対応できません。

もっと学ぶ

音声モデル

原文の表記 · Speech model

文字を話し声に、話し声を文字に変える AI モデル

音声モデルは話し声を扱う AI モデルで、文字を声に変えたり(音声合成)、声を文字に変えたり(音声認識)します。小さな音声モデルは自分の端末でも動きます。SONUB の読み上げの声も、一度ダウンロードすれば自分の端末で文字を音声に変えます。一方、チャットのメッセージは今までどおり言語モデルのサービスに送られます。

もっと学ぶ

転置行列

原文の表記 · Transpose

行と列を入れ替えた行列

転置行列は、行列の行と列を入れ替えたもので、1 行目が 1 列目になる、というぐあいです。m × n の行列は n × m になり、Aᵀ と書きます。行列の掛け算の前に形を合わせるためにいつも使われます。たとえばアテンションでは、クエリの行列に、転置したキーの行列を掛けます。

チューリングテスト

原文の表記 · Turing test

機械の会話が人間の会話と見分けられないかを調べるテスト

1950年、アラン・チューリングは「模倣ゲーム」を提案しました。審査員が、隠れた人間一人と隠れた機械一つと文字で会話し、どちらが機械かを確実に見分けられなければ、機械の合格とするものです。これがチューリングテストと呼ばれるようになりました。合格は、機械が人間の会話をまねできることを示すだけで、理解している、感じている、意識があるという意味ではありません。

もっと学ぶ

学習不足

原文の表記 · Underfitting

学習したデータでさえうまく当てられない状態

学習不足は、モデルが単純すぎたり学習が足りなかったりしてパターンをとらえられず、自分の学習データでも多くまちがえる状態です。学習データにぴったり合わせすぎる過学習の反対です。より大きなモデル、よりよい特徴量、より長い学習で直します。

もっと学ぶ

XAI

説明可能な AI: モデルがなぜその答えを出したかを示す方法

XAI(Explainable AI、説明可能な AI)は、モデルがなぜその答えを出したのか、たとえばどの単語やピクセルがいちばん効いたのかを、人が見られるようにする方法の分野です。融資・採用・医療のように決定が人に影響する場面で特に大切で、まちがいや不公平な理由を見つけて説明できるようにします。説明そのものも近似なので、確かめが必要です。

もっと学ぶ

Amazon Bedrock

いくつもの会社の AI モデルを一つの API で使える AWS のサービス

Amazon Bedrock は AWS のクラウドサービスで、企業が Anthropic の Claude をはじめ、いくつもの会社の AI モデルを、AWS の料金とセキュリティの設定のまま呼び出せるようにします。Claude Code も、Anthropic のアカウントの代わりに Bedrock を通して Claude を使うように設定できますが、その場合は claude.ai へのログインが必要な一部の機能が使えません。

承認ポリシー

原文の表記 · Approval policy

エージェントがいつ自分に許可を求めるかを決める Codex の設定

Codex では、サンドボックスがエージェントが技術的にできること(ファイルの書き込み、ネットワーク)を決め、承認ポリシーがいつ止まってあなたに聞くかを決めます。on-request はサンドボックスの外が必要なときに聞き、never は一度も聞かないので、スクリプトや隔離されたコンテナに向いています。二つをいっしょに決めます。-a オプションか、config.toml の approval_policy で選びます。

もっと学ぶ

workspace-write

プロジェクトフォルダーの中だけで編集やコマンド実行をする Codex のサンドボックスモード

workspace-write は Codex のサンドボックスモードです。エージェントは作業フォルダーの中でだけファイルを変更し、コマンドを実行できます。ネットワークは初期設定で切られ、.git や .codex などのフォルダーは読み取り専用のままです。Git のリポジトリでは、on-request の承認ポリシーと組み合わせるのがふつうです。ほかのモードは read-only(見るだけで何も変えない)と danger-full-access です。

もっと学ぶ

danger-full-access

サンドボックスをなくし、エージェントが何でもできる Codex のモード

danger-full-access は Codex のサンドボックスを切ります。エージェントは、あなたのユーザーのすべての権限で、どんなファイルでも読み書きでき、ネットワークも使えます。コマンド一つまちがえただけでデータが消えたり漏れたりするおそれがあるので、捨ててもかまわない隔離されたコンテナや仮想マシンの中でだけ使います。

もっと学ぶ

config.toml

Codex の設定ファイル ~/.codex/config.toml

config.toml は、Codex が初期設定を置くファイルで、ホームフォルダーの ~/.codex/config.toml にあります。毎回入力するオプション(モデル、推論の深さ、承認ポリシー、サンドボックスモード、MCP サーバー)をここに一度書いておけば、それが初期値になります。TOML 形式なので、「キー = 値」の行と [セクション] の見出しで書きます。

もっと学ぶ

プロファイル

原文の表記 · Profile

-p で選んで使う、名前を付けた Codex の設定のまとまり

Codex のプロファイルは、ある種類の作業に合わせた設定のまとまりに名前を付けたものです。たとえば、サンドボックスを厳しくした読み取り専用の「review」プロファイルです。初期設定は config.toml に置き、codex -p <名前> でその実行だけプロファイルの設定に切り替えます。同じオプションを何度も入力する手間が省けます。

もっと学ぶ

codex cloud

Codex の作業を OpenAI のクラウドで動かし、結果を手元に取り込む機能

codex cloud は、作業を自分のコンピューターではなく、OpenAI のクラウド環境で動く Codex に任せます。自分のマシンが空いているので、いくつもの作業を同時に任せ、終わった結果から欲しいものだけを選べます。codex apply はクラウドの作業の変更を手元のリポジトリに取り込み、ほかの diff と同じようにレビューします。

もっと学ぶ

streamable HTTP

原文の表記 · Streamable HTTP

リモートの MCP サーバーが HTTP でやりとりする方式

MCP サーバーのつなぎ方は大きく二つです。ローカルのサーバーは自分のコンピューターで動き、標準入出力(stdio)でやりとりします。リモートのサーバーは別の場所で動き、HTTP でやりとりします。今の標準の方式は streamable HTTP と呼ばれ、サーバーは答えを一度に送ることも、少しずつ流して送ることもできます。URL を指定して追加します。

もっと学ぶ

クロスレビュー

原文の表記 · Cross-review

あるエージェントが終えた仕事を、別の AI や人に確かめてもらうこと

クロスレビューとは、一つのエージェントが作業し、別のもの(codex review のような別の AI、サブエージェント、人)がそれを確かめることです。見落としやすい所がちがう二人目の確認役が、最初のエージェントがくり返すまちがいや「全部終わりました」という主張を見つけます。エージェントで仕事をするときの習慣で、交差検証のような統計の方法ではありません。

もっと学ぶ

学習済みの重み

原文の表記 · Pretrained weights

ほかの人がすでに学習させたモデルの数値

学習済みの重みとは、だれかがすでに学習させたモデルの数値を、ダウンロードできるファイルとして公開したものです。ここから始めれば、ゼロから学習させる大きな費用を省け、ファインチューニングで自分の仕事に合わせられます。SONUB の XSLM コースはわざとこれを使いません。コードを自分で書き、すべての数値を自分で学習させて、その数値がどこから来るのかを見られるようにしています。

もっと学ぶ 重みとパラメータについて詳しく見る

段階的な開示

原文の表記 · Progressive disclosure

最初は少しだけ読み、必要になったら続きを読むやり方

エージェントは、スキルを段階的な開示というやり方で3段階に分けて読みます。① 最初はスキルごとの名前と説明だけ、② 仕事が合ったら SKILL.md 全体、③ 必要なときだけフォルダーの中のスクリプトや参考ファイル。だから、スキルをたくさんインストールしてもコンテキストウィンドウがいっぱいになりません。

もっと学ぶ

リサーチプレビュー

原文の表記 · Research preview

完成前に試してもらうため先に公開した、機能の早い段階

リサーチプレビューとは、新しい機能を作り終える前に、みんなが試して意見を送れるよう先に公開した段階です。あとで変わったり、制限があったり、なくなったりすることがあるので、まだ大事な仕事には頼りません。Anthropic は Claude Code のチャンネルなどの機能にこの表示を付けています。

Cursor

VS Code をもとに作られた AI コードエディター

Cursor は AI が組み込まれたコードエディターです。Anysphere という会社が VS Code をもとに作ったので、見た目や拡張機能になじみがあります。入力しているあいだにコードを提案し、プロジェクトについての質問に答え、複数のファイルを一度に直すエージェントモードもあります。エージェントスキルや AGENTS.md も読みます。(文字の入力位置を示すカーソルとは別の言葉です。)

もっと学ぶ

Goose

Block が最初に公開したオープンソースの AI エージェント

Goose は、決済の会社 Block が最初に公開したオープンソースの AI エージェントで、自分のコンピューターでデスクトップアプリやターミナルとして動きます。いろいろな会社のモデルを選んで使え、MCP でツールにつながります。エージェントスキルも読みます。

もっと学ぶ

Kiro

仕様を先に書いてから作る、AWS の AI コーディングエディター

Kiro は AWS(Amazon Web Services)が作った AI コーディングエディターです。チャットやコードを直すエージェントのほかに、エージェントが作り始める前に、要件・設計・やることリストをまとめた仕様(spec)を先に書くよう促します。エージェントスキルも読みます。

もっと学ぶ

Junie

JetBrains の AI コーディングエージェント

Junie は、IntelliJ IDEA・PyCharm・PhpStorm などのコードエディターを作っている JetBrains の AI コーディングエージェントです。そのエディターの中で作業を計画し、ファイルを直し、テストを実行します。エージェントスキルも読みます。

もっと学ぶ

Kimi

Moonshot AI の AI モデルの名前(ターミナルのコーディングツールもある)

Kimi は、中国の会社 Moonshot AI が作った AI モデルとチャットアプリの名前です。一部の Kimi モデルは重みまで公開されています。Moonshot AI はコマンドラインのコーディングエージェントも出しているので、ターミナルで動かせる AI ツールの一覧に Kimi も並びます。

もっと学ぶ 重みとパラメータについて詳しく見る

Amp

Sourcegraph から始まった AI コーディングエージェント

Amp は、コード検索の会社 Sourcegraph から始まった AI コーディングエージェントです。ターミナルやコードエディターで動き、Claude Code や Codex のようにプロジェクトを読み、ファイルを直し、コマンドを実行します。エージェントスキルも読みます。

もっと学ぶ

OpenHands

ソフトウェア開発のためのオープンソース AI エージェント

OpenHands(以前の名前は OpenDevin)は、ソフトウェア開発をする AI エージェントのためのオープンソースのプラットフォームです。エージェントはサンドボックスの中でコードを書き、コマンドを実行し、ウェブを見て回ります。自分のコンピューターやサーバーに入れて使えます。エージェントスキルも読みます。

もっと学ぶ

Roo Code

VS Code に入れるオープンソースの AI コーディングエージェント拡張機能

Roo Code は、VS Code に AI コーディングエージェントを加えるオープンソースの拡張機能です。あなたが承認すると、ファイルを読んで直し、ターミナルのコマンドを実行します。どの会社のモデルを使うかは自分で選びます。エージェントスキルも読みます。

もっと学ぶ

Laravel Boost

AI エージェントが Laravel プロジェクトをうまく扱えるようにするパッケージ

Laravel Boost は、Laravel チームが AI コーディングエージェントのために作った公式パッケージです。Laravel プロジェクトに入れると、エージェントはアプリを調べるツール(ルート・データベースの構造・ログ)を持つ MCP サーバー、Laravel 向けのガイドライン、プロジェクトが使うパッケージのバージョンに合ったドキュメント検索を使えるようになります。エージェントスキルとも一緒に使えます。

もっと学ぶ

自動微分

原文の表記 · Automatic differentiation

ライブラリが代わりに勾配を求めてくれること

ニューラルネットワークを学習させるには、すべての重みについての損失の勾配が必要です。自動微分は、計算を実行しながら一つひとつを記録し、その記録を連鎖律で逆にたどって、すべての勾配を正確に計算します。PyTorch はこの機能を autograd と呼ぶので、自分は順方向の計算を書くだけで済みます。

もっと学ぶ 重みとパラメータについて詳しく見る

ニューラルネットワークのバイアス

原文の表記 · Bias term

ニューロンの合計に足す数。重みと同じように学習される

ニューロンは、入力それぞれに重みを掛けて合計し、さらにもう一つの数、バイアスを足します。バイアスがあると、入力がすべて 0 でもニューロンは 0 でない答えを出せ、どれくらい反応しやすいかもずらせます。バイアスもパラメータなので、学習で重みといっしょに調整されます。

もっと学ぶ 重みとパラメータについて詳しく見る

モデルの正解率

原文の表記 · Accuracy (model)

全部の例のうち、モデルが正しく答えた割合

正解率は、正しい予測の数を、例全体の数で割ったものです。読みやすいですが、ある答えがほかよりずっと多いときには誤解をまねきます。100 通のメールのうち 99 通がふつうのメールなら、いつも「ふつう」と答えるモデルでも 99% になります。だから適合率と再現率もいっしょに確かめます。

Agent Skills

スキルを SKILL.md のフォルダーとしてまとめるためのオープンな標準

Agent Skills は、agentskills.io で管理されているオープンな形式で、スキルの組み立て方を決めています。名前と説明を書いたフロントマターのある SKILL.md ファイルを持つフォルダーに、必要ならスクリプトや参考ファイルを足したものです。共通の形式なので、同じスキルのフォルダーを Claude Code、Codex、そのほかのコーディングエージェントで使えます。標準が決めているのは形式だけで、スキルが安全かどうかは確かめません。

もっと学ぶ

マーケットプレイス

原文の表記 · Marketplace

Claude Code のプラグインを選んでインストールする一覧

プラグインのマーケットプレイスは、スキル・サブエージェント・フック・MCP サーバーをまとめたプラグインの一覧が入ったリポジトリです。マーケットプレイスを一度追加すれば、その中のプラグインをコマンド一つでインストールでき、チームで同じツールを共有して更新できます。プラグインは自分のパソコンでコードを実行できるので、信頼できるマーケットプレイスだけを追加します。

もっと学ぶ

Stop フック

原文の表記 · Stop hook

エージェントが止まろうとするときに動くスクリプト

Stop フックは、エージェントが自分の番を終えて止まろうとするたびに Claude Code が実行するフックです。スクリプトは作業を確かめ、止まるのを防いでエージェントにもう一度作業させることができます。Ralph Loop はこの仕組みで作られています。フックが停止をつかまえ、完了のフレーズが出るか上限に届くまで、同じプロンプトを入れ直します。

もっと学ぶ

Claude Desktop

パソコンにインストールする Anthropic の Claude アプリ

Claude Desktop は macOS・Windows 用の Claude アプリです。会話のほかに、自分のパソコンの MCP サーバーにつないで、許可したツールやファイルを Claude に使わせることができ、ターミナルを開かずに Claude Code や Cowork の作業を任せることもできます。MCP の言葉でいえばホストです。

もっと学ぶ

Claude Agent SDK

Claude Code のハーネスで自分のエージェントを作るためのライブラリ

Claude Agent SDK は、Claude Code を動かしているハーネス(エージェントのループ・ツール・権限・コンテキストの管理)を、Python と TypeScript のライブラリとして提供するものです。これを使うと、そのループを自分で書かなくても、ファイルを読み、コマンドを実行し、ツールを呼ぶ自分だけのエージェントを作れます。以前の名前は Claude Code SDK でした。

適応型の推論

原文の表記 · Adaptive thinking

一歩ごとに、先に考えるかどうか、どれだけ考えるかをモデルが決める方式

適応型の推論では、モデル自身が一歩ごとに、答える前に考えるかどうか、どれだけ長く考えるかを決めます。簡単な一歩は速く、難しい一歩は長く考えます。思考トークンの数を決めて渡す代わりに、エフォートで全体の量を調整します。高くするとよく考えて深く確かめ、低くすると速く安くなります。一部のモデルだけが対応しています。

思考トークン

原文の表記 · Thinking tokens

モデルが答えを書く前に考えるために使うトークン

思考トークンは、推論モデルが答えを出す前に問題を考え進めながら書くトークンです。ほかのトークンと同じように料金がかかり、コンテキストも使います。思考の予算は、使える思考トークンの上限です。Claude Code ではエフォートで考える量を上げ下げし、予算が決まっているモデルでは MAX_THINKING_TOKENS の設定で上限を決めます。

bypassPermissions

すべての確認を切る Claude Code の権限モード

bypassPermissions は、Claude Code がまったく確認せずにファイルを編集し、コマンドを実行する権限モードで、--dangerously-skip-permissions オプションで始めるとこのモードになります。まちがったコマンドや害のあるコマンドを止めるものが何もないので、インターネットにつながらず、失っても困らないものしかないコンテナや仮想マシンの中でだけ使います。

もっと学ぶ

メモリファイル

原文の表記 · Memory file

Claude Code がセッションのはじめに毎回読み込む指示ファイル

Claude Code でいう「メモリ」とは、セッションを始めるたびに読み込む指示ファイルのことです。CLAUDE.md(または AGENTS.md)と、自動メモリのメモがこれに当たります。何か頼む前からコンテキストに入るので、最初のメッセージからコンテキストウィンドウの一部を使います。だから短く保ちます。このメモリはディスク上のテキストファイルで、コンピューターの RAM ではありません。

もっと学ぶ

ultrathink

頼みごとに入れると、そのターンだけ深く考えさせる言葉

頼みごとに ultrathink を入れると、Claude Code はその1ターンだけより深く考えます。セッションの残りで使うモデルや effort のレベルは変わりません。やっかいなバグや設計の判断など、難しい一歩に向いています。深く考えるほど時間がかかり、トークンも多く使います。

もっと学ぶ

Claude in Chrome

Claude が自分の Chrome でページを開き、クリックして確かめられる拡張機能

Claude in Chrome はブラウザーの拡張機能です。Claude Code とつなぐと、Claude があなたの Chrome でページを開き、クリックし、入力し、コンソールのエラーを読めるので、コードを直したあとに画面で結果を自分で確かめられます。Chrome や Edge などの Chromium 系ブラウザーで、同じ claude.ai アカウントでログインして使います。

もっと学ぶ

PreToolUse

ツールを使う直前に動き、その動作を止められるフック

PreToolUse は、エージェントがツールを使うすぐ前(ファイルを直す前、シェルのコマンドを実行する前)に動くフックのイベントです。フックのコマンドはこれから起きることを見て、止めることができます。終了コード 2 で終わるとその動作は止まり、stderr に書いた理由がエージェントに伝わります。危ないコマンドや秘密のファイルの編集を止めるのに使います。Claude Code にも Codex にもあります。

もっと学ぶ

PostToolUse

ツールを使った直後に動くフック

PostToolUse は、エージェントがツールを使ったすぐあと(たとえばファイルを直したあと)に動くフックのイベントです。すでに行った動作を取り消すことはできませんが、後始末はできます。エージェントが変えたファイルごとに Prettier のようなフォーマッターをかけるのが、よくある使い方です。Claude Code にも Codex にもあります。

もっと学ぶ

matcher

フックをどのツールに適用するかを決める部分

フックの matcher は、そのフックがどのツールのときに動くかを選びます。ツールの名前かパターンで書き、シェルのコマンドなら Bash、ファイルの変更なら Edit|Write のようにします。matcher がないと、すべてのツールでフックが動くので遅くなり、止めるつもりのないものまで止めてしまうことがあります。

もっと学ぶ

/clear

Claude Code で新しい会話を始めること

/clear と打つと会話が空になり、次のお願いはまっさらなコンテキストウィンドウから始まります。関係のない仕事に移るときに使いましょう。古いメッセージがウィンドウを埋めたり、仕事をまちがった方向へ引っぱったりしなくなります。前のセッションは保存されていて、/resume でまた開けます。

もっと学ぶ

Esc

Claude Code の作業を途中で止めるキー

Claude Code が作業中に Esc を押すと、今の手順がすぐに止まります。会話は残るので、何がちがったかを伝えて続けられます。Esc を二回押す(または /rewind と打つ)とチェックポイントの一覧が開き、会話とコードの前の地点に戻れます。まちがった計画を最後まで走らせるより、早めに止めるほうが安くすみます。

もっと学ぶ

claude mcp add

ターミナルから Claude Code に MCP サーバーを登録すること

claude mcp add は Claude Code に新しい MCP サーバーを渡し、そのサーバーが持つツールも使えるようにします。リモートのサーバーは --transport http とアドレスで追加し、自分のコンピューターで動くサーバーは -- とそれを起動するコマンドで追加します。claude mcp list で登録したサーバーを見て、claude mcp remove で一つ消します。

もっと学ぶ

--scope (MCP)

追加した MCP サーバーをどこに保存し、誰が使えるかを決めるオプション

claude mcp add は、サーバーを三つのスコープのどれかに保存します。標準の local は、このプロジェクトでだけ自分用に残します(~/.claude.json の中)。project はプロジェクトのいちばん上の .mcp.json に書くので、チームは git で受け取り、最初に使うときに承認します。user は、自分のすべてのプロジェクトで使えるようにします。このスコープは、シェルのコースの変数のスコープとは別のものです。

もっと学ぶ

Shift+Tab

Claude Code の権限モードを切り替えるショートカット

Claude Code のターミナルでは、Shift+Tab で権限モードを順に切り替えます。default は編集やコマンドのたびにたずね、acceptEdits はたずねずにファイルを編集し、plan は読むだけで、何かを変える前に計画を見せます。大きな変更の前にプランモードに切り替えると、先に計画を読んで直せます。default 以外のモードがオンのときは、入力欄の下にその名前が出ます。 v2.1.283 以降、ターミナルのセッションは auto モードで始まるので、最初の一押しで default になり、順番は auto → default → acceptEdits → plan です。

もっと学ぶ

Anthropic

Claude を作っている AI 企業

Anthropic(アンソロピック)は2021年に設立された AI 研究企業です。Claude という言語モデルや Claude Code などのツールを作り、AI を安全にするための研究を発表しています。

OpenAI

ChatGPT と Codex を作っている AI 企業

OpenAI は2015年に設立された AI 研究企業です。GPT シリーズのモデル、対話サービスの ChatGPT、コーディングエージェントの Codex を作っています。

GPT について詳しく見る

フックイベント

原文の表記 · Hook event

SessionStart のように、フックが動くタイミングの名前

フックイベントは、フック(自分のスクリプト)が動くタイミングの名前です。セッション開始時、プロンプト送信時、ツール実行の前後、Claude が止まったときなどがあります。設定ファイルにイベントと、そのとき実行するコマンドを書きます。

もっと学ぶ

スキル設定項目

原文の表記 · Skill setting field

allowed-tools のように SKILL.md の先頭に書く Claude Code の設定

SKILL.md のフロントマターには name・description のほかに、Claude Code が読む項目があります。確認なしで使えるツール、自分だけが起動するか、/ メニューに表示するかです。Agent Skills を読むほかのエージェントはこれらを無視することがあります。

もっと学ぶ

XChat

XSLM コースで自分で作るチャットボット

XChat は XSLM コースで自分で作る小さな対話プログラムです。質問を Runner に送ると、自分で学習させた GPT が答えを作り、XChat がそれを表示します。学習済みモデルや外部の AI API は使いません。

もっと学ぶ GPT について詳しく見る

--output-format

claude -p の結果をどの形式で出力するか選ぶ

Claude Code を会話画面なしで実行するとき(`claude -p`)、何を出力するかを決めるオプションです。既定の `text` は答えの文章だけ、`json` は答え(`result`)・セッション ID・推定コストを含む JSON を1つ、`stream-json` は実行中の出来事ごとに JSON を1行ずつ出力します。ほかのプログラムが値を読み取るスクリプトでは、ふつう `json` を選びます。

もっと学ぶ

AGENTS.override.md

同じフォルダの AGENTS.md の代わりに読まれる Codex の指示ファイル

Codex はフォルダごとに `AGENTS.override.md` を `AGENTS.md` より先に探し、1つのフォルダから1ファイルしか読まないため、このファイルがあると隣の `AGENTS.md` は読まれません。共有の指示ファイルを編集・削除せずに、しばらく別の指示を試したいときに使い、消せば元の指示に戻ります。Claude Code はこのファイルを読みません。

もっと学ぶ

skill-creator

新しいエージェントスキルを一緒に作るスキル

skill-creator は、新しいスキル(`SKILL.md` の入ったフォルダ)を作る手順を案内するスキルです。スキルが何をするか、いつ使われるべきかを尋ね、その答えからファイルを書きます。Codex には最初から入っていて `$skill-creator` で呼び出せます。Anthropic の公開 skills リポジトリにもあり、そちらは例の質問でスキルを試すところまで手伝います。

もっと学ぶ

承認ポリシー(approval policy)

Codex がコマンド実行前に人に確認するかを決めるルール

承認ポリシーは、Codex がコマンドを実行する前に止まって人に確認するかどうかを決めます。`--ask-for-approval`(`-a`)で指定し、`on-request` はサンドボックスが許すことは確認せずに実行し、それ以外は確認します。`never` は確認しませんが、サンドボックスの中でしか動きません。Codex がバージョン管理下のフォルダに勧める Auto モードは `workspace-write` と `on-request` の組み合わせで、古い値 `untrusted` はもう使えません。

もっと学ぶ

evals.json

スキルを試す質問と期待する結果を書いたファイル

evals.json は、スキルを試すための問題の一覧です。問題ごとに、ユーザーが入力しそうな依頼と良い結果がどんなものかを書き、同じ依頼をスキルありとスキルなしで実行して比べると、スキルが本当に役立っているかがわかります。決まった形式はなく、Anthropic の skill-creator は `evals/evals.json` に下のフィールドで置きます。

もっと学ぶ

NVIDIA

AI に使われるグラフィックチップ(GPU)で知られる米国企業

NVIDIA(エヌビディア)はグラフィックカード(GPU)を設計・販売するアメリカの企業です。GPU はもともとゲームの画面を速く描くために作られましたが、AI モデルの学習や実行に必要な膨大な計算も得意なため、ほとんどの AI データセンターで使われています。NVIDIA は、自社の GPU で動くプログラムを作るための道具一式である CUDA も作っています。

もっと学ぶ

Google DeepMind

AlphaGo と Gemini を作った Google の AI 研究組織

Google DeepMind(グーグル・ディープマインド)は Google の中の AI 研究組織です。2016年にイ・セドル九段に勝った囲碁 AI の AlphaGo を作り、Google の Gemini モデルを開発しています。単独で使うアプリではなく研究組織なので、その成果は Gemini などの Google 製品の中で目にします。

もっと学ぶ

NIST

AI のリスク管理の指針を出す米国の標準機関

NIST(米国国立標準技術研究所)は、測定の単位や技術の標準を定めるアメリカの政府機関です。AI の分野では、AI システムのリスクを見つけて減らす方法をまとめた AI リスクマネジメントフレームワーク(AI RMF)と、それをチャットボットのような生成 AI に当てはめた生成 AI プロファイルを出しています。法律ではなく、自主的に従う指針です。

もっと学ぶ

Gartner

IT 動向レポートで知られる米国の調査・助言会社

Gartner(ガートナー)は企業を調査し、情報技術に関するレポートや予測(例: ハイプ・サイクルの図)を出す米国の調査会社です。ニュースは企業の経営者を対象にした Gartner の調査をよく引用します。その数字は調査した企業についてのもので、すべての企業についてではありません。

もっと学ぶ

アンドレイ・カルパシー

原文の表記 · Andrej Karpathy

nanoGPT と言語モデルづくりの無料講座で知られる AI 研究者

アンドレイ・カルパシー(Andrej Karpathy)は OpenAI の創設メンバーで、Tesla のオートパイロットの AI を率いた AI 研究者です。nanoGPT・makemore・nanochat のような小さく読みやすいプロジェクトや、ニューラルネットワークを一から作る無料の動画講義を公開しています。2025 年には「バイブコーディング」という言葉を生み出しました。

もっと学ぶ GPT について詳しく見る

SONUB 用語辞典

データ

用語 81 個

埋め込み(エンベディング)

原文の表記 · Embedding

意味を数値に変えて比べられるようにすること

埋め込みとは、文を数値の並びに変えつつ、意味の近いものどうしが近い位置に来るように配置することです。だから「車を直す」と検索しても「自動車修理」を扱った段落を見つけられます。綴りではなく意味で照合しているからです。

ベクトル

原文の表記 · Vector

位置を表す数値の並び

ベクトルとは順序のある数値の並びにすぎません。地図上の一点を示す二つの数値と同じものです。人工知能は数百個の数値からなる並びを使うので、一つ一つが私たちには描けない空間の中の一点を指します。意味が点になれば、「似ている」はそのまま「近い」になります。

データベース

原文の表記 · Database

安全に探して直せるよう整理された保管場所

データベースは、プログラムが扱うデータを整った形で保管し、素早く探せて安全に直せるようにします。大勢が同じ瞬間に書き込んでもデータが壊れないようにするのが役目です。二人が同時に編集しても一行も失わない表計算ソフト、と考えると分かりやすいでしょう。このサイトの利用者情報も投稿も点数も、すべてその中にあります。

もっと学ぶ

SQL

データベースに問いかけるための言語

SQL は、データベースに何をしてほしいかを伝える方法です。この行を選んで、これを追加して、その項目を変えて、という具合です。短く刈り込んだ英語のように読めるので、最初に触れる言語としては珍しく親しみやすいものです。1970年代から使われており、今でもたいていのデータベースと話す標準的な方法です。

JSON

プログラム同士がデータをやり取りする文字の形式

JSON は名前と値を組にしてデータを文字で書き表す形式なので、違う言語で作られたプログラム同士でも理解し合えます。ほとんどの API はこの形式で返事をします。ただの文字なのでファイルを開いて人が読めますし、あるサービスが実際に何を返してきたのかを確かめるのも簡単です。

ワンホットベクトル

原文の表記 · One-hot vector

0 が並ぶ中で、ひとつだけの 1 がどの単語かを示すリスト

ワンホットベクトルは語彙の数と同じ長さで、その単語の位置に 1 がひとつあるだけで、残りはすべて 0 です。トークンの ID を、計算に使えるベクトルに変えるいちばん簡単な方法です。分かるのはどの単語かということだけで、どの二語の間も同じだけ離れているので、意味や似ている度合いは表しません。それを表すのは学習済みの埋め込みです。

もっと学ぶ

テンソル

原文の表記 · Tensor

何次元にでも並べられる数の入れ物

テンソルは、数を一つ以上の方向に並べた入れ物です。数一つはスカラー、一列に並べればベクトル、表にすれば行列、表を積み重ねればもっと次元の高いテンソルになります。モデルのパラメータはテンソルに保存され、GPU はそれを速く掛け合わせるために作られています。パラメータは入れ物ではなく中の数で数えます。2 × 3 の行列には 6 個のパラメータが入っています。

もっと学ぶ 重みとパラメータについて詳しく見る

ビットとバイト

原文の表記 · Bits and bytes

コンピューターのデータのいちばん小さな単位。0/1 と、その 8 個の組

ビットは 0 か 1 のひとつで、コンピューターが保存するいちばん小さなデータです。バイトは 8 ビットで、256 通りの値を表せます。ファイルの大きさやメモリはバイトで数え、キロバイト、メガバイト、ギガバイトと続きます。AI モデルの大きさもこれで説明できます。8 ビットで保存したパラメータは 1 バイトなので、80 億個なら約 8 GB です。

もっと学ぶ 重みとパラメータについて詳しく見る

CSV

列のあいだにカンマを入れて、テキストで保存した表

CSV(カンマ区切りの値)は、表をテキストとして保存します。テキストの一行が表の一行で、列のあいだにカンマを入れ、最初の行に列の名前を書くことがよくあります。表計算ソフトで開いたり保存したりでき、シェルの道具もよく読めます — cut -d, と awk -F, は各行をカンマで分けます。値そのものにカンマが入っているときは引用符で囲みますが、こうした簡単な道具はそこまでは理解しません。

FP32

数一つを 32 ビット(4 バイト)で表す形式

FP32 は、小数点のある数(浮動小数点数)一つを 32 ビット、つまり 4 バイトで保存します。コンピューターで学習するときによく使う形式で、有効数字をおよそ 7 けた保ちます。同じモデルを FP16 にすると大きさは半分になるので、モデルはもっと小さい形式で配布したり動かしたりすることがよくあります。

もっと学ぶ 重みとパラメータについて詳しく見る

INT8

数を 8 ビット(1 バイト)の整数で表す形式

INT8 は、−128 から 127 までの整数一つを 8 ビット、つまり 1 バイトで保存します。量子化したモデルは重みを INT8 で持ち、スケールを掛けて元に近い数に戻します。そのためファイルは FP32 の約 4 分の 1、FP16 の約半分になり、正確さは少しだけ下がります。

もっと学ぶ 重みとパラメータについて詳しく見る

スカラー

原文の表記 · Scalar

リストや表ではない、数一つ

スカラーは 0.7 のような数一つです。ベクトルはスカラーを並べたリスト、行列はスカラーを並べた表です。モデルのパラメータはスカラー一つずつ数えます。2 × 3 の行列にはスカラーが 6 個あるので、パラメータも 6 個です。だから 8B は、ベクトル 80 億個ではなく、数がおよそ 80 億個という意味です。

もっと学ぶ 重みとパラメータについて詳しく見る

内積

原文の表記 · Dot product

同じ位置どうしを掛けて全部足した数一つ

内積は、長さが同じ二つの数のリストで、同じ位置の数どうしを掛けてから全部足し、数一つにする計算です。[1, 2, 3] と [4, 5, 6] の内積は 4 + 10 + 18 = 32 です。二つのベクトルが同じ向きを向くほど大きくなります。アテンションでは Query と Key の内積が「どれだけ関係があるか」の点数になり、線形層(linear)も重みの行ごとに入力との内積を取ったものです。

もっと学ぶ 重みとパラメータについて詳しく見る

ユークリッド距離

原文の表記 · Euclidean distance

2 つの点をまっすぐな線で結んだ長さ — 短いほど似ている

2 つのベクトルで同じ位置の数どうしを引き、その差を 2 乗してすべて足し、最後に平方根をとった値です。[0, 0] と [0.3, 0.3] の距離は √(0.3² + 0.3²) = 0.424 です。埋め込みでは距離が短いほど意味が似ていると考え、ベクトルデータベースはこの距離でいちばん近いものを探します。

もっと学ぶ

数値の精度

原文の表記 · Numeric precision

数一つを何ビットで、どれだけ細かく保存するか

精度は、数一つをどれだけ細かく保存するかを表し、ふつうはビット数で言います。32 ビット、16 ビット、8 ビット、4 ビットなどです。ビットが少ないほどモデルは小さく、多くの場合速くなりますが、数を粗く丸めるので品質が少し下がることがあります。モデルをより低い精度に移すことを量子化と呼びます。

もっと学ぶ 重みとパラメータについて詳しく見る

アトミック

原文の表記 · Atomic transaction

全部行われるか、まったく行われないかのどちらかになる処理

アトミックな取引(トランザクション)とは、いくつかの変更をデータベースが一つの手順として扱うことです。変更はすべて保存されるか、一つも保存されないかのどちらかです。途中でサーバーが止まれば、元の状態に戻します。ゲームの財布にはこれが欠かせません。プレイヤーがアイテムを買うとき、コインを引くこととアイテムを渡すことが半分だけ起きてはいけないからです。

もっと学ぶ

データベースのダンプ

原文の表記 · Database dump

データベースの中身を丸ごと書き出したファイル

データベースのダンプとは、データベースの表・その設計・すべての行をそのまま書き写したファイルです。バックアップや、別のサーバーへの引っ越しのときに作り、読み込み直せば同じデータベースができあがります。自分の手元にあるふつうのファイルなので、サービスをやめるときにデータを持ち出す出口にもなります。

データベースのインデックス

原文の表記 · Indexing

データベースが行をすばやく見つけるために作る索引

インデックスとは、データベースが一つの項目を基準に並べて別に持っておく一覧です。これがあるので、すべての行を読まずに必要な行へすぐ行けます。ある項目にインデックスを作るとその項目での検索は速くなりますが、保存のたびに少し遅くなり、場所も多く使います。一部の項目にしかインデックスを作らない保存先は、その項目でしか探せません。

データベースのテーブル

原文の表記 · Table

一種類の記録を行と列で入れておくデータベースの表

データベースはデータをテーブルに入れます。一つのテーブルにはプレイヤーやアイテムのように一種類のものだけを入れ、列は名前やレベルのような項目、行は記録一つです。プログラムはクエリでテーブルを読んだり変えたりし、システムによってはクライアントがテーブルを購読して、変わった行をすぐ受け取れます。

データベースのクエリ

原文の表記 · Query

データベースにデータを問い合わせたり、変えたりする依頼

クエリとは、データベースに送る依頼です。この行を探して、数えて、一つ足して、変えて、といったものです。ほとんどのデータベースは SQL で書いたクエリを受け付けます。クエリをどれだけ自由に書けるかは保存先によってちがいます。SQL のデータベースはほぼどんな質問にも答えますが、単純なキーバリューの保存先はキーでしか探せません。

キーバリュー

原文の表記 · Key-value

名前(キー)で値をしまい、その名前で取り出す保存のしかた

キーバリューの保存先は、データを組にして保存します。player:42 のようなキーと、そのプレイヤーのセーブデータのような値です。キーを渡すと値をとても速く返します。そのかわり「レベル10を超えるプレイヤー全員」のように、たくさんの値にまたがる質問は SQL のように簡単にはできません。

メタデータ

原文の表記 · Metadata

データを説明するデータ

メタデータは、データそのものではなく、そのデータについての情報です。写真の撮影日やカメラ、ファイルの大きさや持ち主、モデルファイルの層の名前や数値の形式などです。プログラムはこれを読んで、本体のデータをどう使えばよいかを知ります。少し場所を使うので、モデルファイルは重みだけで計算した大きさより少し大きくなります。

重みとパラメータについて詳しく見る

PostgreSQL

広く使われている無料・オープンソースの SQL データベース

PostgreSQL(略して Postgres)は、データを表に入れて SQL のクエリに答えるオープンソースのデータベースです。トランザクションでデータを安全に守ることや、JSON の列などの機能で知られています。SONUB も PostgreSQL で動いていて、Nakama のようなゲームサーバーもプレイヤーのデータをここに保存します。Docker では、ふつう postgres という名前の別のコンテナとして動かします。

Redis

データをメモリに置く、とても速いキーバリューの保存先

Redis はデータを主にディスクではなくコンピューターのメモリ(RAM)に置くので、読み書きが1ミリ秒もかかりません。ウェブアプリは Redis をキャッシュ、裏で行う仕事の待ち行列(キュー)、回数のカウントやセッションの保存に使います。ディスクに保存もできますが、ふつうは絶対に失ってはいけないデータを置く場所ではなく、メインのデータベースの横にいる助っ人です。

ストレージエンジン

原文の表記 · Storage engine

データを保存し、また取り出すサーバーの部品

ストレージエンジンとは、データベースやゲームサーバーの中で、データをディスクにどう書き、どう見つけ直すかを決める部分です。Nakama では、プレイヤーのセーブデータをバージョン付きの JSON ドキュメントとして保存し、ドキュメントごとに持ち主と読める人を確かめます。その設計が、何を問い合わせられるかを決めます。Nakama の保存先は自由な SQL ではなく、主にキーバリューです。

もっと学ぶ

スキーマ

原文の表記 · Schema

データがどんな形をしていなければならないかを決めた設計図

スキーマはデータの形を決めます。データベースなら、どんなテーブルがあり、それぞれにどんな列と型があるか。ツールや API なら、どんな入力をどんな型で受け取るか、です。プログラムはデータをスキーマと照らし合わせ、合わないものを受け付けません。AI ツールの入力スキーマは、モデルにどんな引数を送ればよいかを伝えます。

JSON Schema

JSON が持つべき形を書くための標準の書き方

JSON Schema は、別の JSON がどんな形でなければならないかを書いた JSON ドキュメントです。必ず必要なキー、それぞれの値の型、使ってよい値を書きます。ツールはこれでデータを自動で検査します。codex exec --output-schema のような AI ツールは、これを使ってモデルの最後の答えをちょうどその形で受け取ります。

JSONL

1行に JSON を一つずつ書くテキスト形式

JSONL(JSON Lines)は、大きな JSON ドキュメント一つの代わりに、1行ごとに完全な JSON の値を一つずつ書きます。プログラムは行が届くたびに一つずつ読んで処理できるので、ログや進み具合を流すのに向いています。codex exec --json は進み具合をこの形で出します。1行が一つのイベントです。

TOML

キー = 値 の行で設定を書くファイル形式

TOML は設定ファイルのためのテキスト形式です。1行が キー = 値 で、角かっこの [セクション] が関係する設定をまとめます。JSON より人が読んだり直したりしやすい形です。Codex は設定を ~/.codex/config.toml に、自分で作ったサブエージェントを .toml ファイルに置きます。

base64

どんなファイルも英数字の文字だけで書き表す方法

base64 は、画像のような生のバイトを、安全な64種類の文字(A–Z、a–z、0–9、+、/)でできたテキストに変えます。おかげで、AI の API に送る JSON のように文字しか受け付けない場所にもファイルを載せられます。テキストは元のファイルより3分の1ほど長くなり、だれでも元に戻せるので、暗号化ではありません。

zip

たくさんのファイルを一つにまとめて小さくするファイル形式

zip ファイルは、たくさんのファイルやフォルダーを一つのファイルにまとめ、たいていは小さくもします。Cadeplay のようなゲームプラットフォームは、ウェブゲームを zip 一つで受け取ります。大事なのは中の並び方で、index.html がいちばん上(または1階層下)になければなりません。中身ではなくフォルダーごと圧縮すると階層が一つ増えます。これがいちばん多い失敗です。

もっと学ぶ

アーカイブファイル

原文の表記 · Archive file

たくさんのファイルを一つにまとめ、ふつうは圧縮したファイル

アーカイブファイルは、たくさんのファイルやフォルダーを一つのファイルにまとめ、たいていは小さくもします。よくあるのは .zip や .tar.gz です。スキルはアーカイブで配られます。npx skills add はスキルごとにアーカイブを一つダウンロードして展開します。会話を短くする Claude Code の「圧縮(Compaction)」とは別のものです。

digest

ファイルの中身から計算した指紋のような値

digest は、ファイルのすべてのバイトから計算した短い値です(sha256 など)。同じファイルからはいつも同じ digest が出て、1バイト変わるだけでまったくちがう値になります。だから、ファイル全体を比べなくても digest を比べるだけで変わったかどうかがわかります。スキルはアーカイブの digest をバージョンとして使います。digest が変われば新しいバージョンです。

sha256

ファイルの指紋(ハッシュ)を作る代表的な計算方法

SHA-256 はハッシュ関数です。どんな入力も256ビットの値に変え、ふつうは16進数64文字で書きます。ちがう二つのファイルが同じ値になるようにするのは事実上不可能なので、ダウンロードしたファイルの確認、バージョンの名前、セキュリティに使われます。ハッシュからファイルを元に戻すことはできず、ファイルを見分けるためだけに使います。

GIF

短いくり返しのアニメーションを入れられる画像形式

GIF は、いくつかのコマを入れてくり返し再生できる古い画像形式で、画面の録画のような音のない短い動画に使われます。1コマに使える色は最大256色なので、写真は GIF だとざらざらに見えます。AI のブラウザーツールは、自分がしたことを GIF に録画して報告に付けられます。

ID

一つのものをほかのすべてと見分けるための、重ならない名前や番号

ID(識別子)は、ちょうど一つのものだけに付く名札です。だからプログラムは迷わずにそれを指し示せます。会員番号、ファイル ID、バンドル ID、キー ID などです。言語モデルでは、語彙のトークンごとに番号(トークン ID)があり、モデルは文字ではなくこの番号で計算します。

容量の単位(KB・MB・GB)

原文の表記 · KB · MB · GB

ファイルやメモリの大きさを数える単位

ファイルやメモリの大きさはバイトで数え、大きな数には単位を付けます。キロバイト(KB)は1,000バイト、メガバイト(MB)は100万バイト、ギガバイト(GB)は10億バイトです。KiB・MiB・GiB は2のべき乗で数えます。1 KiB は1,024バイト、1 MiB は1,048,576バイトです。MiB のことを MB と書くプログラムも多いので、少しずれるのはふつうです。

重みとパラメータについて詳しく見る

ミリ秒(ms)

原文の表記 · Millisecond (ms)

1秒の1,000分の1

ミリ秒(ms)は1秒の1,000分の1です。画面やプログラムは短い待ち時間を ms で測ります。400 ms は0.4秒で、半秒より少し短い時間です。人はだいたい100 ms を超える遅れに気づくので、ウェブページはそれより速く応えようとします。

ピクセル(px)

原文の表記 · Pixel (px)

色の小さな点一つ。画面はこれが格子状に並んだもの

ピクセルは、画面や絵をつくるいちばん小さな点で、色を一つ持ちます。何百万個も並ぶと絵になります。ウェブデザインの px は CSS の単位です。640 px は幅を表しますが、解像度の高いスマートフォンでは CSS の1ピクセルが実際の画面の点をいくつも覆います。ゲームでは、速さを1秒あたり何ピクセルと表すことがよくあります。

NumPy

数の格子をすばやく計算するための Python ライブラリ

NumPy は Python に配列を加えます。まとめて足したり、掛けたり、比べたりできる数の格子です。内側のループは C で書かれているので、リストを Python のループで回すより何倍も速く動きます。scikit-learn や PyTorch など、Python の AI・データのツールのほとんどが同じ考え方で作られているか、NumPy の配列をそのまま受け取ります。

もっと学ぶ

NumPy 配列

原文の表記 · Array (NumPy)

NumPy が一度に計算する、同じ型の数の格子

NumPy 配列は数を格子に入れます。1列(1次元)、表(2次元)、またはもっと多くの次元です。値がすべて同じ型なので、NumPy は配列全体を一度に計算できます。a * 2 はすべての数を2倍にし、a @ b は二つの行列を掛けます。Python のリストに似ていますが、動きはちがいます。+ はリストをつなげるのではなく、数を足します。

もっと学ぶ

shape

配列が方向ごとにいくつ並んでいるかを表す大きさ

配列の shape は、次元ごとの大きさを並べたものです。(4, 3) は4行3列という意味です。shape によって、どの計算ができるかが決まります。行列の積では内側の数がそろっている必要があり、(4, 3) @ (3, 2) は (4, 2) になりますが、(4, 3) @ (2, 3) は ValueError になります。NumPy がエラーを出したら、まず .shape を表示してみます。

もっと学ぶ

ブロードキャスト

原文の表記 · Broadcasting

小さい配列を大きい配列に合わせて広げて計算すること

ブロードキャストは、NumPy が形のちがう配列を一緒に計算するしくみです。小さい配列を、足りない方向にくり返したものとして扱いますが、メモリに実際にコピーはしません。配列に 1 を足すとすべての数に 1 が足され、(4, 3) の表に値3つの行を足すと4行すべてに足されます。形を合わせられないときはエラーになります。

もっと学ぶ

ベクトル化された計算

原文の表記 · Vectorised maths

ループを使わず、配列全体を一度に計算すること

ベクトル化された計算とは、数ごとに Python の for ループを回さずに、a * b のように配列全体に一つの計算を書くことです。すると NumPy が、速いコンパイル済みのコードの中でループを回すので、よく何十倍も速くなります。ニューラルネットワークもこうして作られます。層一つは、何百万回もの別々の掛け算ではなく、1回の行列の積です。

もっと学ぶ

データリーク

原文の表記 · Data leakage

テスト用の情報が、うっかり学習にまぎれこむこと

データリークとは、テスト用のデータにある何かが学習中のモデルに伝わってしまい、テストの点数が本当の実力よりよく見えることです。よくある原因は、データを分ける前に全体で前処理をすることです。そうすると、スケーリングがテスト用の行まで含んだ平均を覚えてしまいます。先に分けてから、すべての前処理を学習用のデータだけで合わせます。

もっと学ぶ

スケーリング

原文の表記 · Scaling

学習の前に、特徴量の値の範囲をそろえる前処理

スケーリングは、特徴量ごとに数が同じくらいの範囲に入るように変えます。たとえば0〜1、または平均0・ばらつき1です。これをしないと、距離を比べるモデルでは、千の単位の特徴量が1けたの特徴量を打ち消してしまいます。スケーリングの基準は学習用のデータだけから覚えさせます。そうしないとデータリークが起きます。

もっと学ぶ

アヤメのデータセット

原文の表記 · Iris dataset

アヤメの花150本、3種類を見分ける定番の練習データ

アヤメのデータセットには、3種類のアヤメから50本ずつ、合わせて150本の花を測った値が入っています。花ごとに、がく片の長さ・幅、花びらの長さ・幅の4つの特徴があり、その数から種類を当てるのが課題です。小さくてきれいで、scikit-learn に入っているので、分類を学ぶときの最初のデータとしてよく使われます。

もっと学ぶ

前処理

原文の表記 · Preprocessing

モデルに使う前に、データを整えて形を変えること

前処理とは、学習や推論の前に生のデータに対して行うすべての作業です。壊れた行を消す、空いた値を埋める、数をスケーリングする、文章をトークンに、音を FFT で周波数に変える、などです。モデルは、期待する形のデータからしかうまく学べません。学習で使った前処理は、あとで新しいデータにも同じように行わなければなりません。

データ

原文の表記 · Data

コンピューターがためて扱う事実 — 数・文字・画像・音

データとは、コンピューターがためて処理できるあらゆる情報のことです。表の数字、文章、写真、録音、ウェブサイトでのクリックもデータです。プログラムはデータを読み、変え、新しいデータを作ります。人工知能はデータに二度頼ります。モデルは学習データから重みを学び、そのあとはあなたが渡したデータを処理します。

重みとパラメータについて詳しく見る

データ分析

原文の表記 · Data analysis

データを調べて役に立つ事実やパターンを見つけること

データ分析は、データを整え、まとめ、グラフにして問いに答えることです。どの商品がいちばん売れるか、ユーザーがいつ離れるか、変更が効いたかどうか、といった問いです。Python の NumPy や pandas、表計算ソフト、SQL でよく行います。いまは表をアップロードして普通の言葉で聞けば、AI チャットでも簡単な分析ができます。

構造化データ

原文の表記 · Structured data

行と列の決まった枠に入ったデータ

構造化データは決まった枠に収まっています。どの行にも同じ列があり、列ごとに入る値の種類が一つに決まっています。表計算ソフトの表やデータベースのテーブルがそうです。そのため並べ替え・絞り込み・集計がしやすくなります。昔ながらの機械学習や SQL はこの形のデータで最もよく働き、文章や画像は先にもっと前処理が必要です。

非構造化データ

原文の表記 · Unstructured data

決まった枠のないデータ — 文章・写真・音・動画

非構造化データには決まった行と列がありません。メール、文書、写真、録音、動画などです。世の中のデータの大部分はこの形です。そのままでは数えたり並べたりしにくいので、まずトークンや埋め込みのような数に変えます。言語モデルや画像モデルは、まさにこの種類のデータを扱うために作られています。

ベクトルデータベース

原文の表記 · Vector database

埋め込みをためて、いちばん近いものを探すデータベース

ベクトルデータベースは、文章や画像の意味を表す数の並びである埋め込みベクトルをためておき、問い合わせに最も近いベクトルをすばやく探します。RAG では文書の一部分ずつをベクトルにしてためておき、質問もベクトルに変えて、いちばん近い部分をモデルに渡します。文書が少なければ、メモリー上の簡単な検索で十分なこともあります。

Excel

表と計算のための Microsoft の表計算ソフト

Excel は Microsoft の表計算ソフトです。マス目(セル)に数や文字を打ち込み、ほかのセルから計算する数式を書けます。仕事の表、予算、簡単なグラフで最もよく使われる道具です。AI ツールはアップロードした Excel ファイルを読み、内容についての質問に答え、数式も書いてくれます。

数式

原文の表記 · Formula

表計算ソフトのセルに書く計算

表計算ソフトの数式は、= で始まり、数やほかのセルから値を計算する指示です。=SUM(B2:B13) や =B2*1.1 のように書きます。もとのセルが変わると、結果もひとりでに変わります。AI に答えだけでなく数式も求めると、その計算を使い回したり確かめたりできます。

音の信号

原文の表記 · Sound signal

時間とともに変わる値として記録した音

音の信号は、マイクのところで空気の圧力が時間とともにどう変わるかを記録したもので、長い数の並びとして保存されます。グラフに描くと波形になります。音の人工知能はこれをそのまま使うことはあまりなく、FFT などの前処理で先に周波数に分けます。シェルがプログラムを止めるときに送る「シグナル」とは別のものです。

波形

原文の表記 · Waveform

音が時間とともにどう振動するかを描いたグラフ

波形は音を線で描いたものです。時間は左から右へ進み、線は振動に合わせて上下します。波が高いほど音は大きく、波が細かく詰まっているほど音は高くなります。音声編集ソフトは録音をこの形で見せます。音楽の人工知能は波形をそのまま扱うことも、音そのものを含まずに音楽を表す MIDI の音符を扱うこともあります。

周波数

原文の表記 · Frequency

1秒間に何回振動するか

周波数は1秒あたりの振動の回数で、ヘルツ(Hz)で測ります。音では高さにあたり、周波数が高いほど高い音に聞こえます。ラの音 A4 は 440 Hz で、人の耳はおよそ 20〜20,000 Hz を聞き取れます。実際の音は多くの周波数が同時に混ざっていて、FFT がそれぞれの強さを測ります。

ヘルツ(Hz)

原文の表記 · Hertz (Hz)

「1秒あたりの回数」の単位

ヘルツ(Hz)は、1秒間に何かが何回起きるかを数える単位です。音の高さ(A4 は 440 Hz)、音を測る回数(CD は 44,100 Hz)、画面を描き直す回数(120 Hz の画面は1秒に120回描き直します)を表します。1 kHz は 1,000 Hz です。

FFT

音を周波数ごとに分ける速いアルゴリズム

FFT(高速フーリエ変換)は、フーリエ変換を一つずつ計算するよりずっと速く求めるアルゴリズムです。信号の短い一部分を受け取り、その中にどの周波数がどれだけ強く含まれているかを出します。音の人工知能はほとんどいつも前処理でこれを使います。たとえば録音からスペクトログラムを作るときです。

フーリエ変換

原文の表記 · Fourier transform

信号に含まれる周波数を取り出す数学

フーリエ変換は、時間とともに変わる信号を「どの周波数がどれだけ強いか」の一覧に書き直します。どんなに複雑な音も、たくさんの単純な波を足し合わせたものと見なせ、変換はその波を見つけ出します。コンピューターでは、これを速く計算する FFT を使います。

IEEE 754

小数のある数をビットで保存するための標準

IEEE 754 は浮動小数点数の国際標準です。数を3つの部分に分けて保存します。符号のビット、大きさを決める指数、そして桁を持つ仮数です。32ビットの浮動小数点数は 1 + 8 + 23 ビットを使います。入る桁数に限りがあるので、コンピューターでは 0.1 + 0.2 がぴったり 0.3 になりません。

仮数

原文の表記 · Mantissa

保存した数のうち、桁を持つ部分

IEEE 754 では、数を符号・指数・仮数に分けます。仮数は有効数字を持ち、指数は小数点の位置を決めます。仮数のビットが多いほど数は精密になります。32ビットの浮動小数点数は23ビット、16ビットの浮動小数点数は10ビットしかありません。だから16ビットで学習するとメモリーは節約できますが、精度は落ちます。

MIDI

音ではなく音符として音楽を記録する標準

MIDI(Musical Instrument Digital Interface)は、電子楽器とコンピューターが演奏の情報をやりとりするための1983年の標準です。どの音を、いつ鳴らし始め、どれだけの長さで、どれだけ強く弾くかを伝えます。音そのものは入っていないので、MIDI ファイルはとても小さく、どの楽器の音色でも鳴らせます。音楽の構造が読みやすいので、音楽の人工知能が MIDI から学ぶこともあります。

サンプリングレート

原文の表記 · Sampling rate

音を1秒間に何回測るか

音を録音するとき、コンピューターは信号を1秒に何回も測り、測った値を一つずつ数として保存します。サンプリングレートは1秒あたりの測定回数で、ヘルツで表します。CD は 44,100 Hz です。レートが高いほど高い音まで記録できますが、ファイルは大きくなります。話し声はそこまで必要ないので、音声モデルはよく 16,000 Hz を使います。言語モデルがトークンを選ぶときの「サンプリング」とは別のものです。

ナイキスト周波数

原文の表記 · Nyquist frequency

そのサンプリングレートで記録できる最も高い音 — レートの半分

ナイキスト周波数はサンプリングレートの半分で、録音が正しく持てる最も高い周波数です。CD は 44,100 Hz で測るので 22,050 Hz まで記録でき、人が聞こえるおよそ 20,000 Hz を少し上回ります。限界を超える音は消えるのではなく、先に取り除いておかないと、にせの低い音として折り返して現れます。

オクターブ

原文の表記 · Octave

周波数が2倍になる、音と音のへだたり

オクターブは、ある音から同じ名前の次の音までのへだたりです。1オクターブ上がると周波数は2倍、下がると半分になります。A4 が 440 Hz なので、A5 は 880 Hz、A3 は 220 Hz です。この2つの音は高さが違うだけの同じ音に聞こえるので、同じ名前が付いています。

スペクトログラム

原文の表記 · Spectrogram

どの瞬間にどの周波数が強いかを表す図

スペクトログラムは、それぞれの周波数の強さが時間とともにどう変わるかを見せる図です。横軸が時間、縦軸が周波数で、明るさが強さを表します。録音を短く区切った一つ一つに FFT をかけて作ります。音を画像に変えられるので、音の人工知能モデルはスペクトログラムを入力に取ることがよくあります。

対数

原文の表記 · Logarithm (log)

かけ算を足し算に変える数学の関数

対数は「何乗すればこの数になるか」に答えます。log₁₀(1000) = 3 です。かけ算を足し算に変え、とても広い範囲を小さな範囲に縮めます。人工知能は損失でこれを使います。正解に与えた確率の対数を取ると、確率が小さいときに大きな罰になります。出来事を記録する「ログファイル」の log とは別のものです。

NaN

「Not a Number」:計算がおかしくなった印

NaN は「数ではない」という意味の、浮動小数点の特別な値です。JavaScript の 0/0 や、数に undefined を足したときなどに生まれ、一度現れると、それを使うすべての計算に広がります。学習で loss が nan になったら、たいていは学習率が高すぎます。NaN は自分自身とさえ等しくありません。

浮動小数点

原文の表記 · Floating point

コンピューターが小数を、ビットで近い値として保存するやり方

コンピューターは実数を IEEE 754 という標準に従って決まった数のビットで持つので、多くの小数は近い値でしか保存されません。Python で 0.1 + 0.2 を計算すると 0.30000000000000004 になります。この丸めの誤差はとても小さいですが、たくさんの段階を重ねると積み上がります。お金には整数(セント単位)か decimal の型を使いましょう。

YAML

インデントで設定を書くテキストの形式

YAML は設定のためのプレーンテキストの形式で、名前: 値 の行で書き、インデントで何が何の中に入っているかを表します。Docker Compose のファイル、GitHub Actions、Flutter の pubspec.yaml、SKILL.md の先頭のフロントマターはどれもこれを使います。インデントには空白を使い、タブは決して使いません。インデントを一つ間違えると、意味が変わったりファイルが壊れたりします。

UUID

実際にはまず重ならない、128 ビットのただ一つの ID

UUID(universally unique identifier)は、3f2a1bc4-… のように 36 文字で書く 128 ビットの数です。中央の一覧に聞かなくてもどこでも作れ、ランダムに作った二つが重なることは実際にはまずありません。Linux はファイルシステムそれぞれに UUID をつけます。/etc/fstab では、ディスクを足すと変わることがある sda1 のような名前より、UUID を使うほうが安全です。

もっと学ぶ

UTF-8

あらゆる言語の文字をバイトとして保存するための標準のやり方

コンピューターは文字を数として保存します。UTF-8 は、英語の文字やハングルからアラビア文字、絵文字まで、すべての文字にそれぞれ 1〜4 バイトの並びを与えるエンコーディングです。英語の文字は 1 バイト、ハングルの 1 文字は 3 バイトです。今の Web ページやコードのファイルのほとんどは UTF-8 で保存されています。

もっと学ぶ

エンディアン

原文の表記 · Endianness

数値のバイトを並べて保存する順番

1バイトより大きい数値は複数のバイトに分けて保存され、その並び順がエンディアンです。リトルエンディアンはいちばん小さいバイトを先に、ビッグエンディアンはいちばん大きいバイトを先に置きます。同じファイルを書く側と読む側のプログラムは順番をそろえる必要があり、そろっていないと数値がおかしくなります。safetensors はリトルエンディアンを使います。

もっと学ぶ

PDF

どの機器で開いても同じに見える文書ファイル

PDF(Portable Document Format)は、どのパソコンやスマートフォンで開いても、文書のページ・文字・画像を作ったときのままの配置で見せます。そのため領収書や記録によく使われます。SONUB は予約の証拠を PDF で書き出します。

JPG(JPEG)

原文の表記 · JPG (JPEG)

細かい部分を省いて容量を小さくする、よく使われる写真の形式

JPG は JPEG とも書き、写真で最もよく使われる形式です。目にはほとんど分からない細かい部分を捨ててファイルを小さくするので、同じ画像を何度も保存し直すと少しずつ画質が落ちます。背景を透明にはできません。透明にしたいときは PNG を使います。

PNG

ピクセルを一つ残らずそのまま残す画像形式

PNG はピクセルをすべて元のまま保存し(可逆圧縮)、背景を透明にもできるので、スクリーンショット・ロゴ・文字の画像に向いています。写真を PNG で保存すると、同じ写真の JPG よりたいていずっと大きくなります。

WebP

たいていファイルが小さくなるウェブ向けの画像形式

WebP は Google がウェブのために作った画像形式です。JPG のように画像を小さくすることも、PNG のようにピクセルをすべて残すこともでき、背景を透明にもでき、たいていどちらよりもファイルが小さくなります。今のブラウザーなら開けますが、古いプログラムの中には開けないものもあります。

MP4

最もよく使われる動画ファイルの形式

MP4 は最もよく使われる動画ファイルの形式で、圧縮した映像と音声を1つのファイルに入れ、ほとんどのスマートフォン・パソコン・ブラウザーで再生できます。SONUB の講師は自己紹介動画を 50 MB までの MP4 でアップロードするか、代わりに YouTube のアドレスを入れられます。

国コード

原文の表記 · Country code

KR や PH のような、国を表す英字2文字の記号

国際規格 ISO 3166-1 は、すべての国に英字2文字のコードを付けています。韓国は KR、フィリピンは PH、アメリカは US です。この書き方なら、どの言語でも国名がまったく同じ綴りになります。SONUB は本人確認で、書類を発行した国をこの形で入力してもらいます。

SONUB 用語辞典

開発

用語 299 個

API

プログラムが別のプログラムを呼ぶための決められた窓口

API とは、プログラム同士であらかじめ取り決めた窓口です。決まった形で要求を送ると、決まった形で答えが返ってきます。相手の内部を見る必要はなく、窓口だけを見ればよいのです。API で人工知能を使うとは、人が打ち込む代わりに自分のアプリがモデルに質問するということです。

API キー

原文の表記 · API key

自分を証明し課金される秘密の文字列 — 絶対に共有しない

API キーは、誰が呼び出しているのか、料金を誰の口座に付けるのかをサービスに伝える長い秘密の文字列です。銀行のカード番号と同じように扱ってください。チャット欄や画面写真、公開リポジトリに貼り付けることは絶対に避けます。漏れた場合は提供元の管理画面でそのキーをすぐ削除し、新しいものを発行してください。

Git

ファイルのすべての変更を記録しておく道具

Git はプロジェクトのすべての変化を記録し、何がいつ変わったかを確認したり、好きな時点に戻したりできるようにします。複数人が同じファイルを直しても互いの作業を上書きしないようにもしてくれます。Git は自分のパソコンで動くプログラムで、GitHub はその記録を預かるウェブサイトです。名前が似ているのでよく混同されます。

もっと学ぶ

リポジトリ

原文の表記 · Repository

プロジェクトのフォルダと、その全履歴をまとめたもの

リポジトリとは、Git が見張っているプロジェクトのフォルダと、そこで行われたすべての変更の記録をまとめて指す言葉です。リポジトリを複製すると、ファイルだけでなくその履歴も自分のパソコンに付いてきます。コードが GitHub にあるという話は、そこに複製できるリポジトリがあるという意味です。

もっと学ぶ

コミット

原文の表記 · Commit

履歴に残す保存点ひとつ — なぜ変えたかの覚え書き付き

コミットとは、プロジェクトのある瞬間をまるごと写し取ったもので、何をなぜ変えたかの短い覚え書きと一緒に保存されます。コミットはずっと残るので、いつでもその時点に戻れます。小さく分けたコミットと正直な覚え書きが履歴を役立つものにします。大きな塊ひとつに「修正」とだけ書いても、後から何の助けにもなりません。

もっと学ぶ

ブランチ

原文の表記 · Branch

本流に触れずに作業できる分かれ道

ブランチを作ると、本流から枝分かれして何かを試すことができ、納得がいくまで元のほうはそのままにしておけます。うまくいかなければそのブランチを捨てるだけ、うまくいけば本流に合流させます。チームが互いの邪魔をせずに複数の機能を同時に作れるのは、これがあるからです。

もっと学ぶ

コマンドライン(CLI)

原文の表記 · Command line (CLI)

クリックの代わりに命令を打って操作するやり方

コマンドラインインターフェースは、メニューをクリックする代わりに、命令を一行ずつ打って操作するプログラムです。見た目は素っ気ないものの、正確で繰り返しやすいのが利点です。打った一行をそのまま保存し、人に渡し、明日また同じように実行できます。Git や人工知能のコーディング道具をはじめ、開発用の道具はたいていこの方式も備えています。

もっと学ぶ

ターミナル

原文の表記 · Terminal

命令を打ち込む、あの黒い画面

ターミナルは、命令を打ち込む場所を用意し、その結果を表示してくれるアプリです。Mac ではターミナル、Windows では Windows ターミナルや PowerShell と呼ばれます。そこに何か打ち込んだだけで危ないことが起きるわけではなく、画面はいつ閉じてもかまいません。初心者が抱く怖さは、実際の危険に比べてずっと大きいものです。

もっと学ぶ

アルゴリズム

原文の表記 · Algorithm

決まった手順をたどれば必ず同じ結果に至る手続き

アルゴリズムとは、入力を結果に変える、終わりのある手順の並びです。料理のレシピと同じだと考えてください。名前を五十音順に並べることも、最短の道を探すこともアルゴリズムです。言葉は堅く聞こえますが、私たちも毎日アルゴリズムをたどっています。コンピューターは飽きることも一行飛ばすこともなく、それをそのまま実行するだけです。

ライブラリ

原文の表記 · Library

誰かが作っておいた、そのまま使えるコードのまとまり

ライブラリは、ほかの人が書いて検証したコードのまとまりで、自分のプロジェクトに取り込むことで、すでに解決済みの問題をもう一度解かずに済ませられます。日付を読む、グラフを描く、メールを送る。たいていは誰かがうまくやってくれています。よいライブラリを選ぶことも立派な実力です。自分のプログラムは、その長所だけでなく不具合まで一緒に引き受けるからです。

オープンソース

原文の表記 · Open source

誰でもコードを読み、使い、直せるように公開されたソフトウェア

オープンソースのソフトウェアはソースコードを公開し、誰でも読み、動かし、直せるようにライセンスを付けています。こうして開かれているからこそ、見知らぬ人が問題を見つけてくれますし、特定の会社に縛られずに済みます。公開だからといって義務がないわけではありません。ライセンスごとに条件が違うので、どれが付いているかは確かめる価値があります。

デバッグ

原文の表記 · Debugging

プログラムがなぜおかしいのかを追い、直す作業

デバッグは、プログラムが意図と違う動きをする理由を突き止めて直す作業です。その大半は気の利いた修正ではなく、落ち着いて範囲を狭めていく作業です。実際に何が起きたのか、何を期待していたのか、その二つが最初にずれる場所はどこか。初心者はデバッグを失敗の証拠のように感じますが、実際にはプログラミングの大きいほうの半分がこれです。

エラーメッセージ

原文の表記 · Error message

何かがうまくいかなかったときに、プログラムが表示する文

エラーメッセージは、プログラムやブラウザーがコードの指示どおりに動けないときに表示する文です。たいてい、何がどこでおかしくなったのか — よく何行目かまで — を教えてくれます。怖そうに見えますが、いちばん役に立つ手がかりです。最初の一行を読むか、AI に貼り付けて意味を尋ねてみましょう。

もっと学ぶ

Python

AI でよく使われる、初心者にやさしいプログラミング言語

Python は、コードがほとんどふつうの英語のように読めることで知られるプログラミング言語です。データ分析と AI でいちばんよく使われ、PyTorch や NumPy など多くの AI ライブラリは Python から使います。このサイトでは、何もインストールせずにブラウザーの中で本物の Python を動かせます。

もっと学ぶ

プログラム

原文の表記 · Program

コンピューターが順番に実行する命令の集まり

プログラムは、コンピューターに何をするかを一歩ずつ伝える命令のリストです。アプリもゲームも Web サイトもプログラムで、AI のチャットボットもそうです。コンピューターはプログラムに書かれたことしかしないので、プログラムがおかしな動きをするときは、命令か、渡された入力に原因があります。

コード

原文の表記 · Code

プログラミング言語で書いた命令

コードは、Python や JavaScript などのプログラミング言語で書かれたプログラムの本文です。人が書き、コンピューターが実行します。コードは言語の決まりに正確に従わなければならないので、かっこが一つ足りないだけで動かなくなることがあります。コードを書くことをコーディングといいます。AI ツールもコードを書けますが、確かめるのはやはり人です。

コードエディター

原文の表記 · Code editor

コードを書いて直すためのプログラム

コードエディターは、コードのファイルを書いたり直したりするためのプログラムです。コードの部分ごとに色を付け、打っているそばから間違いを知らせ、ターミナルが組み込まれていることもよくあります。VS Code(Visual Studio Code)は人気のある無料のエディターで、多くの AI コーディングツールが拡張機能としてそこに加わります。

フローチャート

原文の表記 · Flowchart

作業の手順を順番に示す図

フローチャートは、作業の手順を矢印でつないだ箱で描いた図です。丸い箱は始まりか終わり、四角は行うこと、ひし形は「はい・いいえ」の問いで、そこで道が分かれます。プログラムを作る前に描いておくと、何がどんな順番で起こるべきかがはっきりします。

もっと学ぶ

入力と出力

原文の表記 · Input and output

プログラムに入るものと、出てくるもの

入力は、プログラムが受け取るものです。打ったキー、マウスのクリック、ファイル、質問などがあります。出力は、プログラムが返すものです。画面の文字、音、保存されたファイルなどがあります。その間で、プログラムが入力を処理します。AI のチャットボットも同じ形で、あなたの質問が入力、その答えが出力です。

構文(syntax)

原文の表記 · Syntax

コードの書き方の厳密な決まり

構文は、プログラミング言語の書き方の決まりです。かっこ、コロン、引用符、空白をどこに置くかが決まっています。コンピューターは書き手の意図を推測しないので、引用符が一つ抜けただけでも構文エラーになり、コードはまったく動きません。エラーメッセージはたいてい行の場所を示すので、まずそこを見ます。

ランタイム

原文の表記 · Runtime

コードやモデルを実際に動かすプログラム

ランタイムは、ほかで書かれたものを実際に動かすプログラムです。Node.js はブラウザーの外で JavaScript を動かし、Pyodide はブラウザーの中で Python を動かし、llama.cpp は AI モデルのファイルを読んで計算を行います。この言葉は「プログラムの実行中」という意味でも使われ、実行したときにだけ出るエラーはランタイムエラーと呼ばれます。

フレームワーク

原文の表記 · Framework

自分のコードで中身を埋めていく、出来合いの骨組み

フレームワークは、アプリの組み立て方をあらかじめ決めている大きなコードの集まりです。あなたが書くのは、フレームワークがちょうどよいときに呼び出す部品です。ライブラリはその逆で、あなたのコードが好きなときにライブラリを呼びます。Web フレームワークは多くの手間を省いてくれますが、その下ではやはりふつうの HTTP でリクエストを読み、レスポンスを書いています。このサイトがまずその流れを見せるのはそのためです。

もっと学ぶ

SDK

一つのプラットフォームの上で作るためのコードと道具のセット

SDK はソフトウェア開発キット(software development kit)の略です。プラットフォームが配るもので、あなたのプログラムはクラウドセーブ、ランキング、ログインといった機能を、一から書かずに使えます。ふつうはプラットフォームの API を呼ぶライブラリに、説明書と例が付いています。このサイトでは Cadeplay で出てきます。Cadeplay は SDK をあなたのゲームに自動で入れてくれます。

もっと学ぶ

ビルド

原文の表記 · Build step

ソースコードを、実行・配布できるファイルに変えること

ビルドとは、あなたが書いたコードを、実際に動かす完成したファイルに変えることです。たとえば React のプロジェクトを、dist フォルダーの中のふつうの HTML・CSS・JavaScript にまとめます。この作業をするのがビルドツールです。できあがったものもビルドと呼ぶので、「新しいビルド」はゲームやアプリを新しくまとめた版のことです。ビルドの結果は毎回作り直されるので、Git には入れません。

もっと学ぶ

ゲームエンジン

原文の表記 · Game engine

ゲームを動かすための共通の仕事を引き受けるソフトウェア

ゲームエンジンは、ほとんどのゲームに必要な仕事を引き受けます。画面への描画、入力の読み取り、音の再生、物理計算、画像や音の読み込みなどです。あなたはその上に自分のゲームのルールと絵を加えます。Godot、Unity、Unreal、Flame(Flutter の上で動く)がよく知られた例です。多くのエンジンは、一つのプロジェクトを Web・スマートフォン・パソコン向けに書き出せます。

もっと学ぶ

MVP

人が本当に使える、いちばん小さな版

MVP は minimum viable product(実用最小限の製品)の略です。ゲームなら、最低限遊べるゲームのことです。小さくても、初めて見た人が手助けなしに最初から最後まで遊べるものです。デモや下書きとは違います。MVP を早く出せば、実際のプレイヤーから正直な感想がもらえます。一人で何か月作業しても、それは得られません。

もっと学ぶ

.env ファイル

原文の表記 · .env file

秘密の値をコードの外に置いておくファイル

.env ファイルは、トークンやパスワードなどを 名前=値 の行で並べた、ただのテキストファイルで、プロジェクトのフォルダーに置きます。プログラムは名前で値を読み出すので、秘密の値そのものはコードに出てきません。このファイルは .gitignore に書いて、リポジトリに入らないようにします。一度でも push してしまった秘密の値は、漏れたものとして扱い、新しいものに取り替えます。

CI(継続的インテグレーション)

原文の表記 · CI (continuous integration)

コードを変えるたびに自動で走るテスト

継続的インテグレーション(CI)とは、だれかが共有のリポジトリにコードを送るたびに、サーバーが自動でプロジェクトをビルドし、テストを実行するしくみです。何かが壊れれば、その変更がマージされる前に、チームは数分以内に赤い印で気づけます。GitHub Actions は広く使われている CI サービスの一つです。

バージョン管理

原文の表記 · Version control

ファイルへの変更をすべて記録しておくこと

バージョン管理とは、ファイルへの変更を一つずつ、だれが・いつ・なぜ変えたかと一緒に記録しておくやり方です。これがあれば、どの二つの版でも比べられ、前の版に戻れ、何人もが同じプロジェクトを安全に直せます。いまいちばん広く使われているバージョン管理ツールが Git です。

もっと学ぶ

GitHub

Git のリポジトリをオンラインで預かる Web サイト

GitHub は、Git のリポジトリのコピーをインターネット上に保存する Web サイトで、チームで一つのプロジェクトを共有できます。保存のほかに、変更をレビューする Pull Request、課題の一覧(Issue)、自動チェックなどもあります。Git はあなたのコンピューターの中の道具で、GitHub は、GitLab などと並んで、リポジトリをオンラインで預かるサービスの一つです。

もっと学ぶ

Pull Request(PR)

原文の表記 · Pull request (PR)

自分のブランチをレビューして取り込んでほしいという依頼

Pull Request(PR)は、GitHub などのサイト上のページで、あなたのブランチの変更をメインのブランチに取り込んでほしいとチームに頼むものです。レビューする人は diff を読み、コメントを書き、承認します。さらにコミットを push すると、同じ PR が更新されます。コードの試験というより、何をなぜ変えたかを説明する場です。

もっと学ぶ

diff

原文の表記 · Diff

何が変わったかを行ごとに見せる表示

diff は、二つの版のファイルの違いを見せます。- で始まる行は消された行、+ で始まる行は足された行です。git diff はまだステージングしていない変更を、git diff --staged はこれからコミットされる内容を見せます。コミットの前に毎回 diff を読むのが、間違いを見つけるいちばん簡単な方法です。AI が加えた変更も同じです。

もっと学ぶ

.gitignore

Git が追跡しないものを並べたファイル

.gitignore は、Git が無視するファイルやフォルダーを並べた、プロジェクトの中のテキストファイルです。node_modules、ビルドの結果、秘密の値を入れた .env ファイルなどを書きます。一行に一つのパターンを書き、末尾の / はフォルダー、* はどんな名前にも合います。すでにコミットしたファイルには効かないので、その場合は先に git rm --cached が必要です。

もっと学ぶ

スナップショット

原文の表記 · Snapshot

ある瞬間のすべてのファイルをまるごと写したもの

スナップショットは、ある瞬間のプロジェクトの全ファイルの状態を記録したものです。Git のコミットは一つひとつがスナップショットで、変更点の一覧だけではありません。変わっていないファイルはすでに保存されたコピーを指すだけなので、スナップショットは小さく収まります。だから Git はどのコミットにもすぐ移れ、二つの時点をすばやく比べられます。

もっと学ぶ

ワーキングディレクトリ(working tree)

原文の表記 · Working tree

目に見えて、直している実際のファイル

ワーキングディレクトリ(ワーキングツリー)は、あなたが目にしているままのプロジェクトのフォルダーで、実際に開いて直しているファイルです。Git はこれを最後のコミットと比べて、何が変わったかを教えてくれます。変更がいる場所は、ステージングエリア、リポジトリと合わせて三つあり、そのうちの一つです。git status で、それぞれの変更がどこにあるかが分かります。

もっと学ぶ

ステージングエリア(staging area)

原文の表記 · Staging area

次のコミットに入れる変更を集めておく場所

ステージングエリア(インデックスとも呼びます)には、次のコミットに入れると選んだ変更が入ります。git add で変更をそこに移し、git commit はステージングにあるものだけを保存します。この中間の段階があるので、五つのファイルを直しても、一緒にまとめるべき二つだけをコミットでき、履歴が読みやすくなります。

もっと学ぶ

クローン(clone)

原文の表記 · Clone

リポジトリをまるごと自分のコンピューターにコピーすること

クローンは、すでにあるリポジトリ(ふつうは GitHub にあるもの)を、すべてのファイルと履歴全体ごと自分のコンピューターにコピーします。Git はコピー元も origin という名前のリモートとして覚えておくので、あとから新しい変更を pull したり、自分の変更を push したりできます。クローンは一度だけで、そのあとは git pull で最新に保ちます。

もっと学ぶ

リモート(remote)

原文の表記 · Remote

別のコンピューターにある、同じリポジトリのコピー

リモートは、同じリポジトリの別のコピーで、ふつうは GitHub にあり、みんなで共有すると決めたものです。慣例として、メインのものは origin と呼びます。git push で自分のコミットをそこへ送り、git pull や git fetch でほかの人のコミットを取り込みます。手元でのやり方は変わりません。リモートはただの集合場所です。

もっと学ぶ

push(プッシュ)

原文の表記 · Push

自分のコミットをリモートに送ること

push は、ブランチのコミットをリモートにアップロードして、ほかの人が見られるようにします。初めてのときは git push -u origin main で、自分のブランチとリモートのブランチも結び付けるので、次からは git push だけで済みます。先にほかの人が push していたら、その作業を pull するまで Git は受け付けません。git push --force はほかの人のコミットを上書きするので、共有のブランチでは使わないようにします。

もっと学ぶ

pull(プル)

原文の表記 · Pull

リモートのコミットを取ってきて、取り込むこと

pull は、リモートから新しいコミットをダウンロードし、すぐにいまのブランチに合わせます。git fetch のあとにマージをするのと同じなので、自分も同じ行を直していればコンフリクトが起きることがあります。git pull --rebase は、代わりに自分のコミットを新しいコミットの上に並べ直し、履歴を一直線に保ちます。

もっと学ぶ

fetch(フェッチ)

原文の表記 · Fetch

マージせずに、リモートのコミットをダウンロードすること

fetch は、リモートから最新のコミットをダウンロードしますが、自分のブランチには手を付けません。新しい作業は origin/main のような名前で待っているので、マージするかどうかを決める前に中身を見られます。そのため fetch は、ほかの人が push したものを確かめる安全な方法です。git pull は、fetch のあとすぐにマージをするものです。

もっと学ぶ

マージ(merge)

原文の表記 · Merge

二つのブランチの作業を一つにまとめること

マージは、あるブランチのコミットを別のブランチに合流させることで、ふつうは仕上がった機能のブランチを main に取り込みます。二つのブランチが別々の部分を直していれば、Git が自分でまとめます。同じ行を違うように直していれば、コンフリクトとして止まり、あなたが解決するのを待ちます。マージは、実際に起きたとおりの履歴を残します。

もっと学ぶ

コンフリクト(conflict)

原文の表記 · Conflict

二つの変更が同じ行にぶつかること

コンフリクトは、二つのブランチがファイルの同じ行を違うように直したため、Git がどちらを残すか決められないときに起きます。Git は止まり、その場所に <<<<<<<、=======、>>>>>>> の印を付けます。ファイルを正しい形に直して印を消し、git add してコミットします。コンフリクトはエラーではありません。人に判断を求める Git からの合図です。

もっと学ぶ

fork(フォーク)

原文の表記 · Fork

他人のリポジトリを、自分のものとしてコピーしたもの

fork は、ほかの人のリポジトリを、自分のアカウントの下にコピーしたものです。ふつうは GitHub で作ります。自分のものではないプロジェクトには push できないので、自分の fork に push し、そこから元のリポジトリへ Pull Request を開きます。fork は、オープンソースのプロジェクトに貢献するときのいつものやり方です。

もっと学ぶ

rebase(リベース)

原文の表記 · Rebase

自分のコミットを別の地点の上に移すこと

rebase は、自分のコミットを取り出して、別のコミットの上に並べ直します。そのため履歴が一本の直線として読めます。git rebase -i を使えば、共有する前にコミットをまとめたり、メッセージを書き直したり、順番を入れ替えたりもできます。rebase は古いコミットの代わりに新しいコミットを作るので、ほかの人がすでに持っているコミットは決して rebase しないでください。

もっと学ぶ

HEAD

いま履歴のどこにいるかを指す目印

HEAD は、いまいるコミットを指す Git の名前で、ふつうはいまのブランチの最新のコミットです。多くのコマンドはここから数えます。HEAD~1 は一つ前、HEAD~3 は三つ前のコミットです。git reflog は HEAD がこれまでいたすべての場所を一覧にするので、なくしたコミットはたいていここから取り戻せます。

もっと学ぶ

変数

原文の表記 · Variable

値をしまっておく名前

変数は、あとで使えるように値に付ける名前です。Python では 名前 = 値 で値をしまいます。この = は「等しい」ではなく、「この名前にこの値を入れる」という意味です。変数の中身はいつでも変えられ、値を書くところならどこでも、代わりに変数の名前を書けます。

もっと学ぶ

関数

原文の表記 · Function

名前を付けて何度も使えるコードのまとまり

関数は、名前の付いたコードのまとまりで、必要なときにいつでもまた実行できます。Python では def で作り、受け取る値をかっこの中に並べ、return で値を返します。print() や len() は Python に最初から入っている関数で、def を使えば自分の関数を作れます。

もっと学ぶ

条件

原文の表記 · Condition

どのコードを実行するかを決める、はい・いいえの問い

条件は、答えが True か False になる問いで、score >= 60 のようなものです。if 文は、条件が True のときだけその中の行を実行し、else はそれ以外の場合を受け持ちます。中の行は空白 4 つでインデントしなければなりません。Python はそれで if のまとまりがどこで終わるかを見分けます。

もっと学ぶ

くり返し(ループ)

原文の表記 · Loop

何度も何度も実行されるコード

くり返し(ループ)は、同じ行を何度も実行します。for ループは、range(1, 11) の中の数やリストの項目のように、項目を一つずつたどります。while ループは条件が True のあいだくり返すので、条件が False にならなければ、いつまでも止まりません。

もっと学ぶ

インデント

原文の表記 · Indentation

コードをまとまりに分ける、行の先頭の空白

インデントは、行の先頭の空白です。Python ではこれが決まりの一部で、if、for、def の下の行は、その中に入っていることを示すためにインデントしなければなりません(ふつうは空白 4 つ)。インデントすべき行がされていなかったり、幅がそろっていなかったりすると、Python は IndentationError で止まります。

もっと学ぶ

リスト

原文の表記 · List

[ ] の中に値を順番に並べたもの

リストは、いくつもの値を順番どおりに一か所にまとめ、角かっこの中に入れたものです。各項目には 0 から始まる位置の番号があるので、fruits[0] が最初の項目です。append() で項目を足し、len() で数え、for ループで一つずつたどれます。

もっと学ぶ

辞書(ディクショナリ)

原文の表記 · Dictionary

{ } の中に、キーと値の組を並べたもの

Python の辞書は、{"math": 80} のように、キーと値の組を波かっこの中にしまいます。値は位置ではなくキーで探すので、scores["math"] で 80 が出てきます。新しいキーに代入すると組が増え、同じキーは一度しか使えません。コードではよく dict と略します。

もっと学ぶ

アクセストークン

原文の表記 · Access token

道具があなたのアカウントを使えるようにする秘密の文字列

アクセストークンは、サービスが発行する長い秘密の文字列で、あなたの道具がパスワードなしであなたのアカウントを使えるようにします。たとえば Cadeplay にゲームをアップロードするときに使います。パスワードと同じように扱ってください。.env ファイルに入れ、チャットやコードには決して貼らず、漏れたらサービスのコンソールで削除します。AI が文章の中で数えるトークンとは関係ありません。

もっと学ぶ

ゲームループ

原文の表記 · Game loop

ゲームが1秒間に何度もくり返す流れ。入力を読み、世界を更新し、画面を描きます。

ゲームループは、あらゆるゲームの心臓です。1周ごとにプレイヤーの入力を読み、位置・当たり判定・得点を更新して、新しい絵を描きます。1周でフレームが1枚できます。ループはエンジンが回してくれるので、私たちはその中で起こることを書きます。

もっと学ぶ

FPS(1秒あたりのフレーム数)

原文の表記 · FPS (frames per second)

ゲームが1秒間に新しい絵を何枚描くか。

FPS は、ゲームループが1秒間に何回終わって新しいフレームを見せるかを数えます。60 FPS なら16.7ミリ秒ごとに1枚で、なめらかに感じられます。だいたい30を下回ると、ゲームがカクつき始めます。重い描画や、更新の遅いコードが FPS を下げます。

もっと学ぶ

スプライト

原文の表記 · Sprite

キャラクター・コイン・弾のように、ゲームの中で動き回る小さな絵。

スプライトは、ゲームが毎フレーム、ある位置に描く2Dの画像です。歩くキャラクターは、よく1枚のスプライトシート(順に見せるとアニメーションになる絵の帯)で作られます。スプライトにはふつう、当たり判定に使うヒットボックスがついています。

もっと学ぶ

当たり判定

原文の表記 · Collision detection

ゲームの中の2つのものが触れたかを、ヒットボックスという見えない箱で毎フレーム確かめること。

当たり判定は、プレイヤーが足場に乗ったか、コインを拾ったか、攻撃に当たったかを決めます。いちばん簡単な方法は、スプライトごとに長方形(ヒットボックス)を持たせ、2つの長方形が重なっているかを調べることです。エンジンには、これを代わりにやってくれる物理システムがあります。

もっと学ぶ

デルタタイム

原文の表記 · Delta time

前のフレームから経った時間。どの端末でもゲームを同じ速さで動かすために使います。

画面によって書き換えの速さがちがうので、どのフレームも同じ時間がかかるわけではありません。速さにデルタタイム(dt)を掛けると、1フレームあたりの距離ではなく、1秒あたりの距離で動きます。これがないと、速いモニターではゲームが速くなり、遅いスマホでは遅くなります。

もっと学ぶ

ワークフロー

原文の表記 · Workflow

仕事を終わらせるための決まった手順の並び

ワークフローは、いつも同じ順番で進む手順のまとまりです。AI の設計では、ワークフローは前もって書かれた道筋どおりに進み、エージェントは次の一歩を自分で決めます。GitHub では、ワークフローは .github/workflows/ に置く YAML ファイルで、手順を自動で実行します。たとえば、テストを走らせたり、誰かがコメントしたときに Claude にイシューを直してもらったりします。

プライバシーポリシー

原文の表記 · Privacy policy

アプリがどんな個人情報を、なぜ集めるかを書いた公開ページ

プライバシーポリシーは、アプリやサイトがどんな個人情報を、何のために集め、だれと共有し、利用者がどう削除できるかを説明する公開ページです。アプリストアは公開の前にこのページのアドレスを求め、審査担当者はアプリが実際にすることと合っているかを確かめます。多くの国の法律でも必要とされています。

もっと学ぶ

Babylon.js

Web ブラウザーの中で動く無料の 3D ゲームエンジン

Babylon.js は、Web ページの中で動く 3D ゲームや 3D の場面を作るためのオープンソースのエンジンです。物理・アニメーション・照明・3D モデルの読み込みが最初から入っています。TypeScript で書かれていて、JavaScript からも使えます。ブラウザーがそのまま実行環境なので、プレイヤーはリンクを開くだけで、何もインストールせずにゲームを始められます。

もっと学ぶ

Construct

ブラウザーで使う、ほとんどコードなしの 2D ゲーム作成ツール

Construct は、Web ブラウザーの中で動く 2D ゲーム用のゲームエンジンです。コードを打つ代わりに、「イベントシート」でルールを組み立てます。これが起きたら、あれをする、という形です。もっと必要なときは JavaScript を足せます。作ったゲームは Web やほかのプラットフォーム向けに書き出せます。

もっと学ぶ

C++

ゲームエンジンやブラウザーの中で使われる、速くて歴史の長い言語

C++ は、前もって機械語に変換されるプログラミング言語なので、プログラムがとても速く動き、メモリを直接あつかえます。Unreal Engine のようなゲームエンジン、Web ブラウザー、多くの大きなゲームが C++ で書かれています。そのかわり難しく、メモリの扱いを間違えるとプログラムが落ちることがあり、身につけるのに時間がかかります。

もっと学ぶ

C#

Unity のゲームに使う、Microsoft のプログラミング言語

C#(「シーシャープ」と読みます)は、Microsoft が作ったプログラミング言語です。Unity でゲームのスクリプトを書く言語で、Windows のプログラムや Web サーバーにも使われます。メモリを自動で片付けてくれるので C++ より簡単ですが、それでも覚えるツールはたくさんあります。

もっと学ぶ

Dart

Flutter のアプリを書くための、Google のプログラミング言語

Dart は Google が作ったプログラミング言語です。Flutter のアプリは Dart で書くので、Dart を学ぶことが Flutter でスマホアプリを作る第一歩です。JavaScript や Java に似ていて、スマホ向けの速い機械語にも、Web 向けの JavaScript にも変換できます。

もっと学ぶ

Defold

Lua でスクリプトを書く、無料で軽いゲームエンジン

Defold は、主に 2D ゲーム用に作られた無料のゲームエンジンです。ビルドが小さいので、スマホや Web でもゲームがすぐに読みこまれます。ゲームのロジックは Lua で書きます。Colyseus などのサーバーが Defold 用の SDK を出しているので、ゲームサーバーのページに出てきます。

もっと学ぶ

Flutter

一つのコードでスマホ・Web・デスクトップのアプリを作る Google のツールキット

Flutter は、Google が出している無料のアプリ作成ツールキットです。アプリを Dart で一度書けば、同じコードから iPhone アプリ、Android アプリ、Web ページ、デスクトップのプログラムを作れます。画面の部品はすべてウィジェットで、ウィジェットをほかのウィジェットの中に入れて画面全体を組み立てます。

もっと学ぶ

Flame

Flutter の上に作られた無料の 2D ゲームエンジン

Flame は、Flutter の中で動くオープンソースの 2D ゲームエンジンです。ゲームループ、スプライト、当たり判定、入力の処理といった、Flutter だけではゲームに足りないものを足してくれます。ゲームのまわりのメニューは、ふつうの Flutter のウィジェットのままで作れます。2D 専用なので、3D ゲームをこれで作る計画は立てないでください。

もっと学ぶ

Godot

2D と 3D のゲームを作れる、無料のオープンソースエンジン

Godot は、だれでも無料で使え、売り上げにも料金がかからないゲームエンジンです。MIT ライセンスのオープンソースだからです。2D と 3D の両方のゲームを作れ、ゲームのコードは Python に似た言語の GDScript か C# で書きます。ふつうのノートパソコンでも動くほど軽いです。

もっと学ぶ

Go

サーバーでよく使われる、Google のプログラミング言語

Go(Golang とも呼びます)は Google で作られたプログラミング言語です。Go のプログラムは一つの実行ファイルにコンパイルされ、速く動き、たくさんの接続を同時にさばけるので、サーバーでよく使われます。Nakama のゲームサーバーは Go で書かれていて、自分で書いた Go のモジュールで機能を足せます。

もっと学ぶ

Haxe

一つのコードをほかのたくさんの言語に変換するプログラミング言語

Haxe はオープンソースのプログラミング言語で、そのコンパイラーは同じコードを JavaScript・C++・C# などに変換します。ゲーム開発者は、一つのゲームを Web・デスクトップ・スマホに出すためにこれを使います。Haxe 用の SDK を出しているサーバーがあるので、ゲームサーバーのページに出てきます。

もっと学ぶ

Lua

ゲームの中に入れやすい、小さなスクリプト言語

Lua は、プログラムが自分の中に入れて持ち歩ける、軽くて簡単なスクリプト言語です。ゲームエンジンやサーバーが Lua を組みこむと、プログラム全体をビルドし直さなくても、ゲームのルールを書いたり変えたりできます。Defold は Lua を使い、Nakama のサーバーは Go や TypeScript に加えて Lua のモジュールも受け付けます。

もっと学ぶ

Phaser

ブラウザーで遊ぶ 2D ゲーム用の無料の JavaScript フレームワーク

Phaser は、Web ブラウザーで動く 2D ゲームを作るためのオープンソースのフレームワークで、JavaScript か TypeScript で書きます。ゲームループを代わりに回し、スプライト・物理・音・入力を用意してくれるので、自分は毎フレーム何が起きるかだけを書けば済みます。初めての Web ゲームの多くがこれで作られています。

もっと学ぶ

PixiJS

ブラウザーで 2D の絵を速く描く JavaScript のライブラリ

PixiJS は、グラフィックスチップを使って Web ページに 2D の絵やスプライトをとても速く描くオープンソースのライブラリです。描くことしかしません。物理も音もゲームのルールも持っていないので、完全なゲームエンジンではなく描画用のライブラリです。ゲームはそうした部分を自分で足すか、Phaser のようなエンジンを使います。

もっと学ぶ

Unity

スマホ・PC・家庭用ゲーム機のゲームで広く教えられているゲームエンジン

Unity は、スマホゲームの大きな割合と、多くの PC・家庭用ゲーム機のゲームに使われているゲームエンジンです。エディターで場面を組み立て、ゲームのスクリプトは C# で書きます。Web(WebGL)を含むほとんどすべてのプラットフォームに書き出せるので、たくさんの講座で教えられています。とても小さな最初のゲームには重すぎます。

もっと学ぶ

Unreal Engine

高画質な 3D ゲームのための Epic Games のエンジン

Unreal Engine は Epic Games のゲームエンジンで、見た目がいちばん大事なときに選ばれます。本物のような照明や質感、広い 3D の世界が得意です。ゲームのコードは C++ で書くか、ブループリントで目で見ながら組み立てます。高性能なコンピューターが必要で、最初の小さなゲームには大きすぎます。

もっと学ぶ

ブループリント

原文の表記 · Blueprint

箱をつないでゲームのロジックを作る、Unreal Engine の方法

ブループリントは、Unreal Engine のビジュアルスクリプティングの仕組みです。コードを打つ代わりに、「キーが押されたとき」や「音を鳴らす」のような箱(ノード)を置き、そのあいだを線でつなぎます。C++ を書かずにゲームのロジックを作れますが、大きなブループリントの図は読みにくくなることがあります。

もっと学ぶ

glTF

3D モデルをやり取りするための標準のファイル形式

glTF は、Khronos Group が管理している 3D モデル用のオープンなファイル形式です。一つのファイルに形・質感・テクスチャー・アニメーションが入っていて、エンジンがすぐに読みこめるので、「3D の JPEG」とよく呼ばれます。.gltf(テキストと別のファイル)か .glb(全部が一つのバイナリファイル)の形で配られます。

もっと学ぶ

TypeScript

型を足した JavaScript。コードを実行する前に確かめられる

TypeScript は、JavaScript に型を足したものです。変数ごとにどんな種類の値を入れるかを書いておくと、プログラムを実行する前にチェッカーが間違いを知らせてくれます。ブラウザーが実行するのは JavaScript なので、TypeScript はまずふつうの JavaScript に変換されます。大きな Web アプリ、Babylon.js、多くのゲームサーバーが使っています。

もっと学ぶ

Rust

メモリの間違いの多くを防ぐ、速いプログラミング言語

Rust は、C++ と同じくらい速く動きながら、コンパイルするときにメモリの使い方を確かめるプログラミング言語です。そのため、プログラムが落ちる原因やセキュリティのバグの種類まるごとを、実行する前に止められます。サーバー、コマンドラインのツール、SpacetimeDB のモジュールのようなゲームのバックエンドに使われています。決まりが厳しく、覚えるのに時間がかかることで知られています。

もっと学ぶ

PHP

サーバーで Web ページを作るプログラミング言語

PHP は Web サーバーで動き、ブラウザーに送る前に HTML のページを作るプログラミング言語です。WordPress をはじめ、Web の大きな部分が PHP で動いていて、SONUB 自体も PHP(Laravel)のプログラムです。訪れた人には PHP のコードは見えず、それが作ったページだけが見えます。

もっと学ぶ

Vite

Web プロジェクトをすばやく始めてビルドするツール

Vite はフロントエンドのビルドツールです。すぐに動かせるプロジェクト(React、Vue など)を作り、保存するとすぐにページが更新される開発用サーバーを動かし、コマンド一つで、どの Web サーバーでも配れる最終ファイルを dist フォルダーに作ります。Node.js が必要です。

もっと学ぶ

Pyodide

Web ブラウザーの中で動く Python

Pyodide は、本物の Python インタープリターを WebAssembly に変換して、Web ページの中で動くようにしたものです。SONUB の Python の授業はこれを使っているので、何もインストールせずに自分のコンピューターでコードが動きます。ランタイムをダウンロードするので、最初の読みこみには少し時間がかかります。コンピューター上の Python のように、ふつうのネットワークサーバーを開いたり、バックグラウンドのサービスを動かしたりはできません。

もっと学ぶ

A/B テスト

原文の表記 · A/B testing

二つの版を別々のプレイヤーに見せて、どちらがよいかを調べること

A/B テストでは、プレイヤーをランダムに二つのグループに分けます。グループ A には今の版を、グループ B には価格やチュートリアルを変えた版を見せます。そして、次の日に戻ってきたプレイヤーの数のように、前もって決めておいた数を比べます。勘の代わりに測った結果で決められますが、違いに意味があると言えるだけのプレイヤーの数が必要です。

もっと学ぶ

年齢レーティング

原文の表記 · Age rating

ゲームの内容をもとにストアがつける年齢の制限

ゲームを公開する前に、ストアはコンテンツ調査を求めます。暴力・血・ギャンブル・知らない人とのチャットなどについての、はい/いいえで答える質問です。その答えで、ストアに表示される「12 歳以上」のような年齢レーティングが決まります。調査に答えていないのは、できあがったゲームを提出できないよくある原因で、答えが間違っていると、あとでゲームが取り下げられることもあります。

もっと学ぶ

Apache 2.0

特許もカバーする、制限のゆるいオープンソースのライセンス

Apache License 2.0 はオープンソースのライセンスです。だれでもコードを使い、変え、売り、共有できます。中身を公開しない商用の製品に入れてもかまいません。そのかわり、著作権とライセンスの表示を残し、変えたファイルには印をつけます。そのコードについて貢献者が持っている特許の利用も認めているので、企業に好まれる理由の一つになっています。

もっと学ぶ

アセット

原文の表記 · Asset

ゲームが使う画像・音・モデルなどのファイル

アセットは、ゲームを作っているコード以外のファイルです。画像、スプライト、効果音、音楽、3D モデル、フォント、ステージのデータなどです。ふつうはゲームの大きさのほとんどをアセットが占めます。AI で作ったものも含め、すべてのアセットに使う権利が必要なので、出す前にライセンスを確かめてください。

もっと学ぶ

バトルパス

原文の表記 · Battle pass

シーズンのあいだ、遊ぶと順にごほうびが開いていく仕組み

バトルパスは、数週間から数か月のシーズンのあいだ続くゲームのアイテムです。遊んだりチャレンジを達成したりするとポイントがたまり、ごほうびの段階が一つずつ開いていきます。ふつうは無料のコースと、ごほうびが多い有料のコースがあり、シーズンが終わると一緒に終わるので、プレイヤーが戻ってくる理由になります。

もっと学ぶ

コアループ

原文の表記 · Core loop

プレイヤーが何度もくり返す、短い一連の行動

コアループは、ゲームの中でプレイヤーが何度もくり返すことです。たとえば、障害物を跳びこえる → コインを集める → スピードを上げる。このループが楽しくなければ、まわりに何を足してもゲームは救えないので、最初に作って試します。これは設計の考え方で、毎フレーム画面を描くコードのゲームループとは別のものです。

もっと学ぶ

生態系(エコシステム)

原文の表記 · Ecosystem

一つの技術のまわりにあるツール・ライブラリ・人のすべて

技術の生態系とは、そのまわりに育つすべてのものです。ライブラリ、エディター、チュートリアル、できあいのアセット、フォーラム、質問に答えてくれる人たち。生態系が大きければ、たいていの問題にはどこかに答えがあります。若い生態系なら、自分で作ったり解決したりすることが多くなります。エンジンや言語を選ぶときの大きな理由になります。

もっと学ぶ

境界ケース

原文の表記 · Edge case

コードがよく壊れる、めったにない極端な状況

境界ケースとは、ありうる範囲のぎりぎりの端にある入力や状況です。空の名前、ちょうど 0 のスコア、保存中にスマホの電波が切れる、同じフレームで二つのキーを押す、などです。コードはふつうの場合には動いても、ここで壊れることが多いので、境界ケースを書き出して一つずつ試すとバグを早く見つけられます。AI は境界ケースを書き出すのが得意です。

もっと学ぶ

フレーム

原文の表記 · Frame

ループのたびに一枚描かれる、ゲーム画面の静止画

ゲームは、パラパラマンガのように静止画をすばやくたくさん描いて動きを見せます。その一枚一枚がフレームです。フレームごとに、ゲームは入力を読み、位置を更新し、画面を描きます。1 秒に 60 フレームなら、1 フレームに使える時間は約 16 ミリ秒です。フレームごとに決まった量だけものを動かすと、速い画面ではゲームが速くなってしまうので、デルタタイムを使います。

もっと学ぶ

バランス調整

原文の表記 · Balancing

ゲームが公平で楽しく感じられるよう、難しさ・ごほうび・数値を整えること

バランス調整とは、ゲームの数値を合わせることです。ジャンプの高さ、ステージの敵の数、ごほうびの量、アイテムの値段などです。少し変えただけで、ゲームが簡単すぎたり、難しすぎたり、不公平になったりします。AI はシミュレーションをして数値を提案できますが、ちょうどよく感じるかどうかは、実際に遊ぶ人が決めます。

もっと学ぶ

ゲームロジック

原文の表記 · Game logic

ゲームのルールを実行するコード

ゲームロジックは、何が起きるかを決めるコードの部分です。攻撃が当たったか、点数をどう数えるか、ステージがいつ終わるか、だれが勝つか。画面を描くことや音を鳴らすことは別の部分です。オンラインゲームでは、プレイヤーが自分の手元のゲームを書きかえてずるをできないように、サーバーがゲームロジックを実行することがよくあります。

もっと学ぶ

ライブにする

原文の表記 · Go live

アップロードしたビルドを、プレイヤーが実際に受け取る版に切りかえること

ゲームのプラットフォームでは、ビルドをアップロードすることと、それをライブにすることは別の二つの段階です。チェックを通ったビルドは、昇格させるまで待っています。その瞬間から、それがプレイヤーの受け取る版になり、プレイ用のリンクが開きます。段階を分けておくと、まずビルドを見て確かめられ、ロールバックすれば前のビルドに戻せます。

もっと学ぶ

ギルド

原文の表記 · Guild

ゲームの中でいっしょに遊ぶ、長く続くプレイヤーのグループ

ギルド(クランとも呼びます)は、プレイヤーがゲームの中で作って入るグループです。メンバー、リーダーのような役割、参加の申しこみ、グループチャットがあります。仲間のためにプレイヤーがまた戻ってくるきっかけになります。開発者にとってはゲームサーバーが保存して管理しなければならないコミュニティの機能なので、どのサーバーを選ぶかが大事になります。

もっと学ぶ

サーバーのフック

原文の表記 · Hook

組み込みの動作の前後に自分のコードを実行できる決まった場所

フックとは、選んだタイミングでコードを足せるように、プログラムが開けておく場所です。Nakama のゲームサーバーでは、すべての組み込みの呼び出しの前後にフックを掛けられます。たとえば、アカウントを作る前にプレイヤーの名前を確かめたり、マッチが終わったあとにごほうびをあげたりします。サーバー自体のコードを変えずに機能を広げられます。

もっと学ぶ

アプリ内課金

原文の表記 · In-app purchase

ストアを通して、アプリの中でアイテムや機能を買うこと

アプリ内課金は、アプリやゲームの中でする支払いです。コイン、広告なしの版、バトルパスなどを買います。スマホではストア自身の支払いの仕組みを通り、ストアが代金の一部を受け取ります。ストアはレシートを返すので、ゲームのサーバーはアイテムを渡す前にそれを検証しなければなりません。

もっと学ぶ

インスペクタ

原文の表記 · Inspector

動いている場面の中をのぞいて、値を変えられるウィンドウ

インスペクタはデバッグ用のツールで、動いているゲームやページの中のオブジェクトを一覧にし、位置・大きさ・色・物理の設定などのプロパティを見せてくれます。値を変えると、再起動しなくてもすぐに結果が見られます。Babylon.js、Unity、ブラウザーの開発者ツールにはどれもインスペクタがあります。

もっと学ぶ

インターフェース

原文の表記 · Interface

あるコードが用意すると約束した関数の一覧

プログラミングでのインターフェースは、何をどうやるかではなく、何ができるかを表します。入力と出力つきの関数の一覧です。その関数を持っているコードなら、どれでもその場所で使えます。Go では、Nakama のサーバーが型付きのインターフェースをモジュールに渡すので、正しく呼んでいるかをコンパイラーが確かめてくれます。

もっと学ぶ

リーダーボード

原文の表記 · Leaderboard

スコアの順にプレイヤーを並べた一覧

リーダーボードは、スコアやタイムなどの数でプレイヤーに順位をつけます。新しいプレイヤーにもチャンスがあるよう、毎日や毎週リセットするゲームが多く、サーバーは同点のときの順位の決め方を決め、にせのスコアを送るずるを見つけなければなりません。ゲームのクライアントが送るものは何でも書きかえられるので、スコアはサーバーで確かめるべきです。

もっと学ぶ

ライセンス

原文の表記 · License

コード・絵・データをどう使ってよいかを決めた条件

ライセンスは、コード・画像・音・データについてくる、書面での許可です。使ってよいか、変えてよいか、売ってよいか、そしてそのかわりに作者の名前を出すなど何をしなければならないかが書いてあります。ネットで見つけたからといって、使ってよいわけではありません。MIT や Apache 2.0 のようなオープンソースのライセンスは多くを認めていますが、それぞれに条件があります。

もっと学ぶ

LiveOps

公開後に、イベントやショップの変更、更新でゲームを運営すること

LiveOps(ライブ運営)とは、出したゲームを生かし続ける仕事です。週末のイベント、ショップの新しいアイテム、シーズン、バランスの変更、A/B テストなどを、新しいビルドを出さずに管理画面から変えることがよくあります。何年も続くゲームはこれに支えられていて、チームが自分で作らなくてすむよう LiveOps のツールを売っているバックエンドもあります。

もっと学ぶ

ローカライズ

原文の表記 · Localization

ゲームの文章や内容を、それぞれの言語と文化に合わせること

ローカライズは翻訳だけではありません。言葉のほかに、日付・数字・通貨・画面の配置(長くなる言語もあれば、アラビア語のように右から左に読む言語もあります)・文化に関わる細かい部分を、それぞれの市場に合わせます。AI はすばやく翻訳の下書きを作れますが、出す前にその言語を知っている人が意味・用語・口調を確かめるべきです。

もっと学ぶ

マッチメイキング

原文の表記 · Matchmaking

合うプレイヤーどうしを一つのマッチに集めること

マッチメイキングは、オンラインゲームがだれとだれをいっしょに遊ばせるかを決める仕組みです。マッチメーカーはマッチを待っているプレイヤーを集め、近い実力、地域、ping、ゲームモードなどのルールでグループにします。よいマッチメイキングは、マッチを公平にし、待ち時間を短くします。この二つの目標は引っぱり合います。

もっと学ぶ

メタ層

原文の表記 · Meta layer

マッチそのもののまわりにあるすべて:アカウント・フレンド・チャット・セーブ・ランキング

ゲームサーバーでのメタ層とは、実際のプレイの外にある機能のことです。アカウントとログイン、フレンド、ギルド、チャット、進み具合の保存、リーダーボード、ショップです。作るのが退屈で、気づかないうちに間違えやすいので、何か月もかけて自分で書くかわりに、それがもう入っているゲームサーバーを選ぶチームがたくさんあります。

もっと学ぶ

モジュール

原文の表記 · Module

プログラムに読みこむ、別のファイルやコードのまとまり

モジュールとは、ほかのコードが読みこんで使い回せるように、自分のファイルやパッケージに分けておいたコードです。Python では `import json` で json モジュールを読みこみます。Nakama や SpacetimeDB のようなゲームサーバーでは、自分のモジュールをアップロードしてゲームのルールを足します。出来の悪いモジュールは、それが動いているプログラムごと落としてしまうこともあります。

もっと学ぶ

ネイティブ

原文の表記 · Native

その機械自身の機械語として直接動くこと

ネイティブのコードは、動かすプロセッサーの機械語にコンパイルされていて、あいだにインタープリターや余分な層がないので、全速力で動きます。ネイティブアプリは iPhone など一つのプラットフォーム向けに作られます。ゲームサーバーでは、自分のロジックを同じプロセスの中でネイティブに動かすと速いですが、そこで落ちるとサーバー全体が止まります。

もっと学ぶ

NPC

プレイヤーではなく、コンピューターが動かすゲームのキャラクター

NPC(ノンプレイヤーキャラクター)は、ゲーム自身が動かすキャラクターです。店の人、クエストをくれる人、敵の見張りなどです。セリフは開発者が書き、ふるまいはコードのルール、多くは状態機械から生まれます。AI はたくさんの NPC のセリフをすばやく下書きできますが、それを読んで選ぶのはやはり人の仕事です。

もっと学ぶ

物理演算

原文の表記 · Physics

重力・衝突・動きを計算する、ゲームエンジンの部分

ゲームの物理とは、ものを現実の世界とだいたい同じように動かすコードです。重力でものが落ち、ぶつかると跳ねたり、すべったり、止まったりします。エンジンには物理の仕組みが入っているので、計算式を書くかわりに重さ・速さ・形を設定します。正確なシミュレーションではなく、気持ちよく感じるように調整した近似です。

もっと学ぶ

プレゼンス

原文の表記 · Presence

今だれがオンラインかという情報

プレゼンスは、それぞれのユーザーの今の状態です。オンライン、オフライン、マッチ中、離席中など。フレンド一覧やギルドの一覧は、これを使って名前の横に緑の点を出します。サーバーはすべての接続を見張り、変わったらほかの人に知らせなければなりません。ふつうは WebSocket を使います。人数が多くなると、見た目よりずっと難しくなります。

もっと学ぶ

QA

出す前に、製品に不具合がないか確かめること

QA(品質保証)は、プレイヤーより先に問題を見つける仕事です。ステージを通して遊び、変な入力を試し、いろいろな機械で試し、それぞれのバグを再現する方法を書き留めます。AI はテストのシナリオを書き出せます。たとえばセーブ機能を壊す 20 通りの方法です。でも、出してよいほどよいかどうかを決めるのは人の仕事です。

もっと学ぶ

レシート検証

原文の表記 · Receipt validation

アイテムを渡す前に、ストアでの購入が本物か確かめること

アプリ内課金のあと、ストアはゲームに、何を買ったかの証明であるレシートを渡します。ずるをする人は自分の機械でにせのレシートを作れるので、ゲームのサーバーはそれを Apple や Google のサーバーに送って、本物でまだ使われていないかを確かめ、そのあとで初めてアイテムを渡します。Nakama のようなゲームサーバーは、この確認を代わりにしてくれます。

もっと学ぶ

リデューサー

原文の表記 · Reducer

SpacetimeDB で、データベースの中で動いてテーブルを変える関数

SpacetimeDB では、データベースがそのままサーバーでもあります。モジュールをアップロードすると、その中のリデューサーと呼ばれる関数が、それぞれ一つのトランザクションとしてデータベースの中で動き、テーブルを変えます。クライアントは HTTP のエンドポイントの代わりにリデューサーを呼び、購読している人には変わった行がすぐに届きます。Redux のような Web のツールでは、この言葉は別の意味になります。

もっと学ぶ

ロールバック

原文の表記 · Rollback

出した版に問題があったとき、前の版に戻すこと

ロールバックは、前にうまく動いていた版に切りかえて、リリースを取り消すことです。プラットフォームは前のビルドを取っておくので、急いで直さなくても、壊れた更新を数秒で入れかえられます。戻るのはコードで、セーブデータのように悪い版がすでに変えてしまったデータは、別に直す必要があるかもしれません。

もっと学ぶ

決定論的ロールバック

原文の表記 · Deterministic rollback

遅れた入力が届いたら、ゲームを巻き戻して再生し直すこと

速いオンラインゲームで全員の入力を待っていたら、動きが重く感じられます。ロールバックでは、それぞれのゲームが手元にある入力で進み続け、遅れた入力が届いたら、そのフレームまで巻き戻して今まで一気に再生し直します。これができるのは、シミュレーションが決定論的なとき、つまり同じ入力ならどの機械でもいつもまったく同じ結果になるときだけです。

もっと学ぶ

RPC

別のコンピューターの関数を、手元の関数のように呼ぶこと

RPC(リモートプロシージャコール)を使うと、プログラムが別のコンピューターに、名前のついた関数をいくつかの引数で実行して結果を返すよう頼めます。Nakama のサーバーでは自分の RPC を登録し、ゲームはそれを名前で呼びます。MCP のメッセージは JSON-RPC 2.0 を使い、呼び出し一つひとつがメソッド名とパラメータの入った小さな JSON オブジェクトです。

もっと学ぶ

サーバーのティック

原文の表記 · Tick

ゲームサーバーが決まった間隔でマッチを更新する一歩

ゲームサーバーは世界をとぎれなく更新しているわけではなく、ティックごとに進みます。ティックのたびに、届いた入力を読み、ゲームのルールを当てはめ、新しい状態をプレイヤーに送ります。ティックレートが高いほど(たとえば 1 秒に 10 回ではなく 60 回)反応がよく感じられますが、処理とネットワークの通信量が増えます。

もっと学ぶ

ステートマシン

原文の表記 · State machine

一度に一つの状態にいて、ルールに従って次の状態に移る設計

ステートマシンは、あるものがとりうる状態と、そのあいだを移るルールを並べたものです。ゲームのキャラクターなら、待機・走る・ジャンプ・落下といった状態があり、「走っているときにジャンプが押された」らジャンプの状態に移ります。一度に有効な状態は一つだけなので、ジャンプとしゃがみが同時になるような、ありえない組み合わせを防げます。

もっと学ぶ

Steam

Valve が運営する PC ゲームのストア

Steam は、Valve が運営する PC ゲームのいちばん大きなストアです。開発者は毎年のアカウント料ではなくゲームごとに料金を払い、トレーラー・スクリーンショット・タグのついたストアページを作ります。発売前に集めたウィッシュリストがとても大事です。ゲームが出たときに、Steam がそのプレイヤーたちに知らせてくれるからです。

もっと学ぶ

購読

原文の表記 · Subscribe

あるデータが変わるたびに、自動で知らせてもらうよう頼むこと

購読とは、あるデータに関心があると登録しておき、何度も聞き直すかわりに、変わるたびにサーバーから送ってもらうことです。SpacetimeDB では、クライアントがクエリを購読すると、気にしている行が変わった瞬間に届きます。WebSocket のような、開いたままの接続が必要です。

もっと学ぶ

テストトラック

原文の表記 · Test track

まず選んだテスターだけにビルドを届ける配信の道

Google Play のリリースは、内部テスト、クローズドテスト、オープンテスト、製品版というトラックを通ります。テストトラックは、インストールできる本物のビルドを、リストに入れたテスターだけに届けるので、全員に届く前に問題を見つけられます。新しく作った個人の開発者アカウントは、製品版を申しこむ前に、12 人以上のテスターと 14 日間のクローズドテストをしなければなりません。Apple の TestFlight も同じような役目をします。

もっと学ぶ

UI

プログラムの、人が見てさわる部分

UI(ユーザーインターフェース)は、ユーザーが見て操作するすべてのものです。ボタン、メニュー、文字、アイコン、入力欄など。よい UI なら、次に何をすればよいかがすぐに分かります。UX(ユーザー体験)は、使ってみてどう感じるかという、もっと広い話です。ゲームでは、ゲームの世界の上に描かれるスコア・体力ゲージ・メニューが UI です。

もっと学ぶ

ウィジェット

原文の表記 · Widget

画面を作る部品の一つ

ウィジェットは、ユーザーインターフェースの使い回せる部品の一つです。ボタン、文字のラベル、リスト、カード、ほかのウィジェットを入れる箱などです。画面は、ウィジェットの中にウィジェットを入れて組み立てます。Flutter では画面の上のすべてがウィジェットで、Flame ではゲームのキャンバスがふつうの Flutter のウィジェットにまじって置かれます。

もっと学ぶ

ウィッシュリスト

原文の表記 · Wishlist

発売前に、ほしいゲームをプレイヤーが保存しておく一覧

Steam では、プレイヤーがこれから出るゲームをウィッシュリストに入れられます。ゲームが発売されたりセールになったりすると Steam が知らせるので、ウィッシュリストは最初の週の売り上げにつながります。よいストアページとトレーラーで発売前にウィッシュリストを集めることは、初めての開発者の多くが思うよりずっと大事です。

もっと学ぶ

アプリ審査

原文の表記 · App review

公開する前にストアがアプリを確かめること

アプリやゲームがストアに並ぶ前に、ストアはビルドを審査します。落ちないか、プライバシー・支払い・内容のルールを守っているか、ストアの説明文はうそがないか。Apple の App Review は厳しいことで知られています。審査には数日かかることがあり、ビルドが却下されることもあるので、時間を見ておきましょう。更新のたびにもう一度審査を通ります。

もっと学ぶ

Play Console

Android アプリを公開して管理する Google のサイト

Google Play Console は、開発者が Google Play にアプリを公開する場所です。一度だけ登録料を払って本人確認をし、アプリを作り、アップロード鍵で署名したビルドをアップロードし、ストアの掲載情報とデータセーフティの用紙を書き、テストトラックと審査を通します。売り上げやクラッシュの報告もここで見られます。

もっと学ぶ

アプリストア

原文の表記 · App store

アプリやゲームを探してインストールするオンラインのお店

アプリストアは、アプリを探し、買い、インストールする公式の場所です。iPhone なら Apple の App Store、Android なら Google Play、PC ゲームなら Steam です。ストアが支払いと更新を受け持ち、公開する前にアプリを一つずつ審査します。そのかわり、開発者は登録料と売り上げの一部を払います。パッケージマネージャーは、コードのアプリストアと呼ばれることもあります。

もっと学ぶ

Google Play

Google の Android 用アプリストア

Google Play は Android のアプリとゲームの中心となるストアで、いちばん多くのスマホに届きます。開発者は一度だけ登録料を払って、Play Console から公開します。ビルドはテストトラックと審査を通ります。新しい個人のアカウントは、最初の製品版を出す前に、本物のテスターとのクローズドテストを終えなければなりません。

もっと学ぶ

プロトタイプ

原文の表記 · Prototype

アイデアを試すために手早く作った、おおまかな版

プロトタイプは、「このジャンプは楽しいか?」のような一つの問いに答えるために手早く作るもので、捨てる前提です。仮の絵や散らかったコードでもかまいません。MVP とは違います。最低限遊べるゲームは知らない人が手に取って楽しめるものですが、プロトタイプは何かを教えてくれさえすれば十分です。

もっと学ぶ

バイナリ

原文の表記 · Binary

機械が読むバイトのファイル。ふつうはすぐ動かせるプログラム

開発者のふだんの会話では、バイナリとはコンパイルされたプログラムのことです。人が読める文字ではなく、コンピューターが直接実行するバイトのファイルです。「バイナリ一つで配布」とは、サーバー全体が、コピーして動かすだけのファイル一つになっているという意味です。WebAssembly のようなバイナリの形式は、人ではなく機械のためのものです。テキストエディターでバイナリを開くと、意味のない文字が並びます。

もっと学ぶ

実行ファイル

原文の表記 · Executable

プログラムとして実行できるファイル

実行ファイルは、ダブルクリックしたり名前を打ったりすると、オペレーティングシステムがプログラムとして起動できるファイルです。Windows ではふつう .exe で終わります。Linux や macOS では、実行権限のあるファイルならスクリプトも含めて何でも実行できます。たとえば Caddy は実行ファイル一つです。実行ファイルには有害なコードが入っていることがあるので、アップロードを受け付けないサイトがよくあります。

もっと学ぶ

Conventional Commits

コミットメッセージの決まり:feat: や fix: のように変更の種類を先に書く

Conventional Commits は、広く使われているコミットメッセージの書き方の決まりです。メッセージはそれぞれ、新しい機能なら feat:、バグの修正なら fix:、文書なら docs: のように種類とコロンで始め、そのあとに短い説明を書きます。形が決まっているので、ツールが履歴を読んで変更履歴やバージョン番号を作れます。

もっと学ぶ

Updates were rejected

自分の手元にないコミットがリモートにあるときの Git のメッセージ

ほかの人が先に同じブランチに push していて、自分の手元にないコミットがリモートにあると、git push は「Updates were rejected」で止まります。push するとその人の作業を捨ててしまうので、Git が断るのです。--force に手を伸ばさないでください。git pull --rebase で相手のコミットの上に自分のコミットを乗せ、コンフリクトがあれば直してから、もう一度 push します。

もっと学ぶ

Git の履歴

原文の表記 · History

次々に積み重なったコミットの記録

Git の履歴とは、リポジトリで作られたすべてのコミットのつながりで、どのコミットも一つ前のコミットを指しています。git log で新しい順に見られます。コミットメッセージが分かりやすいと、何か月たっても履歴が読めます。ほかの人がすでに pull した履歴を書きかえる(rebase や force push)と、その人の手元が壊れるので、書きかえるのはまだ push していない自分のコミットだけにします。

もっと学ぶ

main

リポジトリの基本のブランチによくつける名前

main は、ほとんどのリポジトリが基本のブランチにつける名前で、完成した、みんなで共有する版が入っています。GitHub は新しいリポジトリでこれを main と名づけます。古いプロジェクトでは master と呼ぶこともあります。チームでは、だれも main に直接コミットしません。ブランチで作業し、レビューのあとでプルリクエストからマージします。

もっと学ぶ

追跡

原文の表記 · Tracking

リポジトリの一部なので、Git がファイルの変更を見張っていること

追跡されているファイルとは、add してコミットしたので Git がすでに知っているファイルで、Git はそのすべての変更を知らせます。新しいファイルは、git add するまで追跡されません。すでにコミットしたファイルを .gitignore に足しても、追跡は止まりません。まず git rm --cached で追跡から外します。

もっと学ぶ

追跡ブランチ

原文の表記 · Tracking branch

ローカルのブランチと組になっているリモートのブランチ

ローカルのブランチは、リモートのブランチと結びつけられます。これを追跡ブランチ(upstream)と呼びます。git push -u origin main で一度この結びつきを作れば、あとはただの git push や git pull でも行き先が分かり、git status は何コミット進んでいるか遅れているかを教えてくれます。結びつきがないと、Git はどのリモートのブランチのことかを聞いてきます。

もっと学ぶ

GitLab

GitHub に似た Git のホスティングサービス

GitLab は、GitHub のように Git のリポジトリを置いてチームで作業するためのサービスです。プルリクエストを「マージリクエスト」と呼び、自分の CI/CD パイプラインを持っています。gitlab.com のサイトのほかに、会社が自分のサーバーに GitLab を入れることもできます。ブランチ・push・レビュー・マージというふだんの流れは同じです。

もっと学ぶ

GitHub Actions

リポジトリで何かが起きたときに作業を実行する、GitHub に組みこまれた自動化

GitHub Actions は、push、新しいプルリクエスト、コメント、決まった時刻などのイベントが起きたときに、GitHub のサーバーでワークフローを実行します。ワークフローは .github/workflows/ にある YAML ファイルで、インストール・テスト・デプロイといった手順を並べます。Claude Code や Codex もこの中で動かせます。たとえば、だれかがプルリクエストに @claude と書くと答えます。

もっと学ぶ

コードレビュー

原文の表記 · Code review

マージする前に、チームの仲間が変更を読んでコメントすること

コードレビューでは、自分の変更がメインのブランチに入る前に、ほかの人がそれを読みます。ふつうはプルリクエストの形です。レビューする人はバグ、分かりにくいコード、足りないテストを探し、コメントを残し、最後に承認します。小さなプルリクエストはていねいに見てもらえますが、大きなものはざっと流されがちです。AI のレビューも役に立ちますが、決めるのはやはり人です。

もっと学ぶ

プロジェクトのルート

原文の表記 · Project root

プロジェクトのいちばん上のフォルダー

プロジェクトのルートとは、プロジェクト全体が入っているいちばん上のフォルダーです。git init を実行した場所で、.gitignore、package.json、README.md、CLAUDE.md のようなファイルがふつうここにあります。ツールはここで自分の設定を探し、多くのコマンドはここから実行されることを前提にしています。

もっと学ぶ

Markdown

# や - のような記号で見出し・リスト・コードを書く、プレーンテキストの書き方

Markdown は簡単な文章の形式です。# で始まる行は見出しに、- はリストの項目になり、アスタリスク二つではさんだ文字は太字になります。ファイルはプレーンテキストのまま読め、きれいに整えて表示することもできます。README.md、CLAUDE.md、AGENTS.md、SKILL.md はどれも Markdown のファイルで、AI のチャットの答えもたいていこれで書かれています。

もっと学ぶ

読み取り専用

原文の表記 · Read-only

読めるけれど、何も変えられないこと

読み取り専用とは、見ることはできても変えられないという意味です。読み取り専用のファイルは編集できず、読み取り専用のディスクには書きこめません。AI のコーディングツールではいちばん安全なモードで、Codex の読み取り専用のサンドボックスでは、エージェントはファイルを読んだり害のないコマンドを実行したりはできますが、ファイルを編集できません。まだよく知らないプロジェクトで始めるのにちょうどよいモードです。

もっと学ぶ

標準ライブラリ

原文の表記 · Standard library

Python についてくる、インストールしなくても使えるモジュール

Python の標準ライブラリは、Python 本体といっしょにインストールされるたくさんのモジュールです。JSON の json、Web のリクエストの urllib.request、小さな Web サーバーの http.server、math、random など、まだまだあります。pip で何もインストールしなくてよいので、標準ライブラリだけを使うプログラムは、Python が動くところならどこでも動きます。

もっと学ぶ

設定ファイル

原文の表記 · Config file

プログラムが起動するときに読む設定が入ったファイル

設定ファイルには、ポート、フォルダー、モデルの大きさ、権限など、プログラムのふるまいを変える選択が入っています。コードではなくこのファイルを編集して、ふるまいを変えます。よく使う形式は JSON、YAML、TOML、.env です。API キーのような秘密は、みんなで共有する設定ファイルではなく、Git に入れないファイルに置きます。

もっと学ぶ

バグ

原文の表記 · Bug

プログラムがおかしな動きをする原因になる間違い

バグはプログラムの欠陥です。落ちたり、間違った結果を出したり、だれも意図しなかったことをしたりします。バグは、コードの間違い、思ってもみなかった入力、変わった条件から生まれます。直すにはまず確実に再現し、次に原因を見つけ(デバッグ)、最後に同じバグが戻ってこないようにテストを足します。

もっと学ぶ

ソフトウェアのテスト

原文の表記 · Software test

コードが思ったとおりに動くかを確かめるコード

テストは、決まった入力で自分のコードを動かし、出力が思ったとおりかを確かめる小さなプログラムで、成功か失敗のどちらかになります。変更のたびにテストをまとめて実行するので、何かを直したせいで別のところが壊れても、すぐに分かります。AI のコーディングツールでは、テストが安全ネットです。テストを渡して、テストが通るまでコードを変えるようエージェントに頼みます。

もっと学ぶ

再現

原文の表記 · Reproduce

同じ結果や問題を、わざともう一度起こすこと

再現とは、同じ条件でもう一度起こすことです。手順どおりに再現できるバグは、直してテストできます。「ときどき起きる」バグは直すのが大変です。AI の実験での再現性とは、ほかの人が同じコード・データ・乱数シードで同じ結果を得られることです。

もっと学ぶ

改行

原文の表記 · Newline

行を終わらせる見えない文字。\n と書く

改行は、文字を次の行に送る文字です。目には見えませんが、ファイルの中にあります。コードでは \n と書きます。Linux と macOS は行を \n で終えますが、Windows は \r\n を使うので、ツールによっては混乱します。HTTP は、ヘッダーの各行の終わりに \r\n を置き、本文の前に空の行を一つ入れます。

もっと学ぶ

node_modules

プロジェクトがインストールしたパッケージを npm が入れるフォルダー

npm install を実行すると、npm は package.json に書かれたすべてのパッケージと、それらが必要とするパッケージを、プロジェクトの node_modules フォルダーにダウンロードします。数百メガバイトにもなることがあります。コミットしてはいけません。.gitignore に入れましょう。だれでも package.json とロックファイルから npm install で作り直せるからです。

もっと学ぶ

オーバーヘッド

原文の表記 · Overhead

本来の仕事のほかにかかる、余分なメモリや時間

オーバーヘッドとは、本当の仕事の上に乗ってくる費用です。AI のモデルを動かすとき、メモリには重みだけでなく、KV キャッシュ、計算バッファ、ランタイム自身のオーバーヘッドも入ります。そのため、重みのファイルが 4 GB のモデルでも 5〜8 GB 以上必要になることがあります。オーバーヘッドを見こんでおかないと、計算の上では「入る」モデルが実際には入りません。

もっと学ぶ 重みとパラメータについて詳しく見る

計算バッファ

原文の表記 · Compute buffer

計算しているあいだに使う一時的なメモリ

計算バッファは、計算のとちゅうの結果を置いておくために、プログラムが取っておく作業用の場所です。言語モデルが動くとき、それぞれの層は次の層が必要とする数を作り、それがこのバッファに置かれます。重みと KV キャッシュに加えて必要になるので、モデルにはファイルの大きさより多くのメモリがいる理由の一つになっています。

もっと学ぶ 重みとパラメータについて詳しく見る

パース(構文解析)

原文の表記 · Parsing

文字やコードを読んで、その組み立てを読み取ること

パースとは、文章を読んで、プログラムが使える組み立てに変えることです。ブラウザーはページを描く前に HTML をパースして要素の木にし、シェルはコマンドラインをパースしてコマンドとその引数に分け、json.loads は JSON の文字を Python の値にパースします。パースエラーは、その文字が決まった形を守っていないという意味です。

もっと学ぶ

ブレークポイント

原文の表記 · Breakpoint

プログラムをその行で一時停止させる印

ブレークポイントは、プログラムがある行に来たら止まるようデバッガーに伝える印です。止まっているあいだにすべての変数を読め、そこから 1 行ずつ進めて、どこでおかしくなるかを正確に見られます。ブラウザーでは、開発者ツール → Sources を開き、行番号をクリックして置きます。

もっと学ぶ

入力イベント

原文の表記 · Input event

キーを押した、クリックしたなど、起きたことをプログラムに知らせるもの

入力イベントは、何かが起きたことを知らせる小さなメッセージです。キーが押された、マウスが動いた、指が画面にふれた、などです。オペレーティングシステムは装置からの生の信号をイベントに変えて、いちばん前のウィンドウの待ち行列に入れ、プログラムはイベントに一つずつ反応します。Web ページでは onclick のようなリスナーでイベントを扱います。

もっと学ぶ

roundtrip

原文の表記 · Roundtrip

変換して元に戻し、何も失われていないかを確かめること

roundtrip のテストは、データを一方に変換してからまた元に戻し、結果が元と同じかを確かめます。XSLM 講座での roundtrip: OK は、学習用の文章全体をトークン番号に encode し、decode したら完全に同じ文章に戻った、つまりトークナイザーが何も失っていないという意味です。1 文字でも変わればテストは失敗します。

もっと学ぶ

オブジェクト

原文の表記 · Python object

プログラムの値と、それに属する関数をまとめたもの

Python では、数、文字、リスト、辞書など、すべての値がオブジェクトです。オブジェクトには型があり、メソッドと呼ばれる自分の関数を持っていて、fruits.append("pear") のように点をつけて使います。自分だけのオブジェクトの種類はクラスで設計します。オブジェクトをファイルに保存するには、まず文字や数に変換する必要があります。

もっと学ぶ

append

リストの最後に値を一つ足すメソッド

list.append(value) は、リストの最後に新しい値を一つ入れ、そのリスト自体を変えます。None を返すので、fruits.append("pear") とそれだけで 1 行に書きます。fruits = fruits.append("pear") と書くと、fruits が None になってしまいます。いくつかの値をまとめて足すときは extend を使います。

もっと学ぶ

Python のクラス

原文の表記 · Class

データと関数をまとめてオブジェクトを作る、ひな形

クラスは、オブジェクトの種類を表します。それぞれがどんなデータを持ち、何ができるかです。class で一度書けば、そこから必要なだけオブジェクト(インスタンス)を作れ、それぞれが自分の値を持ちます。クラスの中の関数はメソッドで、オブジェクト自身を self として受け取ります。クラスは設計図なので、オブジェクトを作るまでは何も起きません。

もっと学ぶ

def

新しい関数を作る Python のキーワード

def は関数の定義を始めます。関数の名前、かっこの中の引数、コロンと続き、その下に 4 つの空白で字下げした本体を書きます。関数を定義しても、それだけでは実行されません。かっこをつけて呼んだときにだけ実行されます。値を返すには、中で return を使います。

もっと学ぶ

辞書のキー

原文の表記 · Key

辞書の中で値を探すための名前

辞書はキーと値の組を保存し、キーは値を探すときのラベルです。scores["math"] では "math" がキーです。同じキーは一つしかありません。すでにあるキーに新しい値を入れると、古い値は置きかわります。ないキーを求めると KeyError になりますが、.get() なら代わりに None を返します。

もっと学ぶ

FileNotFoundError

開こうとしたファイルがないときの Python のエラー

FileNotFoundError は、プログラムが探している場所にないファイルやフォルダーを求めたときに出ます。たとえば、間違ったフォルダーから open("data/train.txt") を実行した場合です。パスはスクリプトの場所ではなく、今いるフォルダーからの相対パスです。pwd で今いる場所を確かめ、ls でファイルを並べ、つづりと大文字・小文字を確かめましょう。

もっと学ぶ

HTTPServer

Python についてくる簡単な Web サーバー

HTTPServer は、Python の標準ライブラリ(http.server モジュール)にある小さな Web サーバーです。GET や POST に何を答えるかを決めるハンドラーのクラスを渡すと、リクエストを一つずつ処理します。XSLM のランナーのように、学習や手元のツールには十分ですが、たくさんの人が訪れる公開サイト向けには作られていません。

もっと学ぶ

len

項目や文字がいくつあるかを数える関数

len(x) は x の長さを返します。リストなら項目の数、文字列なら文字の数、辞書ならキーの数です。x そのものは変えません。位置は 0 から始まるので、リストの最後の項目は len(x) ではなく len(x) - 1 の位置にあることを覚えておきましょう。

もっと学ぶ

None

「ここには何もない」という意味の Python の値

None は「値がない」という意味の特別な値です。return のない関数は None を返し、dict.get() はないキーに対して None を返します。数が出るはずのところに None と表示されたら、たいてい return を忘れています。「is None」で確かめます。0 や空の文字列とは違うものです。

もっと学ぶ

range

ループのために数の並びを作る関数

range(start, stop, step) は、start から stop の手前までの数を作ります。stop は入りません。range(1, 11) は 1 から 10、range(5) は 0 から 4 です。いちばんよく使うのは for ループです。終わりの数が入らないことを忘れるのが、いちばんよくある間違いです。

もっと学ぶ

urlopen

HTTP リクエストを送って答えを読む Python の関数

urllib.request.urlopen(url) は Web のアドレスを開いてリクエストを送り、レスポンスを返します。その .read() で本文をバイトとして受け取れます。POST で JSON を送るときは Request オブジェクトを渡します。サーバーにつながらなかったり、エラーコードが返ってきたりすると、にせの答えを返すのではなくエラーを出します。標準ライブラリの一部なので、何もインストールしなくて済みます。

もっと学ぶ

else

if の条件が偽のときに実行される分かれ道

else は if 文に二つ目の道を作ります。条件が真なら if のブロックが、そうでなければ else のブロックが実行されます。elif(else if)は、そのあいだで別の条件を確かめます。else は自分では条件をとらず、コロンで終わり、その下の行は if のブロックと同じように字下げします。

もっと学ぶ

IndentationError

行の字下げが正しくないときの Python のエラー

IndentationError は、行の始めの空白が Python の思っている形と合わないという意味です。コロン(if、for、def)のあとのブロックが字下げされていないか、同じブロックの行で空白の数が違っています。Python はかっこの代わりにインデントを使うので、これが大事なのです。1 段につき空白 4 つを使い、タブと空白をまぜないようにしましょう。

もっと学ぶ

print

値を画面に表示する Python の関数

print() は値を標準出力、ふつうは画面に書き、最後に改行します。プログラムが何をしているかを見るいちばん手軽な方法です。表示するだけなので、結果を表示しても return しない関数は None を返します。MCP サーバーのように標準出力でやり取りするプログラムでは、余計な print がメッセージを壊します。ログは stderr に書きましょう。

もっと学ぶ

return

関数が結果を返すときに使うキーワード

return は関数を終わらせ、呼び出したコードに値を渡します。そのため、結果をとっておいたり、さらに計算に使ったりできます。return のない関数は None を返します。return と print は違います。print は値を画面に見せるだけで、return は値を次に渡します。

もっと学ぶ

assert

条件が偽ならプログラムを止める、確認の 1 行

assert 条件 は、条件が真なら何もせず、偽なら AssertionError を出してその行でプログラムを止めます。「ここはこうでなければならない」とすばやく書いておく方法です。たとえば、トークナイザーが元の文章を返すことや、これから置きかえる文字が本当にあることを確かめます。-O をつけて実行すると Python は assert を飛ばすので、本番のプログラムが頼りにする確認には使わないでください。

もっと学ぶ

Android App Bundle

アプリを公開するために Google Play にアップロードする .aab ファイル

Android App Bundle(.aab)は、Google Play にアップロードするパッケージです。アプリのコードとリソースがすべて入っていて、Google Play はそこから、それぞれのスマホに合った小さなインストール用ファイルを作ります。Google Play の新しいアプリは、昔ながらの .apk ファイルではなく、バンドルでアップロードしなければなりません。

もっと学ぶ

アップロード鍵

原文の表記 · Upload key

Play にアップロードする前に、アプリに署名する秘密の鍵

Google Play は、新しい版がすべて同じ開発者から来たものかを確かめます。アプリのバンドルにアップロード鍵で署名すると、Google がその署名を確かめ、自分のアプリ署名鍵でもう一度署名します。鍵のファイルとパスワードはプロジェクトの外に置き、バックアップをとり、決してコミットしたり人に渡したりしないでください。なくしたら、Play Console で Google にリセットを頼まなければなりません。

もっと学ぶ

コード署名

原文の表記 · Code signing

アプリが本当にあなたから来たことを証明するデジタルの封印

アプリを公開する前に、秘密の鍵でアプリに署名します。署名があると、ストアとスマホは二つのことを確かめられます。だれがアプリを作ったか、そして署名したあとにだれもアプリを変えていないかです。Google Play はアップロード鍵を使い、Apple は署名用の証明書とプロファイルを使います。Xcode は自動署名でこれを代わりにやってくれます。署名に関するアップロードのエラーのほとんどは、違う鍵やチームを選んでいるという意味です。

もっと学ぶ

プロビジョニングプロファイル

原文の表記 · Provisioning profile

署名したアプリをインストールして動かすことを許す Apple のファイル

プロビジョニングプロファイルは、あなたのチーム、アプリのバンドル ID、署名用の証明書、そしてテストのときはアプリを動かしてよい機械を一つに結びつけます。iPhone は、プロファイルが合わないアプリを動かしません。自動署名をオンにしておけば、Xcode がプロファイルを作って更新してくれます。画面にはただ「プロファイル」と出ることがありますが、ユーザーのプロフィールとは関係ありません。

もっと学ぶ

バンドル ID

原文の表記 · Bundle ID

com.company.app のような、アプリにただ一つの名札

Apple のアプリにはどれも、com.example.notes のように Web のアドレスを逆にした形のバンドル ID があります。App Store で同じバンドル ID を持つアプリは二つとなく、これが Xcode のプロジェクト、署名のプロファイル、App Store Connect の記録を結びつけます。ビルドを一度アップロードしたら変えられないので、よく考えて選びましょう。Android では同じ考え方のものをアプリケーション ID と呼びます。

もっと学ぶ

App Store Connect

App Store のアプリを登録して管理する Apple のサイト

App Store Connect は、iPhone アプリが公開の前もあとも置かれている場所です。ここでバンドル ID・名前・スクリーンショットとともにアプリの記録を作り、プライバシーの詳細を書き、Xcode がアップロードしたビルドを見て、TestFlight のテスターを招待し、アプリを App Review に提出します。Google Play Console にあたる Apple のサイトです。

もっと学ぶ

Apple Developer Program

App Store で公開するために必要な Apple の有料会員

アプリを App Store に出したり、TestFlight でテスターに渡したりするには、自分の Apple アカウントで Apple Developer Program に参加します。会費は毎年かかり(多くの国で個人は 99 米ドル)、App Store Connect、署名用の証明書、ベータ版のツールが使えるようになります。参加しなくても Xcode で自分の iPhone にアプリを作って動かすことはできますが、公開はできません。

もっと学ぶ

TestFlight

公開の前にテスターへ iPhone アプリを渡す Apple のサービス

App Store Connect にアップロードしたビルドは、どれも TestFlight に送れます。テスターは無料の TestFlight アプリを入れ、招待を受けて、ふつうのユーザーより先にビルドを試します。外部のテスター向けのビルドは先に短い審査を受け、どのビルドも 90 日で期限が切れます。テスターの報告を直し、ビルド番号を上げて、もう一度アップロードします。

もっと学ぶ

Xcode

iPhone や Mac のアプリを作る Apple の無料アプリ

Xcode は、Apple の機械向けのアプリを作る公式のツールです。Mac でしか動かず、Mac App Store から無料で手に入ります。Flutter や React Native でアプリを書いても、最終的な iPhone のビルドは、Xcode かそのコマンドラインツールを通して署名・アーカイブ・アップロードされます。iPhone のシミュレーターも入っています。

もっと学ぶ

Xcode のアーカイブ

原文の表記 · Archive

アプリをアップロード用のリリースビルドにまとめる Xcode の段階

アーカイブとは、iPhone アプリのリリース版を、ビルドして署名し、一つのパッケージにまとめたものです。Xcode で Product → Archive を選び、続いて Distribute App で App Store Connect にアップロードします。アップロードのたびに、ビルド番号を前より大きくしなければなりません。この言葉は、古いファイルをしまっておくこととは関係ありません。

もっと学ぶ

リリースビルド

原文の表記 · Release build

ストアで公開するために作る、最適化した最終のビルド

開発しているあいだ、アプリはデバッグビルドとして動きます。遅く、大きく、確認用のツールがたくさん入っています。リリースビルドはそれらのツールを外し、コードを最適化し、自分の鍵で署名したもので、ユーザーがストアからインストールする版です。バグの中にはリリースビルドでしか出ないものもあるので、アップロードする前に必ずリリースビルドで試しましょう。

もっと学ぶ

ストアの掲載情報

原文の表記 · Store listing

ストアに表示される、アプリの名前・説明・スクリーンショット

ストアの掲載情報は、インストールする前に人が見るページです。アプリの名前、短い説明と詳しい説明、アイコン、スクリーンショット、カテゴリー、プライバシーポリシーへのリンクがあります。Play Console や App Store Connect で書きこみ、審査する人は、それがアプリの実際の動きと合っているかを確かめます。誤解をまねく掲載情報は、アプリが却下されるよくある理由の一つです。

もっと学ぶ

データセーフティ

原文の表記 · Data safety form

アプリがどんなデータを集めるかを申告する Play Console の用紙

Google Play は、すべてのアプリにデータセーフティの用紙を書くよう求めます。どんな種類のユーザーデータを集めたり共有したりするか、何のためか、データを暗号化しているか、削除できるか、です。答えは、ストアのアプリのページでユーザーに表示されます。外部のライブラリが集めるものも含めて、アプリの実際の動きとプライバシーポリシーに合っていなければなりません。

もっと学ぶ

バージョンコード

原文の表記 · Version code

アプリをアップロードするたびに上げなければならない内部の番号

人に見せるバージョン名(1.2.0 など)のほかに、アプリのビルドには、ストアが使う整数がついています。Android ではバージョンコード、iPhone ではビルド番号です。アップロードのたびに前より大きな番号にしなければならず、そうでないとストアに断られます。Flutter では、pubspec.yaml の version の行の + のあとの数です。

もっと学ぶ

pubspec.yaml

Flutter アプリの設定ファイル:名前・バージョン・パッケージ

Flutter や Dart のプロジェクトにはどれも、ルートに pubspec.yaml ファイルがあります。アプリの名前、バージョン(バージョン名とビルド番号を + でつないだもの)、使っているパッケージ、画像やフォントなどのアセットが書かれています。パッケージの一覧を編集したら flutter pub get を実行します。YAML で書かれているので、インデントが大事です。

もっと学ぶ

React Native

React と JavaScript でスマホアプリを作るフレームワーク

Meta が作った React Native を使うと、React のコンポーネントの書き方で JavaScript(か TypeScript)を使ってスマホアプリを一度書き、Android と iPhone の両方で動かせます。Web ページを箱に入れただけのものとは違い、本物のネイティブのボタンやリストを描きます。Flutter と並ぶ、いちばん人気のある二つのクロスプラットフォームの選択肢の一つです。

もっと学ぶ

iOS

iPhone のオペレーティングシステム

iOS は、Apple が作った、すべての iPhone を動かしているソフトウェアです。ほかのスマホの多くを Android が動かしているのと同じです。アプリはシステムごとに別々にビルドするので、ストアは iOS 用のビルドと Android 用のビルドを求めます。iPhone アプリは Mac の Xcode でビルドし、App Store か TestFlight でインストールします。

もっと学ぶ

バインディング

原文の表記 · Binding

ある言語から別の言語のライブラリを呼べるようにするつなぎのコード

llama.cpp のように速いライブラリの多くは、C や C++ で書かれています。バインディングはそうしたライブラリを包んで、Python・Dart・JavaScript のような別の言語から、まるでその言語で書かれたように呼べるようにします。重い仕事は、元の速いコードがそのまま実行します。バインディングがライブラリより古いと、新しい機能が使えないことがあります。

もっと学ぶ

アプリに組み込む

原文の表記 · Embed

ファイルやモデルをアプリの中に入れて、いっしょに配ること

組み込むとは、何かをアプリの中に詰めて、サーバーから取ってこなくても使えるようにすることです。小さな言語モデルをランナーといっしょにスマホのアプリに組み込めば、オフラインでも動きます。単語や文を表す数の並びである「埋め込み(エンベディング)」とは別の言葉です。

もっと学ぶ

ミドルウェア

原文の表記 · Middleware

リクエストと本来の処理のあいだに入って、手順を一つ足すコード

ミドルウェアは、本来のコードが動く前(または後)に、すべてのリクエストや手順が通る層です。本来のコードが知らないうちに、ログインを確かめたり、ログを書いたり、長いコンテキストを短くしたり、危ないことを止めたりできます。Laravel のような Web フレームワークはログインにミドルウェアを使い、エージェントのハーネスはモデルを呼ぶたびにそのまわりで使います。

境界値

原文の表記 · Boundary value

合格点ちょうどのような、限界ぴったりのテストの値

バグはルールの端にいちばん隠れています。60 点以上で合格にするプログラムなら、30 と 90 だけでなく、59、60、61 を試します。> のつもりで >= と書いた間違いは、ちょうど 60 のときにしか表れません。空の入力、0、許される最大の数も境界値です。

flush

ためておいた出力を、待たずにすぐ送り出すこと

手間を省くため、プログラムは表示するものをバッファにためて、まとめて送り出します。MCP のクライアントのように別のプログラムが 1 行ずつ待っていると、その遅れが固まったように見えます。Python では print(..., flush=True) でその行をすぐ送り出せます。これがないと、バッファがいっぱいになるかプログラムが終わるまで出力が出てこないことがあります。

もっと学ぶ

vendor フォルダー

原文の表記 · vendor folder

ツールがプロジェクトのためにダウンロードした外部のコードを置くフォルダー

パッケージのツールは、ほかの人が書いたコードを専用のフォルダーに置きます。PHP の Composer は vendor/、npm は node_modules/ を使います。次のインストールで上書きされるので、そこにあるファイルは決して編集しません。代わりに、パッケージの一覧でバージョンを変えます。だから AI エージェントへのルールには「vendor/ にはさわらない」とよく書かれています。

elif

Python の「else if」:最初の条件が外れたら別の条件を確かめる

Python では、if が条件を確かめ、elif(else if の略)は前の条件がすべて偽だったときだけ次の条件を確かめ、else が残りすべてを受け止めます。Python は上から下へ進み、最初に真になった分かれ道だけを実行するので、いちばん細かい条件を先に置きます。どの行もコロンで終わり、その下のコードは字下げします。

もっと学ぶ

KeyError

辞書にないキーを探したときの Python のエラー

辞書はキーで値を探します。scores["music"] のように、ないキーを求めると、プログラムは KeyError とそのキーを出して止まります。まずつづりと大文字・小文字を確かめましょう。キーがないのがふつうのことなら、scores.get("music", 0) を使います。失敗するかわりに、決めておいた値を返します。

もっと学ぶ

ValueError

型は合っているけれど、中身が使えない値のときの Python のエラー

ValueError は、関数が正しい種類の値を受け取ったけれど、それが使えない値だったという意味です。int("abc") は文字を受け取りますが、数を表す文字ではありません。NumPy では、配列の形が合わないときにも出ます。たとえば a @ b に、内側の大きさが違う行列を渡したときです。メッセージの最後の行を読み、値やその .shape を表示してみましょう。

もっと学ぶ

ModuleNotFoundError

Python のエラー「No module named …」:パッケージがインストールされていない

Python がパッケージを見つけられないと、import numpy は No module named 'numpy' で失敗します。たいていはインストールされていないか、別の Python や別の仮想環境にインストールされています。プロジェクトの venv をオンにし、python3 -m pip install numpy でインストールし、同じ python3 でプログラムを実行しましょう。

もっと学ぶ

NameError

定義していない名前を使ったときの Python のエラー

NameError: name 'x' is not defined は、Python が知らない変数や関数の名前に出会ったという意味です。よくある原因は、打ち間違い、大文字・小文字の違い、変数を決める行より前でその変数を使ったこと、import の忘れです。Python は名前を正確に読むので、Score と score は別のものです。

もっと学ぶ

pytest

Python のテストを見つけて実行するツール

pytest はプロジェクトのすべてのテストを実行し、どれが通ってどれが失敗したかを報告します。test_*.py という名前のファイルと、名前が test_ で始まる関数を探し、それぞれのテストはふつうの assert で結果を確かめます。AI エージェントに「変更のたびに python -m pytest を実行する」というルールを渡すと、エージェントが自分の仕事を確かめられます。

もっと学ぶ

import

モジュールを読みこんで使えるようにする Python の文

Python は、最初はわずかな組み込み関数しか持っていません。ほかのものはすべてモジュールの中にあります。import re で正規表現のモジュールを読みこみ、そのあとで re.search(...) のようにその関数を呼びます。from math import sqrt なら、名前を一つだけ直接取りこみます。Python についてくるモジュールはいつでも動きますが、それ以外はまず pip でインストールしなければなりません。

もっと学ぶ

raw 文字列

原文の表記 · Raw string

r"…" と書く、バックスラッシュをそのまま残す Python の文字列

ふつうの Python の文字列では、バックスラッシュは特別な文字の始まりです。"\n" は改行、"\b" はバックスペースです。r"\b\d+" のように前に r をつけると、すべてのバックスラッシュが打ったとおりに残ります。正規表現はバックスラッシュだらけなので、パターンはいつも raw 文字列で書くくせをつけましょう。

もっと学ぶ

PyPI

Python Package Index、Python のパッケージの公開ストア

PyPI(pypi.org)は、pip がパッケージをダウンロードしてくる場所です。だれでも公開できるので、1 文字だけ違うパッケージの名前がわなのこともあります。新しいものをインストールする前に、正確な名前、作者、ダウンロード数を確かめましょう。Node.js にとっての npm レジストリと同じ役目を、Python で果たしています。

もっと学ぶ

requirements.txt

プロジェクトに必要な Python のパッケージとバージョンを並べたファイル

requirements.txt には、Python のプロジェクトが使うすべてのライブラリが、ふつうは numpy==2.1.3 のように固定したバージョンつきで書かれています。これがあれば、だれでもコマンド一つで同じ環境を作り直せます。新しいバージョンでふるまいが変わり、昨日まで動いていたコードが壊れることがあるので、バージョンの固定が大事です。

もっと学ぶ

データ型

原文の表記 · Data type

整数・小数・文字のような、値の種類

すべての値にはデータ型があり、型によってその値で何ができるかが決まります。Python では、3 は int、3.0 は float、"3" は str、True は bool です。文字と数は足せないので "3" + 4 は失敗します。まず int("3") で変換します。お金や浮動小数点のように、正確さのためにも正しい型を選ぶことが大事です。

もっと学ぶ

console.log

値を表示する JavaScript の関数

console.log は、渡したものを何でも表示します。ブラウザーでは開発者ツールの Console に文字が出て、Node.js ではターミナルの標準出力に出るので、ほかのプログラムの出力と同じようにパイプでほかのコマンドに渡せます。デバッグ中に変数に何が入っているかを見る、いちばん手軽な方法です。

もっと学ぶ

JavaScript エンジン

原文の表記 · JavaScript engine

ブラウザーや Node.js の中で JavaScript を実行するプログラム

JavaScript エンジンは JavaScript のコードを読み、コンピューターが実行できる命令にすばやく変えます。Chrome と Node.js は Google の V8 エンジンを共有していて、Firefox は SpiderMonkey、Safari は JavaScriptCore を使います。Node.js は、V8 をブラウザーから取り出して、ページを描くかわりにファイルを読んだりネットワークを使ったりする道具を足したものです。

もっと学ぶ

process.argv

Node.js のスクリプトを起動したときの言葉の一覧

process.argv は、Node.js のスクリプトを起動したコマンドラインの配列です。0 番目は node のパス、1 番目はスクリプトのパスで、2 番目からが打ちこんだ引数です。つまり node greet.js Mina なら、process.argv[2] に "Mina" が入ります。どの項目も文字なので、数は Number() で変換します。

もっと学ぶ

npm audit

インストールしたパッケージに既知のセキュリティの問題がないかを調べる npm の検査

npm install のあと、npm は短いセキュリティ検査(audit)を行い、インストールしたパッケージのうち既知の脆弱性を持つものがいくつあるか、どれくらい深刻かを報告します。npm audit で詳しく見られ、npm audit fix はバージョンの決まりを壊さない範囲でアップグレードします。すべての警告が自分のプロジェクトに関係するわけではありませんが、high と critical のものは読みましょう。

もっと学ぶ

@latest

「いちばん新しく公開された版」を意味する npm のタグ

パッケージ名のあとに @latest をつけると、今 latest の印がついている版を npm に求めます。npm install -g firebase-tools@latest はグローバルのツールを更新し、npx create-vite@latest は、キャッシュに残った古いものではなく、いちばん新しいスターターのツールを使うようにします。prettier@3 のように、決まったバージョンを書くこともできます。

もっと学ぶ

npm prefix

グローバルのパッケージをどこにインストールするかを決める npm の設定

npm の prefix は、グローバルにインストールしたパッケージとそのコマンドを置くフォルダーです。/usr/local のようなシステムのフォルダーを指していると、権限がないので npm install -g は EACCES で失敗します。sudo を使うかわりに、nvm を使うか、prefix を自分のホームフォルダーの中に移し、その bin フォルダーを PATH に足しましょう。

もっと学ぶ

npm レジストリ

原文の表記 · npm registry

npm がダウンロードしてくる JavaScript のパッケージのオンラインストア

npm レジストリ(registry.npmjs.org)には、公開された何百万もの JavaScript のパッケージがあります。npm install や npx はそこからパッケージを取ってきて、キャッシュにコピーを残します。だれでも公開できるので、実行する前にパッケージの名前、作者、ダウンロード数を確かめましょう。パッケージのストアであって、Git のリポジトリではありません。

もっと学ぶ

.nvmrc

プロジェクトが使う Node.js のバージョンを書いたファイル

.nvmrc ファイルはプロジェクトのフォルダーにあり、22 のような Node.js のバージョンが 1 行だけ書いてあります。プロジェクトを開いた人はだれでも nvm use を実行すれば同じバージョンになるので、「自分のコンピューターでは動くのに」という問題が減ります。数を書かずに nvm install を実行すると、ファイルに書かれたバージョンをインストールします。

もっと学ぶ

パッケージマネージャー

原文の表記 · Package manager

ソフトウェアを探し、インストールし、更新し、削除するツール

パッケージマネージャーは、コマンドを打って使うアプリストアです。プログラムを、それが必要とするものといっしょにダウンロードし、バージョンを管理し、きれいに削除します。オペレーティングシステムには専用のもの(Alpine の apk、Ubuntu の apt、macOS の Homebrew、Windows の winget)があり、言語にもそれぞれのもの(JavaScript の npm、Python の pip)があります。

もっと学ぶ

スキャフォールディング

原文の表記 · Scaffolding

新しいプロジェクトの最初の骨組みを自動で作ること

スキャフォールディングのツールは、いくつか質問をしてから、新しいプロジェクトに必要なフォルダー、設定ファイル、サンプルのコードを作ります。そのため、最初から動くものを土台に始められます。npx create-vite@latest や flutter create がよくある例です。作られたファイルは出発点にすぎないので、自由に変えたり消したりします。

もっと学ぶ

キャレット(^)のバージョン範囲

原文の表記 · Caret (^) version range

^4.17.21 は「この版か、互換性のあるもっと新しい版」という意味

npm のバージョンは major.minor.patch の三つの部分からできています。package.json の ^4.17.21 のようなキャレットは、4.17.21 から 5.0.0 の手前までのどの版でも認めます。新しいメジャー番号では何かが壊れるかもしれないからです。実際にインストールされた正確な版は package-lock.json に書かれ、npm ci はまさにその版をインストールします。

もっと学ぶ

--depth 1

履歴ではなく、いちばん新しい版だけをダウンロードする git clone

ふつうの git clone は、プロジェクトのこれまでのすべてのコミットをコピーします。git clone --depth 1 は最後の一つだけを取ってくるので、ずっと速く小さくすみ、コードを読んだり動かしたりしたいだけのときにぴったりです。そのかわり、git fetch --unshallow で残りを取ってくるまで、古いコミットを見たり戻ったりはできません。

もっと学ぶ

ハッシュ

原文の表記 · Hash

中身から計算した短い指紋。中身が変われば値も変わる

ハッシュ関数は、どんな量のデータでも、決まった長さの短い文字列に変えます。同じ入力からはいつも同じハッシュが出て、1 文字でも変えるとまったく違うハッシュになります。そのため、ファイルが変わったかどうかがすぐに分かります。Git はすべてのコミットをハッシュで名づけるので、コミットハッシュ一つがコードのただ一つの版を指します。

プレーンテキスト

原文の表記 · Plain text

文字だけの文章 — フォントも色も隠れた書式もない

プレーンテキストのファイルには文字しか入っていません。だから、コード・HTML・設定ファイルはプレーンテキストで保存しなければなりません。ワープロは隠れた書式を足してコードを壊すので、テキストエディットでは先に フォーマット → 標準テキストにする を選びます。セキュリティの話では、HTTPS ではなく HTTP のときのように、暗号化されていないデータのことも平文(plaintext)と呼びます。

ロジック

原文の表記 · Logic

プログラムが判断して動くときに従うルールと手順

プログラムのロジックとは、その判断の仕組みです。どんな順で物事が起き、どの条件を確かめ、それぞれの場合に何が起きるか。「ゲームロジック」は、だれが点を取ったか、いつラウンドが終わるかを決めます。「ツールのロジック」は、ツールが入力をどう扱うかを決めます。人工知能をロジックの機械と呼ぶのは、気持ちや意図なしに、計算された手順に従うという意味です。

権限

原文の表記 · Permission

人やプログラムが読む・変える・実行することを許されている範囲

権限とは、何かをする権利です。ファイルを読む、変える、コマンドを実行する、カメラを使う、だれかの代わりに投稿する、などです。ファイルには権限があり、スマホのアプリは権限を求め、AI エージェントはあなたから権限を受け取ります。どのフォルダーを編集してよいか、どのコマンドを聞かずに実行してよいか、です。仕事に必要なぶんだけを渡しましょう。あとから権限を足すほうが、起きた被害を元に戻すより簡単です。

リンター

原文の表記 · Linter

コードの間違いやルール違反を自動で見つけるツール

リンターはコードを実行せずに読み、バグになりそうなところや書き方の問題を指摘します。一度も使われない変数、閉じていない引用符、危ない書き方などです。これを実行することをリント(lint)と言い、npm run lint のように使います。機械が合格か不合格かをはっきり出すので、テストとリントは、AI エージェントが一人で作業するときのよいゴールになります。リンターは問題を見つけ、フォーマッターは見た目の並びを整えるだけです。

もっと学ぶ

フォーマッター

原文の表記 · Formatter

コードの見た目を一つの決まったスタイルに書き直すツール

フォーマッターは、空白、改行、引用符、インデントを書き直して、だれが(あるいは何が)書いたかにかかわらず、プロジェクトのすべてのコードを同じ見た目にします。コードがすることは変えません。Claude Code のフックなどで編集のたびに自動で実行すると、AI が書いたコードもきれいに保たれ、diff のレビューも楽になります。

もっと学ぶ

Prettier

JavaScript・CSS・HTML・Markdown のための人気のフォーマッター

Prettier は、言い争うような設定がほとんどないまま、コードを一つのそろったスタイルに整える npm のパッケージです。ふつうはプロジェクトごとに開発用の依存パッケージとしてインストールし、npx で実行します。--write はファイルを書きかえ、--check は整っていないファイルを報告するだけなので、自動の確認に向いています。

もっと学ぶ

長期サポート版

原文の表記 · LTS

LTS:何年も修正が届く版

LTS(長期サポート)のリリースは、作った人たちが、特にセキュリティについて長いあいだ修正を続けると約束した版です。Node.js では偶数の版(22、24 …)が LTS になり、およそ 30 か月サポートされますが、奇数の版は短命です。学ぶときやサーバーを動かすときは LTS の版を選びましょう。

もっと学ぶ

README

プロジェクトの最初の文書:何なのか、どう使うのか

README.md はプロジェクトのいちばん上のフォルダーにあり、プロジェクトが何をするのか、どうインストールして動かすのか、次にどこを見ればよいのかを説明します。GitHub はリポジトリの表紙にこれを表示するので、訪れた人が最初に読むものです。「README にアプリの動かし方が書いてある」のような目標は、AI エージェントにとっても分かりやすいゴールになります。

イシュー

原文の表記 · GitHub issue

一つの作業・バグ・アイデアについての GitHub のメモ

イシューは、GitHub のリポジトリにある番号つきのページで、一つの仕事を説明します。バグ、機能、質問などです。みんながコメントし、担当を決め、ラベルをつけ、終わったら閉じます。プルリクエストに「Fixes #12」と書けば、イシューを自動で閉じられます。GitHub Projects や Jira のようなボードは、イシューをカードとして並べます。

もっと学ぶ

拡張機能

原文の表記 · Extension

Chrome や VS Code に新しい機能を足すための追加のプログラム

拡張機能は、別のアプリの中に入れて機能を足す小さなプログラムです。Claude in Chrome のようなブラウザーの拡張機能は Chrome ウェブストアから、Claude Code や Codex の拡張機能のようなエディターの拡張機能は VS Code Marketplace から入れます。拡張機能はそのアプリで見ているものを読めるので、信頼できる発行元のものだけを入れましょう。

もっと学ぶ

エラーログ

原文の表記 · Error log

プログラムが動きながら書くエラーの記録

プログラムは、何がうまくいかなかったかを、時刻や詳しい情報といっしょにエラーログに書きます。ファイル、ターミナル、サービスなどです。ログには、画面の短いメッセージより多くのこと、たとえば行番号や呼び出しのつながりが入っています。AI に助けを求めるときは、何千行も貼りつけるのではなく、ログの関係する行を、問題の再現方法と期待していた結果といっしょに渡しましょう。

プラットフォーム

原文の表記 · Platform

ブラウザー・スマホ・サービスのような、プログラムが動く土台

プラットフォームとは、プログラムがその上で動くように作られている土台のことです。オペレーティングシステム(Android、iOS、Windows)、ブラウザー、家庭用ゲーム機、ゲームプラットフォームの SDK のように自分のツールを持つオンラインサービスなどです。プラットフォームごとにルールや制限が違うので、ストアはプラットフォームごとに別のビルドを求めます。「クロスプラットフォーム」とは、一つのコードがいくつものプラットフォームで動くという意味です。

ソフトウェア

原文の表記 · Software

機械そのものではなく、コンピューターで動くプログラム全部

ソフトウェアは、プログラムとそれが必要とするデータをまとめて呼ぶ言葉です。アプリ、ゲーム、Web サイト、オペレーティングシステム、AI のモデルもそうです。ハードウェアはさわれる部分で、ソフトウェアはそれが従う命令です。ソフトウェアを変えるのはハードウェアを変えるより安くて速いので、新しい機能のほとんどは更新として届きます。

自動化

原文の表記 · Automation

決まった仕事を、人の代わりにコンピューターに自分でやらせること

自動化は、手でくり返している仕事をコンピューターが自分でやることに変えます。500 個のファイルの名前を変えるシェルスクリプト、毎週月曜に動く予定の作業、push のたびに動くテスト、毎週の報告書を集める AI エージェントなどです。最初の 1 回は手間がかかりますが、そのあとは何度でもただで動きます。自分が分かっている手順だけを自動化し、結果を確かめましょう。

プログラミング言語

原文の表記 · Programming language

コンピューターが実行できる命令を書くための、決まった言語

プログラミング言語には、コンピューターに何をさせるかを伝える正確な言葉と文法があります。Python、JavaScript、Bash、C、Rust などがあり、ちょっとしたスクリプトから速いエンジンまで、得意な仕事がそれぞれ違います。人の言葉とは違い、推測の余地はありません。かっこが一つ足りないだけでプログラムは止まります。AI もこうした言語でコードを書くので、読めることはやはり大事な力です。

バージョン

原文の表記 · Version

プログラム・モデル・ファイルの番号つきの版

プログラム、パッケージ、モデルは時間とともに変わり、公開されたそれぞれの状態にバージョンがつきます。3.12.4 のように major.minor.patch の形で書くことがよくあります。最初の数が大きくなるのは、ふつう古いコードを壊しうる変更があるときです。「自分では動くのにあなたのところでは動かない」という問題の多くはバージョンの違いから来るので、まず確かめ、requirements.txt や .nvmrc のようなファイルで固定しましょう。

定数

原文の表記 · Constant

一度決めたら変えられない、名前のついた値

定数は、最初の値を入れたあとに鍵をかけた変数のようなものです。Bash では readonly PI=3.14 とすると、あとで変えようとするとエラーになります。JavaScript では const と書きます。Python には本当の定数がないので、MAX_SIZE = 100 のように名前を大文字で書いて「変えないで」と伝えます。どこでも同じでなければならない値には定数を使いましょう。

もっと学ぶ

宣言

原文の表記 · Declaration

変数(とその種類)を使う前に知らせておくこと

宣言は、ある名前があることを、ときにはその種類といっしょに言語に伝えます。Bash ではふつう宣言はいりません。name=Mina と書けば、その場で変数ができます。ただし、declare -A の連想配列のように、先に宣言しなければならない種類もあります。Java や C のような言語では、すべての変数を使う前に型といっしょに宣言します。

もっと学ぶ

関数の定義

原文の表記 · Definition

あとで使えるように関数や変数を作ること

定義とは、名前に中身を与えるところです。関数を作る行や、変数に初めて値を入れるところです。コードは定義されたあとでしか名前を使えないので、スクリプトでは関数の定義をそれを呼ぶ行より前に置きます。set -u をつけると、一度も定義されていない変数を使ったときに Bash が止まるので、打ち間違いを見つけられます。

もっと学ぶ

.NET

プログラムを作って動かすための Microsoft の無料のプラットフォーム

.NET は、C#・F# などの言語で書いたプログラムを Windows・macOS・Linux で動かすための、Microsoft のオープンソースのプラットフォームです。PowerShell は .NET の上に作られているので、その正規表現は .NET のルールに従い、\d、\w、\s や名前つきグループが使えます。PowerShell を使うのに .NET を知っている必要はありません。

もっと学ぶ

呼び出し

原文の表記 · Function call

名前を使って関数やコマンドを実行すること

関数を定義しても、仕事の中身を書いただけです。呼び出すと実行されます。Python の print("hi") や Bash の greet Mina のように、名前と引数を書いて関数を呼び出すと、結果を返してくることもあります。プログラムのほとんどは、自分やほかの人が書いた関数の呼び出しです。AI のモデルがプログラムにツールの実行を頼むことは、ツール呼び出しと呼ばれます。

入れ子

原文の表記 · Nesting

同じ種類のものの中に、もう一つを入れること

入れ子とは、ある仕組みの中に同じような仕組みを置くことです。ループの中のループ、if の中の if、リストの中のリスト、$(dirname $(pwd)) のようにコマンド置換の中のコマンド置換などです。$( ) はきれいに入れ子にできるので、バッククォートより好まれる理由の一つになっています。深い入れ子は読みにくいので、3 段より深くなったらコードを分けるサインです。

もっと学ぶ

switch 文

原文の表記 · switch statement

Bash の case のような、ほかの言語のいくつにも分かれる分岐

JavaScript・C・Java では、switch が一つの値を case の一覧と比べ、合ったブロックを実行します。長い if/else if のつながりよりすっきりします。Bash は case … esac で同じ仕事をし、*.txt のようなパターンも case に書けます。JavaScript では break を忘れると、次の case まで実行されてしまいます。

もっと学ぶ

コードのブロック

原文の表記 · Block

一つのまとまりとしていっしょに実行される行のかたまり

ブロックは、ひとまとまりになるコードのかたまりです。if の then と fi のあいだ、ループの do と done のあいだ、関数の { } の中の行です。awk には、最初の行の前と最後の行のあとに動く特別な BEGIN と END のブロックもあります。どこで終わるかが見えるように、ブロックの中の行は字下げしましょう。開いたブロックは必ず閉じなければなりません。

もっと学ぶ

camelCase

単語をつなげ、2 語目からの頭を大文字にする名前のつけ方

camelCase は、いくつかの単語からなる名前を空白なしで書き、2 語目からは単語の頭を大文字にします。userName、totalPrice のようにです。JavaScript は変数や関数にこれを使い、Python は snake_case(user_name)を好み、ファイル名や URL ではよく kebab-case(user-name)を使います。名前は完全に一致しなければならないので、プロジェクトですでに使っている書き方に合わせましょう。

CHANGELOG

それぞれの版で何が変わったかを記録するファイル

CHANGELOG(ふつうは CHANGELOG.md)には、プロジェクトのすべての版が、日付と、追加・変更・修正といっしょに新しい順に並んでいます。Claude Code のように変化の速いツールは、ユーザーが新しい機能に追いつけるようにこれを公開しています。小さな一歩まですべて記録するコミットの履歴とは違い、人が読むために書かれています。

もっと学ぶ

リリースノート

原文の表記 · Release notes

その版で何が新しくなったかをユーザーに伝える短いお知らせ

リリースノートは、新しい版をユーザーに知らせます。新しい機能、大事な修正、設定を変えるなどユーザーがしなければならないことです。CHANGELOG より短く親しみやすく、前のリリースからのコミットをもとに下書きすることがよくあります。くり返し書くものなので、AI エージェントのスキルにするのにちょうどよい作業です。

コマンドインジェクション

原文の表記 · Command injection

入力にコマンドをしのびこませて実行させる攻撃

コマンドインジェクションは、プログラムが自分で管理していない文字からシェルのコマンドを組み立て、その文字に余分なコマンドが入っていると起きます。a.txt; rm -rf ~ のようなファイル名が、害のないコマンドを破壊的なものに変えてしまうことがあります。変数は引用符で囲み、信頼できない文字をシェルに渡さないようにしましょう。AI エージェントでは、あなたではなく Web ページやファイルから来たコマンドに気をつけます。

フィードバックループ

原文の表記 · Feedback loop

試して、結果を確かめて、直すことをくり返すサイクル

フィードバックループは、作業している人に、今の変更が正しかったかをすばやく知らせ、もう一度試させます。AI エージェントにとっては、テスト、リンター、型チェック、スクリーンショットが合図になるので、一歩ごとに人がいなくてもエージェントは自分で直せます。合図が速くはっきりしているほど、仕事はよくなります。

ワークツリー

原文の表記 · Worktree

同じリポジトリの、別のブランチ用のもう一つの作業フォルダー

git worktree は、同じリポジトリの別のブランチを、一つの履歴を共有したまま別のフォルダーに取り出します。フォルダーごとに自分のファイルがあるので、Claude Code や Codex の二つのセッションが、おたがいを上書きせずに並行して作業できます。作業をマージしたら、ワークツリーを消します。ワークツリーごとに、依存パッケージを別にインストールする必要があります。

もっと学ぶ

並行作業

原文の表記 · Parallel

いくつかの作業を同時に、並べて進めること

並行作業とは、いくつかの仕事を一つずつ順番にではなく、同時に進めることです。AI エージェントなら、いくつものセッションやサブエージェントを並行して動かし、それぞれに自分の作業をさせられます。危ないのは二人が同じファイルを編集することなので、それぞれに自分のワークツリーか自分のファイルを渡し、最後に結果をマージします。

もっと学ぶ

GitHub Project

イシューをカード・表・タイムラインで管理する GitHub のボード

GitHub Project は、一つかいくつかのリポジトリのイシューとプルリクエストを一つのボードに集めます。列のあるカンバンボード、表、ロードマップとして見られ、優先度のような自分のフィールドを足せます。gh のコマンドラインツールで項目を作ったり動かしたりできるので、AI エージェントが代わりにボードを管理できます。

もっと学ぶ

カンバン

原文の表記 · Kanban

作業のカードが「やること → 完了」のように列を進んでいくボード

カンバンボードは、仕事を列に並んだカードで表します。ふつうは「やること」「進行中」「完了」の列です。カードを次の列に動かすと進み具合がひと目で分かり、「進行中」に置くカードの数を制限すると、チームが一度に手を広げすぎるのを防げます。この方法はトヨタの工場から生まれました。GitHub Projects、Trello、Jira にはどれもカンバンの表示があります。

もっと学ぶ

Jira

会社でよく使われる、Atlassian のイシュー・プロジェクト管理ツール

Jira は Atlassian の有料の Web サービスで、ボード、スプリント、レポートを使って、イシュー・バグ・タスクを管理します。GitHub のイシューの代わりにこれを使う会社がたくさんあります。MCP サーバーを通せば、Claude Code のような AI エージェントが仕事の一部として Jira のチケットを読んだり更新したりできます。

JetBrains

IntelliJ IDEA、PyCharm、WebStorm などの IDE を作っている会社

JetBrains は、プロの開発者に広く使われている IDE を作っているソフトウェア会社です。Java と Kotlin の IntelliJ IDEA、Python の PyCharm、JavaScript の WebStorm、PHP の PhpStorm などがあります。ページに「VS Code か JetBrains」と書いてあれば、これらのエディターのことです。Claude Code にはこれら用のプラグインがあり、Android Studio は IntelliJ をもとに作られています。

もっと学ぶ

IDE

統合開発環境:編集・実行・デバッグを一つのアプリで

IDE(統合開発環境)は、コードエディター、プログラムを動かす仕組み、デバッガー、検索、Git、たいていはターミナルまで、一つのウィンドウにまとめたものです。VS Code は拡張機能を入れると IDE になり、JetBrains の製品や Xcode は最初から完全な IDE です。AI のコーディングツールは、拡張機能やプラグインとして IDE の中で、またはそのとなりのターミナルで動きます。

ハンドラー

原文の表記 · Handler

ある出来事が起きたときに実行されるよう用意されたコード

ハンドラーは、一つの種類の出来事を待ち、それが起きると実行されます。ボタンのクリック、あるアドレスへのリクエスト、ファイルの保存などです。Claude Code では、フックのハンドラーにシェルのコマンド、HTTP のアドレス、MCP のツール、LLM のプロンプト、サブエージェントが使え、その時が来るたびに実行されます。実行するかどうかをモデルが選ぶことはありません。

グローバルな設定

原文の表記 · Global

一つのプロジェクトだけでなく、このコンピューターのすべてのプロジェクトに当てはまること

グローバルな設定やインストールはコンピューターのどこでも働き、ローカル(プロジェクト)のものは一つのプロジェクトのフォルダーの中だけで働きます。npx skills add … -g はスキルをグローバルにインストールし、~/.claude/CLAUDE.md には、どのプロジェクトでも読まれるグローバルな指示が入っています。同じものが両方にあるときは、どちらが勝つかを確かめましょう。スキルの場合、Claude Code はグローバル(個人)のものを使います。

もっと学ぶ

MIT ライセンス

原文の表記 · MIT License

短いオープンソースのライセンス:自由に使える。表示だけは残す

MIT ライセンスは、著作権の表示とライセンスの文がいっしょについている限り、だれでもソフトウェアを使い、コピーし、変え、売り、共有できるようにします。また、ソフトウェアには何の保証もないとも書いてあります。短くて求めることがとても少ないので、GitHub でいちばんよく使われるライセンスの一つです。ライセンスの文は、ふつう LICENSE という名前のファイルに入っています。

もっと学ぶ

pdfplumber

PDF から文字や表を取り出す Python のライブラリ

pdfplumber は PDF を開き、ページごとに、その文字、位置つきの単語、表を取り出してくれます。本物の文字が入った PDF で動きます。スキャンした PDF はただの画像なので、代わりに OCR が必要です。エージェントに「pdfplumber を使う。OCR はスキャンした PDF のときだけ」と伝えるスキルは、選択肢を並べるかわりに、はっきりした一つの基本を決めてくれます。

もっと学ぶ

P0 · P1

優先度のラベル:P0 がいちばん急ぎで、次が P1、P2 …

チームは問題を優先度で分け、短いラベルをつけます。P0 は「今すぐ直す」という意味で、サービスが止まっている、データが失われている、セキュリティの穴がある、などです。P1 は深刻で、すぐに直すべきものです。P2 以下は待てます。Codex の PR レビューは、はじめから P0 と P1 の指摘だけを報告するので、雑音なしに大事なことだけが見られます。

もっと学ぶ

テンプレート

原文の表記 · Template

空いたところを埋めるだけでよい、できあいの枠

テンプレートは、空欄のある、前もって用意した形です。報告書の骨組み、スターターのプロジェクト、{name} を埋めるメールなどです。スキルはよく assets/ フォルダーにテンプレートを入れておき、エージェントが毎回同じ組み立てで作るようにします。チャットテンプレートは特別な例で、モデルが学習したときの役割とメッセージのぴったりの並べ方です。モデルによく答えさせるには、ランナーがこれを使わなければなりません。

TODO

やることのメモ。コードでは、残っている仕事の印

TODO は「まだやること」という意味です。開発者はコードに # TODO: handle empty input のようなコメントを残し、あとで grep で探します。イシューやボードでは、TODO のチェックリストが一つの仕事を小さな手順に分け、一つずつチェックしていくので、進み具合も分かります。古い TODO はすぐにたまるので、大事なものはイシューにしましょう。

リポジトリのルート

原文の表記 · Repository root

Git のリポジトリのいちばん上のフォルダー

リポジトリのルートは、Git で管理しているプロジェクトのいちばん上のフォルダーで、隠しフォルダーの .git があるところです。Claude Code は、起動したフォルダーからこのルートまでの間で CLAUDE.md ファイルと .claude/skills を探し、それより上は見ません。git rev-parse --show-toplevel がそのパスを表示します。

git config

Git がすべてのコミットに書く名前とメールアドレスを設定すること

どのコミットにも誰が作ったかが記録されるので、Git をインストールしたらすぐに、git config で自分の名前とメールアドレスを一度だけ伝えます。--global を付けると、このコンピューターのすべてのリポジトリに効きます。付けないと、今いるリポジトリだけです。git config --list で今の設定を見られます。

もっと学ぶ

強制プッシュ(force push)

原文の表記 · Force push

リモートの履歴を自分のもので上書きする push

リモートに自分の持っていないコミットがあると、ふつうの push は断られます。git push --force はそれでも push して、リモートのブランチを自分の版に取り替えるので、ほかの人が push したコミットが消え、チームの仲間の手元とずれてしまいます。誰も pull していない自分だけのブランチでだけ使いましょう。--force-with-lease のほうが安全です。最後に fetch してからリモートが変わっていたら止まるからです。

もっと学ぶ

reflog

HEAD がいた場所すべての Git の記録 — なくしたコミットが見つかる場所

git reflog は、リポジトリで HEAD が指したすべてのコミットを新しい順に並べます。reset や rebase のあと、どのブランチにも見えなくなったコミットも入っています。git reset --hard で作業をなくしたら、ここでそのコミットを見つけて戻りましょう。自分のコンピューターにだけ残り、古い記録はしばらくすると消えます(標準では 90 日)。

もっと学ぶ

reset

今のブランチを前のコミットまで戻すこと

git reset はブランチを後ろに戻すので、それより後のコミットはブランチに含まれなくなります。--soft はその変更をステージしたまま残し、標準の --mixed はステージしていない変更として残し、--hard はコミットしていない作業ごと捨てます。push していないコミットにだけ使い、共有したコミットには git revert を使いましょう。

もっと学ぶ

git add

変えたファイルを、次のコミットのためにステージングエリアに入れること

git add は、変更をステージングエリアにコピーして、次のコミットに入れるものを選びます。コミットされるのは add したものだけなので、たくさんのファイルを編集しても、一つのコミットに一つのまとまった変更を入れられます。git add -p はファイルの一部を選べ、git add . は今のフォルダーのすべてを追加します。

もっと学ぶ

revert

古いコミットを、それを打ち消す新しいコミットを足して取り消すこと

git revert は、前のコミットと反対のことをする新しいコミットを作るので、変更はなくなりますが、履歴には両方のコミットが残ります。何も書き換えないので、すでに push してほかの人が pull したコミットを取り消す安全な方法です。あとのコミットが同じ行を変えていると、コンフリクトになることがあります。

もっと学ぶ

git status

何が変わったか、それぞれのファイルが三つの場所のどこにあるかを表示すること

git status は、今どのブランチにいるか、どのファイルが変わったがステージされていないか、どれが次のコミットのためにステージされているか、どれが新しくてまだ追跡されていないかを教えてくれます。何も変えないので、迷ったら、add の前、commit の前、危ないコマンドの前に実行しましょう。出力には次の一歩のコマンドも書かれています。

もっと学ぶ

git log

履歴のコミットを新しい順に一覧にすること

git log は、今のブランチのコミットを新しいものから古いものへ、それぞれの ID・作った人・日付・メッセージといっしょに表示します。オプションで読みやすくなります。--oneline はコミットごとに一行、--graph はブランチがどう分かれて合流したかを描きます。一覧が一画面より長いときは、q を押して抜けます。

もっと学ぶ

restore

まだコミットしていない変更を捨てること

git restore は、ファイルを最後のコミットのときの状態に戻し、コミットしていない編集を消します。--staged を付けると、ファイルをステージングエリアから出すだけで、編集は残します。捨てた編集は一度も Git に保存されていないので、取り戻せません。先に git status か git diff で確かめましょう。

もっと学ぶ

cherry-pick

別のブランチのコミットを一つだけ、このブランチにコピーすること

git cherry-pick は、どこにあるコミットでもその変更を取ってきて、今のブランチに新しいコミットとして当てます。たとえばリリース用のブランチのように、機能ブランチの修正を一つだけ今すぐ使いたいときに便利です。コピーには新しい ID が付くので、この方法でたくさんのコミットを選ぶと、マージより履歴が追いにくくなります。

もっと学ぶ

stash

途中の作業をしばらく脇に置き、あとで戻すこと

git stash は、コミットしていない変更を取って別の山に保存し、作業フォルダーをきれいにします。そのため、急ぎの修正のためにブランチを切り替えられます。git stash pop は変更を戻して、山から取り除きます。Git がまだ追跡していない新しいファイルは、-u を付けない限り残ったままです。

もっと学ぶ

git tag

v1.0.0 のように、一つのコミットに付ける動かない名札

git tag は、コミットに名前(ふつうはバージョン番号)を留めるので、リリースしたとおりのコードをいつでも見つけられます。ブランチと違って、新しいコミットを作ってもタグは動きません。注釈付きタグ(-a)は、誰が、いつ、どんなメッセージで作ったかも保存します。タグは自分で push しない限り送られません。

もっと学ぶ

git init

今のフォルダーを新しい Git のリポジトリにすること

git init は、今のフォルダーの中に隠しフォルダー .git を作り、それからは Git がそのフォルダーの履歴を記録できるようになります。add して commit するまでは何も保存されません。プロジェクトのフォルダーそのものの中で実行しましょう。ホームフォルダーで実行すると、自分のすべてのファイルを追跡してしまいます。

もっと学ぶ

git apply

diff(パッチ)ファイルの変更を自分のファイルに当てること

git apply は diff(消す行と足す行)を読み、コミットせずに作業フォルダーのファイルにその編集をします。クラウドの Codex のように、ほかの場所で作られた変更を自分の手元に持ってくる方法です。git apply --check で、先にパッチが合うかどうかがわかります。

もっと学ぶ

Git LFS

大きなファイルをリポジトリの外に置く Git の拡張機能

Git LFS(Large File Storage)は、モデルの重みのような大きなファイルを通常の Git の履歴に入れずに管理します。リポジトリには小さなポインターファイルだけが残り、実際のファイルは別のストレージに置かれます。最初に一度 git lfs install を実行すれば、あとはいつもどおり git add・commit・push を使えます。

もっと学ぶ 重みとパラメータについて詳しく見る

Traceback

エラーが起きた場所を示す Python のエラー報告

Python のプログラムが失敗すると traceback が表示されます。エラーに至るまでの関数呼び出しの流れを、いちばん外側の呼び出しから失敗した行まで順に示したものです。下から読みましょう。最後の行にエラーの種類とメッセージがあり、そのすぐ上の行にファイル名と行番号があります。

もっと学ぶ

uv

Python のプロジェクトとパッケージを管理する高速なツール

uv は Python のプロジェクトを作り、仮想環境を用意し、パッケージをインストールするツールです。pip と venv の仕事をまとめてこなし、しかもずっと高速です。たとえば uv add torch でプロジェクトに PyTorch がインストールされます。

もっと学ぶ

非同期(async)

原文の表記 · async (asynchronous)

時間のかかる処理を待つ間にほかの作業を進める方式

非同期のコードは、ネットワークの応答待ちのような時間のかかる処理を始めておき、じっと止まらずに、その処理が終わるまでほかの作業をこなします。Python では async と await で書きます。この書き方で作った Web サーバーは、たくさんの接続を同時に開いておけます。

もっと学ぶ

.claude/agents/

Claude Code のサブエージェントを置くフォルダー

サブエージェント一つは、名前・説明・使えるツール・指示を書いた Markdown ファイル一つです。プロジェクトの中の .claude/agents/ に置いたファイルはそのプロジェクトのもので、チームといっしょにコミットできます。~/.claude/agents/ に置いたファイルは、すべてのプロジェクトで自分だけが使います。Claude Code は説明を読んで、いつそのサブエージェントに仕事を任せるかを決めます。

もっと学ぶ

~/.claude.json

ホームフォルダーにある Claude Code の個人設定ファイル

~/.claude.json には、自分のユーザーアカウントでの Claude Code の状態が入っています。環境設定、ログイン情報、プロジェクトごとのデータ、local・user スコープで追加した MCP サーバーです。.claude フォルダーや settings.json とは別のファイルです。手で直すときは気をつけ、できれば claude mcp add のようなコマンドに直させます。

もっと学ぶ

mcpServers

MCP サーバーの一覧と起動のしかたを入れる設定キー

mcpServers は、~/.claude.json やプロジェクトの .mcp.json、ほかのアプリの似た設定ファイルで、MCP サーバーの一覧を入れるキーです。項目ごとに名前があり、サーバーを起動するコマンドと引数、または接続先の URL を書きます。この項目がどこにあるかで、そのサーバーを使える範囲が決まります。

もっと学ぶ

.claude/skills/

Claude Code がスキルを探すフォルダー

スキル一つは SKILL.md ファイルが入ったフォルダー一つで、Claude Code はそのフォルダーをここで探します。プロジェクトの中の .claude/skills/ は Git でチームと共有し、~/.claude/skills/ にはすべてのプロジェクトで使う自分のスキルを置きます。Claude はスキルごとに名前と説明だけを読んでおき、作業に必要になったときに指示の全文を読み込みます。

もっと学ぶ

.mcp.json

チーム全員で共有する MCP サーバーを並べたプロジェクトのファイル

.mcp.json はリポジトリのいちばん上に置き、そのプロジェクトの MCP サーバーを並べます。Git にコミットするので、プロジェクトをクローンした人はみな同じサーバーを使えます。Claude Code は、初めて使う前に承認を求めます。claude mcp add に --scope project をつけて実行すると、このファイルに書き込まれます。秘密の値はファイルではなく環境変数に入れます。

もっと学ぶ

.claude/settings.json

Claude Code のプロジェクト設定ファイル — 権限ルール、フックなど

.claude/settings.json には、一つのプロジェクトで共有する設定を書きます。権限ルール(allow・ask・deny)、フック、環境変数などです。コミットしておくので、チーム全員が同じルールで作業できます。自分だけの変更はコミットしない .claude/settings.local.json に、すべてのプロジェクトに効かせたい設定は ~/.claude/settings.json に書きます。

もっと学ぶ

@path

原文の表記 · @path import

CLAUDE.md に @path と書いて、別のファイルの内容を読み込む書き方

CLAUDE.md に @docs/architecture.md のような行を書くと、そのファイルを読み込みます。内容がその場所に書かれているかのように読まれます。よく使うのは @AGENTS.md で、ほかのエージェントが読む共通の指示に Claude Code も従うようにします。読み込んだファイルはセッションごとに最初からコンテキストに入るので、短くしておきます。

もっと学ぶ

CLAUDE.local.md

コミットしない、自分専用の Claude Code のプロジェクト指示

CLAUDE.local.md は、プロジェクトの CLAUDE.md の隣に置くファイルで、自分だけが使う指示(ローカルの URL、自分のテストデータなど)を書き、.gitignore に入れてコミットしないようにします。作業フォルダーやその上のフォルダーに CLAUDE.md・.claude/CLAUDE.md・CLAUDE.local.md が一つでもあると、Claude Code は既定で AGENTS.md を読みません(~/.claude/CLAUDE.md は数えません)。AGENTS.md に頼っているなら、個人のメモは ~/.claude/CLAUDE.md に置くか、/config の Project instructions を claude-md-and-agents-md にして両方を読ませます。

もっと学ぶ

クリップボード

原文の表記 · Clipboard

最後にコピーしたものをコンピューターがしまっておく場所

文字や画像をコピーすると、コンピューターはほかのものをコピーするまでそれをクリップボードに入れておき、貼り付けるとカーソルの位置に出てきます。ウェブページがクリップボードを読めるのはあなたが許可したときだけなので、ブラウザーが貼り付けボタンを止めることがあります。そのときは枠をクリックして Ctrl+V(Mac では ⌘V)を押してください。

Ctrl+V(⌘V)

原文の表記 · Ctrl+V (⌘V)

コピーしたものを貼り付けるキーボードショートカット

Ctrl+V はクリップボードの中身をカーソルの位置に貼り付けます。Mac では同じショートカットが ⌘V(Command+V)です。コピーする Ctrl+C と対になっています。ただしターミナルでは Ctrl+C は実行中のコマンドを止める意味になるので、多くのターミナルでは Ctrl+Shift+V で貼り付けます。

スクリーンショット

原文の表記 · Screenshot

画面に映っているものをそのまま写した画像

スクリーンショットは、画面に映っているものを画像として保存します。Windows では Win+Shift+S で範囲を選んでクリップボードに写し、Mac では Cmd+Shift+4 で範囲をファイルに保存し、Ctrl も一緒に押すとコピーになります。

Ctrl キー

原文の表記 · Ctrl key

ほかのキーと一緒に押してショートカットにするコントロールキー

Ctrl(コントロール)はキーボード左下のキーです。ほかのキーと一緒に押すとショートカットになり、ターミナルでは Ctrl+C でコマンドを止めます。Mac のアプリでは Cmd を使うことが多いですが、ターミナルのショートカットは Mac でも Ctrl です。

FizzBuzz

数を数えながら Fizz・Buzz・FizzBuzz と出力する有名な練習問題

FizzBuzz は、1から順に数を出力し、3の倍数では Fizz、5の倍数では Buzz、両方の倍数では FizzBuzz を代わりに出力する有名な練習問題です。ループ、if による条件分岐、余りを求める演算子 `%` を一緒に練習できます。3の倍数を先に調べると15で Fizz だけが出る間違いがよくあるので、「両方」の場合を先に調べます。

もっと学ぶ

TextEdit

macOS に付いてくるテキストエディター

TextEdit(テキストエディット)は、どの Mac にも入っているシンプルな文書エディターです。標準ではリッチテキスト(RTF)で保存するため、見えない書式が加わります。HTML やコードを書くときは、先に「フォーマット → 標準テキストにする」を選び、入力した文字だけがファイルに入るようにします。

もっと学ぶ

メモ帳

原文の表記 · Notepad

Windows に付いてくるプレーンテキストエディター

メモ帳(Notepad)は Windows に入っているシンプルなエディターです。書式のない文字だけを保存するので、HTML やコードのファイルに向いています。ウェブページを保存するときは、ファイルの種類を「すべてのファイル」にして、名前の最後に .txt が付かないようにします。

もっと学ぶ

os.replace

書き終えたファイルを一度に差し替える Python の方法

os.replace(src, dst) はファイル src の名前を dst に変え、dst がすでにあればそれと置き換えます。同じドライブの中では、この差し替えはアトミック(一瞬で丸ごと)に行われます。ほかのプログラムには古いファイルか新しいファイルのどちらかだけが見え、書きかけのファイルは見えません。そのため、まず一時ファイルに書き、それから os.replace を呼びます。

もっと学ぶ

SONUB 用語辞典

ウェブ

用語 157 個

ブラウザーコンソール

原文の表記 · Browser console

ウェブページのエラーやメッセージが並ぶ画面

ブラウザーコンソールは、ブラウザーの開発者ツールの中にある画面で、ウェブページの JavaScript がエラーやメッセージを書き出す場所です。アプリが真っ白な画面のままだったり、ボタンを押しても何も起きなかったりするとき、たいていコンソールに理由が書いてあります。SONUB のバイブコーディングでは、プレビューの横のコンソールタブがこうしたメッセージを集めて見せてくれます。

もっと学ぶ

HTML

ウェブページに何があるかを書き表す言語

HTML はページの中身に印を付けます。ここは見出し、ここは段落、ここは画像、ここはリンク、というふうにです。見た目ではなく意味と構造を書くもので、色や配置は CSS の担当です。今見ているこの画面も含め、開くページはすべて HTML としてブラウザーに届きます。

もっと学ぶ

CSS

ページの見た目を決める規則

CSS は、HTML が書き表した素の中身に、色や余白、書体や配置を与えます。両者を分けておくおかげで、中身を書き直さずに見た目だけ変えたり、スマートフォンとパソコンで違う見せ方をしたりできます。サイトが急に飾りのない姿で表示されたら、たいていは CSS が読み込めていません。

もっと学ぶ

JavaScript

ウェブページを動かす言語

HTML が中身、CSS が見た目だとすれば、JavaScript は動きです。クリックに反応し、新しいデータを取りに行き、見ている最中に画面を書き換えます。どのブラウザーでも動かせるため、ウェブの言語になりました。名前は似ていますが Java とは何の関係もありません。

もっと学ぶ

HTTP

ブラウザーとサーバーがやり取りするための約束事

HTTP は、ブラウザーがサーバーに何かを求め、サーバーが答えを返すときの取り決めです。やり取りは一つひとつ独立していて、要求を送って返事を受け取ると、その接続はこちらを忘れます。HTTPS はそれを暗号化で包んだもので、パスワードを入力するときに鍵マークを確かめるべき理由がここにあります。

URL

インターネット上にある何か一つの、完全な住所

URL はブラウザーのアドレス欄に見える住所で、部分ごとに意味があります。まず通信方式、次にサイト、そしてそのページまでの道筋です。住所を読めることは小さくても大切な安全の技です。最初の一本のスラッシュの直前にあるものが本当のサイトで、銀行を装った偽の住所はそうやって見破ります。

ブラウザー

原文の表記 · Browser

ウェブページを取ってきて画面に描くプログラム

Chrome、Safari、Firefox、Edge がブラウザーです。サーバーにページを求め、返ってきた HTML・CSS・JavaScript を私たちが見る画面に変えてくれるプログラムです。そのコードを実際に動かしもするので、ウェブページがアプリのように振る舞えます。多くの機器でいちばん長く開かれているプログラムですが、その存在を意識する人はほとんどいません。

もっと学ぶ

ドメイン

原文の表記 · Domain name

インターネット上のサーバーの住所につける、読みやすい名前

コンピューター同士は数字の IP アドレスで相手を探しますが、数字は覚えにくいものです。example.com のようなドメイン名は登録業者から借りる名前で、DNS を使ってどの IP アドレスを指すかを決めます。HTTPS の証明書もドメイン名に対して発行されるので、本物の証明書には本物のドメイン名が必要です。

もっと学ぶ

DNS

名前を IP アドレスに変える、インターネットの電話帳

DNS(ドメインネームシステム)は「example.com はどの IP アドレスか」という問いに答えます。ブラウザーはどこかへつなぐ前に、まず DNS に尋ねます。自分のドメインの答えは、A レコードなどの記録で決めます。答えは途中のあちこちに保存(キャッシュ)されるため、変更が全員に届くまで数分から数時間かかることがあります。

もっと学ぶ

React

部品(コンポーネント)を組み合わせてウェブページを作る JavaScript ライブラリ

React では、見た目と動きをそれぞれ持つ小さな部品(コンポーネント)を使い回してページを組み立て、データが変わると変わった部分だけを描き直します。React のプロジェクトにはビルドの段階が必要です。Vite のような道具が、どのウェブサーバーでも差し出せるふつうの HTML・CSS・JavaScript ファイルに変えます。

もっと学ぶ

開発者ツール

原文の表記 · DevTools

ページの中身をのぞくための、ブラウザーに組み込まれた画面

開発者ツール(DevTools)は、Chrome などのブラウザーに組み込まれた開発用の道具です。ページの HTML、ページが送るすべてのリクエストとそのヘッダーやレスポンス、保存しているクッキーやキャッシュ、スクリプトのエラーが見られます。F12 を押すか、ページを右クリックして[検証]を選ぶと開きます。ここで加えた変更は保存されず、ページを読み込み直すと元に戻ります。

もっと学ぶ

ステータスコード

原文の表記 · Status code

リクエストがどうなったかを告げる 3 桁の数

HTTP のレスポンスはどれもステータス行から始まり、その中に 3 桁のステータスコードがあります。最初の数字が種類を表します。2xx は成功、3xx はほかの場所を見よ、4xx はリクエストの問題、5xx はサーバーの問題です。まずこれを読みます。404 は、パスが間違っているという意味で、サーバーが止まっているという意味ではありません。

もっと学ぶ

リダイレクト

原文の表記 · Redirect

ブラウザーを別のアドレスへ送り直す返事

リダイレクトは「お探しのものはあちらです」と告げるレスポンスです。恒久的な移転を表す 301 のような 3xx のステータスコードと、Location ヘッダーに入った新しいアドレスを持っています。ブラウザーは自分でたどりますが、curl は -L を付けないとたどりません。サイトは、http の訪問者を https に送ったり、古いリンクを生かしたりするためにリダイレクトを使います。

もっと学ぶ

キャッシュ

原文の表記 · Cache

もう一度取りに行かずに済むよう、近くに置いておくコピー

キャッシュは、手に入れるのに時間がかかったもののコピーを近くに取っておき、次から速く使えるようにするものです。ブラウザーは画像やファイルを、サーバーはページを、AI モデルは前のトークンの KVキャッシュを取っておきます。気をつけたいのは、コピーが古くなっていることがある点です。変更したのにサイトが古いままに見えるときは、キャッシュを使わずに読み込み直すと直ることがよくあります。

エンドポイント

原文の表記 · Endpoint

呼び出せる API のアドレス一つ

エンドポイントは、一つの仕事をする API の特定の URL です。たとえば一人のユーザーの情報を読むものです。API がメニュー全体なら、エンドポイントはその中の料理一品で、ふつうは GET や POST などの HTTP メソッドと組み合わせて使います。アプリのコードを書く前に curl でエンドポイントを呼んでみると、何が返ってくるかが正確に分かります。

もっと学ぶ

WebSocket

開いたままで、双方向にメッセージを送り合える接続

ふつうの HTTP は、リクエスト一つ、レスポンス一つで終わりです。WebSocket は HTTP のリクエストとして始まり、そのあと開いたままの接続に切り替わるので、サーバーもブラウザーも好きなときにメッセージを送れます。チャット、試合の速報、オンラインゲームなど、頼まれなくてもサーバーが更新を送らなければならない用途に向いています。

もっと学ぶ

ストリーミング

原文の表記 · Streaming

レスポンスを、できたところから少しずつ送ること

ストリーミングは、全部ができあがるのを待たずに、レスポンスを小さなかけらに分けて、用意できたものから送ります。AI のチャットサービスは、HTTP の上で SSE(server-sent events)を使って文章をストリーミングすることが多く、答えがひとりでに打ち出されていくように見えるのはそのためです。かけらの大きさは製品の選択で、一つのトークンではなく文ごとに送るサービスもあります。表示の速さは、だれかが打っていることや考えていることを示すものではありません。

もっと学ぶ

タグ

原文の表記 · Tag

ページの一部に印を付ける、山かっこで囲んだラベル

HTML のタグは、<p> や <a> のように山かっこで囲んだラベルで、中身が何なのかをブラウザーに伝えます。ほとんどは対になっていて、開くタグと、スラッシュの付いた閉じるタグの間に中身を入れます。<img> や <br> のように一つだけで使うものもあります。タグはあなたが打つもので、ブラウザーはそこから要素を組み立てます。

もっと学ぶ

要素

原文の表記 · Element

開くタグから閉じるタグまでの、ページの一つの部品

要素は、ページの一つの部品で、開くタグ、閉じるタグ、その間のすべてを合わせたものです。要素はほかの要素の中に入るので、ページ全体は木の形になり、開発者ツールの Elements パネルが見せているのはまさにこの木です。タグはあなたが打つもの、要素はブラウザーがそこから組み立てて画面に描くものです。

もっと学ぶ

属性

原文の表記 · Attribute

開くタグの中に書く追加の情報

属性は、タグの名前だけでは伝えられない情報を加えます。開くタグの中に 名前="値" の形で書き、リンクのアドレスや画像のファイルなどを表します。よく使うものは href、src、alt、id、class です。alt は見た目以上に大事で、画面読み上げソフトが、画像を見られない人のためにこれを読み上げます。

もっと学ぶ

HTTP リクエスト

原文の表記 · HTTP request

クライアントがサーバーに何かを頼むために送るメッセージ

HTTP リクエストは、ブラウザーや curl がサーバーに送る、ただの文字のメッセージです。最初の行には GET / HTTP/1.1 のように、メソッド、パス、プロトコルのバージョンが書かれます。続いてヘッダーが一行に一つずつ並び、空行が一つあり、データを運ぶ本文が付くこともあります。サーバーはこれを読んで、レスポンスを送り返します。

もっと学ぶ

HTTP レスポンス

原文の表記 · HTTP response

リクエストに対して、サーバーが送り返すメッセージ

HTTP レスポンスは、リクエストに対するサーバーの答えです。HTTP/1.1 200 OK のようなステータス行で始まり、そのあとに、続く中身の種類を告げる Content-Type などのヘッダー、空行一つ、そして中身そのもの(HTML のページ、画像、JSON のデータ)が来ます。ヘッダーと中身を分けているのは、その空行だけです。

もっと学ぶ

HTTP ヘッダー

原文の表記 · HTTP header

メッセージに付ける 名前: 値 の形の追加情報の行

ヘッダーは、HTTP のリクエストやレスポンスの最初の行のあとに続く行で、一行ずつ 名前: 値 の形で書きます。中身そのものではなく、メッセージについての情報を運びます。どのサイトが欲しいか(Host)、中身の種類(Content-Type)、クッキー、好みの言語、ページの移転先(Location)などです。空行が一つ来るとヘッダーは終わりです。

もっと学ぶ

HTTP メソッド

原文の表記 · HTTP method

GET や POST など、リクエストの最初に来る動詞

メソッドは HTTP リクエストの最初の言葉で、クライアントが何をしてほしいかを表します。GET は何かを求めるもので、何も変えないのが決まりです。POST は、記入したフォームや新しい投稿などのデータを送ります。ほかに PUT、PATCH、DELETE などがあり、主に API で使われます。開発者ツールの Network パネルで、すべてのリクエストのメソッドが見られます。

もっと学ぶ

Laravel

PHP で Web サービスを作るための人気のフレームワーク

Laravel は、無料のオープンソースの PHP フレームワークです。アドレスとコードを結びつけるルート、データベースの層、ログイン、ミドルウェア、メール、キューなど、ほとんどすべてのサイトに必要な部品を Web サービスに用意してくれるので、自分のロジックだけを書けば済みます。SONUB 自体も Laravel で作られていて、Caddy の Web サーバーの後ろの Docker コンテナで動いています。

GET

サーバーに何かを送り返してほしいと頼む HTTP メソッド

GET はいちばんよく使われる HTTP メソッドで、ページを開いたり画像を読みこんだりするたびにブラウザーが送っています。データを求めるだけで、サーバーの何も変えないのが決まりなので、くり返しても安全で、答えをキャッシュできます。追加の情報はアドレスの ? のあとに入れるので、パスワードを GET で送ってはいけません。

もっと学ぶ

POST

サーバーに処理してもらうデータを送る HTTP メソッド

POST は、リクエストの本文にデータを入れて運びます。書きこんだフォーム、新しいコメント、アップロードするファイル、API に送る JSON などです。GET とは違い、新しい投稿を保存するなど、ふつうはサーバーの何かを変えます。だから、ページを再読みこみしてフォームをもう一度送ろうとすると、ブラウザーが警告するのです。

もっと学ぶ

PUT

アドレスにあるものを置きかえる HTTP メソッド

PUT は、あるものの新しい版をまるごと送り、そのアドレスに保存して、前にあったものと置きかえるようサーバーに頼みます。同じ PUT を 2 回送っても、1 回送ったのと同じ結果になります。ふつうの Web ページではなく、主に API で使われます。

もっと学ぶ

PATCH

あるものの一部だけを変える HTTP メソッド

PATCH は、新しいニックネームのように変えたい部分だけを送り、残りはそのままにします。PUT はまるごと置きかえ、PATCH は小さな修正です。PUT や DELETE と同じく、主に API で使われます。

もっと学ぶ

DELETE

サーバーに何かを消してほしいと頼む HTTP メソッド

DELETE は、投稿やファイルなど、そのアドレスにあるものを消すようサーバーに頼みます。許されているかどうかはサーバーが決めるので、本物の API はまずログインやキーの送信を求めます。Web ページのふつうのリンクでは DELETE を送れません。送るのはプログラムのコードや curl のようなツールです。

もっと学ぶ

Content-Type

続く中身がどんな種類かを伝えるヘッダー

Content-Type は、本文をどう読めばよいかを受け取る側に伝える HTTP ヘッダーです。Web ページなら text/html、データなら application/json、画像なら image/png です。charset=utf-8 のように文字のエンコーディングを書くこともできます。これが間違っていると、ブラウザーがページをただの文字として表示したり、文字化けしたりすることがあります。

もっと学ぶ

Host ヘッダー

原文の表記 · Host header

どのサイトがほしいかを伝えるリクエストヘッダー

Host は、sonub.com のような、アドレスにあるサイトの名前を運ぶリクエストヘッダーです。一つの IP アドレスの一台のサーバーで何百ものサイトを動かせますが、どのサイトがほしいのかは Host ヘッダーで見分けます。HTTP/1.1 からは、すべてのリクエストに必ず入っていなければなりません。

もっと学ぶ

charset

文字のエンコーディングを示す、ヘッダーの一部

charset(文字セット)は、保存されたバイトをどのエンコーディングで文字に戻すかを読み手に伝えます。今ではほとんどいつも utf-8 です。これがないとブラウザーは推測するしかなく、韓国語など英語以外の文字が、こわれた記号になってしまうことがあります。

もっと学ぶ

User-Agent

ブラウザーが自分の名前を名のるリクエストヘッダー

User-Agent は、クライアントが自分のことを説明するリクエストヘッダーです。どのブラウザーか、どのバージョンか、どのオペレーティングシステムか。サーバーは統計に使ったり、ブラウザーのバグを避けるのに使ったりします。かんたんに偽れるので、サーバーはセキュリティのためにこれを信用してはいけません。

もっと学ぶ

プロトコル

原文の表記 · Protocol

二つのプログラムがやり取りするときに従う、決められたルール

プロトコルとは、両方の側が前もって合意しておくルールのまとまりです。だれが先に話すか、どんな形で話すか、それぞれの返事が何を意味するか。HTTP は Web のプロトコル、SSH はリモートのターミナルのプロトコルです。ルールを共有しているので、違う人が書いたプログラムどうしでも分かり合えます。

もっと学ぶ

山かっこ

原文の表記 · Angle brackets

HTML のタグの名前を囲む < と > の記号

山かっこは、小なりと大なりの記号 < と > です。HTML では、どのタグもこの間に入るので、ブラウザーはその言葉が表示する文字ではなく指示だとわかります。閉じるタグにはスラッシュが付きます。</p> です。

もっと学ぶ

aria-

支援技術の道具に要素を説明する属性

aria- で始まる名前の属性(aria-label や aria-hidden など)は、要素が何なのか、どんな状態なのかをスクリーンリーダーに伝えます。画面の見た目は何も変えず、ページが見えない人のために意味を足すだけです。まずぴったりの HTML のタグを使い、タグだけでは言えないことに aria- を使います。

もっと学ぶ

alt

画像を言葉で説明する属性

alt は img タグの属性で、画像の短い説明の文章を入れておきます。スクリーンリーダーはそれを読み上げ、検索エンジンも使い、画像が読み込めないとブラウザーがそれを表示します。画像に何が写っているかを書きましょう。ただの飾りの画像には空の alt="" を付けます。

もっと学ぶ

<body>

HTML のページのうち、訪問者に実際に見える部分

body は HTML の文書の二つの大きな部分の一つです。窓に表示されるもの(見出し・文章・画像・ボタン)はすべて <body> と </body> の間に入ります。タイトルや文字コードのような、ページについての情報は代わりに head に入れます。

もっと学ぶ

head

HTML のページのうち、ページについての情報を入れる部分

head は HTML の文書で body の前に来ます。ページそのものではなく、ページについてのものを入れます。ブラウザーのタブと検索結果に出るタイトル、文字コード、スタイルファイルへのリンクなどです。head の中のものは、窓には何も描かれません。

もっと学ぶ

class

要素の集まりに名前を付ける属性

class は、要素を名前の付いたグループに入れる HTML の属性です。たくさんの要素が一つの class を共有でき、一つの要素が空白で区切っていくつも持てます。CSS と JavaScript はその名前でグループを見つけ、たとえばすべての警告を赤くします。

もっと学ぶ

id

一つの要素にほかと重ならない名前を付ける属性

id は、ちょうど一つの要素に名前を付ける HTML の属性です。ページの中で二つの要素が同じ id を持ってはいけません。スクリプトはそれでその要素をつかみ、CSS は見た目を決められ、#名前 で終わるリンクはそこへまっすぐ飛びます。

もっと学ぶ

div

一行まるごとを使う、ただの箱のタグ

div は、それ自体の意味を持たない HTML のタグです。ほかの要素を、新しい行から始まって横幅いっぱいに広がるブロックにまとめるので、CSS でそのまとまりを置いたり見た目を決めたりできます。意味のあるタグ(header、nav、section…)が合わないときだけ使いましょう。

もっと学ぶ

span

文章の行の中に入る、ただの箱のタグ

span は、それ自体の意味を持たない HTML のタグで、行を折らずに、行の中のいくつかの言葉を包みます。CSS や JavaScript がその部分だけに届くようにするためのもので、たとえば一つの言葉に色を付けます。言葉が大事だったり強調したかったりするなら、strong や em のほうがうまく伝わります。

もっと学ぶ

h1 to h6

ページの目次を作る六つの見出しのタグ

h1 から h6 は HTML の見出しのタグです。h1 は大見出し、h2 は節、h3 はその節の一部、と h6 まで続きます。文書の骨組みを表し、スクリーンリーダーと検索エンジンはそれを使ってページの中を移動します。文字の大きさではなく段階なので、大きさは CSS で変えます。

もっと学ぶ

href

リンクが開くアドレスを入れる属性

href は a タグの属性で、リンクの行き先を表します。完全なアドレス(https://…)、同じサイトのパス(/about)、同じページの場所(#price)のどれでもかまいません。href がないと、a タグはリンクのように見えてもどこにも行かない、ただの文字です。

もっと学ぶ

src

画像やスクリプトのファイルがどこにあるかを入れる属性

src(source の略)は、要素にどのファイルを読み込むかをブラウザーに伝える属性です。img なら画像、script ならスクリプト、video なら動画です。ブラウザーはそのファイルのために別のリクエストを送ります。src がまちがっていると、画像が壊れたり、スクリプトが動かなかったりします。

もっと学ぶ

script タグ

原文の表記 · script tag

JavaScript を入れたり読み込んだりする HTML の <script> の部分

script タグは、ページに JavaScript を入れます。<script> と </script> の間に書くか、src でファイルから読み込みます。ブラウザーはページを読みながらそれを実行するので、要素に触れるスクリプトはふつう body の最後に置くか、defer を使います。

もっと学ぶ

style ブロック

原文の表記 · style block

CSS を入れる HTML の <style> の部分

style ブロックは、ページの中の <style> と </style> の間に書いた CSS で、ふつうは head に置きます。小さなページ一つなら便利ですが、サイト全体なら、同じルールを別の .css ファイルに書き、すべてのページからリンクします。消しても変わるのはページの見た目だけで、書いてあることやすることは変わりません。

もっと学ぶ

互換モード(quirks mode)

原文の表記 · Quirks mode

DOCTYPE がないときにブラウザーが使う、昔風の描き方

HTML のページが <!DOCTYPE html> で始まっていないと、ブラウザーはとても古いページだと思って互換モード(quirks mode)に切り替え、古いサイトが今でも正しく見えるように、1990 年代のブラウザーの変わった動きをまねします。すると大きさや間隔が今のルールと変わります。どのページも DOCTYPE の行で始めれば避けられます。

もっと学ぶ

スクリーンリーダー

原文の表記 · Screen reader

画面が見えない人のために画面を読み上げるプログラム

スクリーンリーダーは、画面にあるものを音声や点字に変えるので、目の見えない人や見えにくい人もコンピューターやスマホを使えます。HTML が頼りです。見出しで移動し、画像には alt の文章を、ボタンにはラベルを読みます。div の箱だけで作ったページでは、言えることがほとんどありません。

もっと学ぶ

検索エンジン

原文の表記 · Search engine

Web のページを集めて、探してくれるサービス

検索エンジン(Google、Bing、Naver など)は、プログラムを Web じゅうに送ってページを読ませ、見つけたものを巨大な索引にためて、誰かが検索したときにページを順位付けします。読むのは画像ではなく HTML です。見出し、タイトル、alt の文章が、ページが何についてのものかを伝えます。

もっと学ぶ

HTML フォーム

原文の表記 · HTML form

入力を集めてサーバーに送る、ページの部分

フォームは、訪問者が打ったり選んだりしたもの(テキストボックス・チェックボックス・ボタン)を集めて、ふつうは POST リクエストでサーバーに送る HTML の要素です。会員登録・ログイン・検索の欄はどれもフォームです。誰でも何でも送れるので、サーバーは届いたものを必ず確かめなければなりません。

もっと学ぶ

file://

自分のコンピューターのファイルを開くアドレスの形

file:// で始まるアドレスはサーバーではなく自分のディスクのファイルを指すので、ブラウザーはネットワークなしでそれを開きます。HTML のページを試すいちばんかんたんな方法です。JavaScript が送る多くのリクエストのように、本物の http:// や https:// のオリジンが必要な機能は、この方法では動きません。

もっと学ぶ

DOM

ブラウザーが HTML から組み立てる要素の木

DOM(Document Object Model)は、ブラウザーが HTML を読んだあとに組み立てる要素の木です。根に html、その下に head と body、という形です。画面はこの木から描かれ、JavaScript は木を変えることでページを変えます。開発者ツールは今の DOM を見せるので、スクリプトが動いたあとは HTML のファイルと違っていることがあります。

もっと学ぶ

Elements パネル

原文の表記 · Elements panel

今の HTML とスタイルを見せて、その場で編集できる開発者ツールのパネル

ブラウザーの開発者ツールの Elements パネルは、ページを要素の木として見せ、選んだ要素に当たっている CSS のルールも表示します。文字・属性・スタイルをその場で変えて、すぐに結果を見られます。何も保存されず、再読み込みすると消えるので、安心して試せる場所です。

もっと学ぶ

Network パネル

原文の表記 · Network panel

ページが送るすべてのリクエストを一覧にする開発者ツールのパネル

Network パネルは、ページが送るリクエスト(ページそのもの・スタイル・画像・スクリプト・API の呼び出し)を一つずつ、メソッド・ステータスコード・大きさ・時間つきで並べます。一つをクリックすると、そのリクエストとレスポンスのヘッダーと本文を読めます。たいていのバグの最初の問い、「サーバーは答えたか、何を答えたか」に答えてくれます。

もっと学ぶ

Sources

スクリプトを読んだり一時停止したりする開発者ツールのパネル

Sources パネルは、ページが読み込んだファイル(ほとんどは JavaScript)を見せます。行番号をクリックするとブレークポイントが置かれ、次にコードがその行に来るとページが止まるので、変数の値を見ながら一行ずつ先に進められます。

もっと学ぶ

Application

サイトがブラウザーに保存したものを見せる開発者ツールのパネル

Application パネルは、サイトが自分の機械に保存したもの(クッキー、ローカルストレージ、キャッシュストレージ、サービスワーカー)を見せます。一つずつ読んだり、編集したり、消したりできます。自分のところでだけサイトの様子がおかしいときは、ここでそのサイトの保存データを消すと直ることがよくあります。

もっと学ぶ

ローカルストレージ

原文の表記 · Local storage

サイトがブラウザーの中にデータを置いておく小さな置き場

ローカルストレージを使うと、Web サイトは短い文字をキーと値の組としてブラウザーに保存でき、タブを閉じても残ります。クッキーと違って、リクエストのたびにサーバーへ送られることはありません。同じサイトだけのものですが、そのブラウザーを使う人なら誰でも読めるので、パスワードやキーを入れてはいけません。

もっと学ぶ

レンダリングエンジン

原文の表記 · Rendering engine

HTML と CSS をピクセルに変える、ブラウザーの部分

レンダリングエンジンはブラウザーの心臓部です。HTML と CSS を読み、要素の木を組み立て、大きさと位置を計算して、結果を画面に描きます。Chrome と Edge は Blink、Safari は WebKit、Firefox は Gecko を使っています。そのため、ページの見た目がブラウザーによって少し違うことがあります。

もっと学ぶ

同一オリジンポリシー

原文の表記 · Same-origin policy

サイトどうしがおたがいのデータを読めないようにするルール

オリジンとは、https://sonub.com のような、スキーム・ホスト・ポートの組み合わせです。同一オリジンポリシーでは、ページが自由にデータを読めるのは自分のオリジンからだけです。ブラウザーがそこにログインしていても、別のサイトのスクリプトは自分のメールや銀行のページを読めません。サーバーは、CORS のヘッダーで選んだほかのオリジンを許可できます。

もっと学ぶ

Chromium

Chrome や Edge などのもとになっているオープンソース

Chromium は、Google が中心になって進めているオープンソースのブラウザーのプロジェクトです。Chrome、Microsoft Edge、Brave、Opera、Arc はどれもこれをもとに作られ、Blink というレンダリングエンジンを共有しているので、どれか一つで動くページはたいていほかでも動きます。これをもとにしていないおもなブラウザーは、Safari(WebKit)と Firefox(Gecko)です。

もっと学ぶ

疑似ヘッダー(pseudo-header)

原文の表記 · Pseudo-header

最初の行と Host の代わりをする、HTTP/2 の特別なヘッダー

HTTP/2 には文字のリクエスト行がありません。メソッド・パス・サイトの名前は、名前がコロンで始まる特別なヘッダーで運ばれます。:method、:path、:authority(それに :scheme)です。開発者ツールでは、リクエストヘッダーのいちばん上に出ます。HTTP/1.1 の GET /path HTTP/1.1 と Host: と同じ情報を運んでいます。

もっと学ぶ

キャリッジリターン

原文の表記 · Carriage return

HTTP がすべての改行の前に置く、見えない文字 \r

キャリッジリターン(\r と書きます)は、昔タイプライターを行の始まりに戻していた、見えない文字です。HTTP ではすべての行を、\r とそれに続く改行 \n(合わせて CRLF)で終えることになっています。\n だけでも受け付けるサーバーは多いですが、HTTP を一行ずつ読む道具は、残った \r を取り除かなければならないことがよくあります。

もっと学ぶ

200

リクエストが成功したことを表すステータスコード(OK)

200 OK は、すべてがうまくいき、レスポンスに求められたもの(ページ、画像、JSON)が入っているときにサーバーが送るステータスコードです。いちばんよく出るコードです。200 はサーバーがリクエストを処理したと言うだけで、中身そのものは、誰かが手で書いたエラーのページかもしれません。

もっと学ぶ

200 番台

原文の表記 · 200s

成功を表すステータスコードのグループ

200 から 299 までのステータスコードは、どれもリクエストがうまくいったという意味です。ふつうは 200 OK で、201 Created は(たとえば POST のあとに)何か新しいものができたこと、204 No Content はうまくいったけれど返すものがないことを伝えます。最初の数字だけで結果がわかります。

もっと学ぶ

301

ページがずっと引っ越したことを伝えるステータスコード

301 Moved Permanently は、アドレスがずっと変わったことをクライアントに伝え、新しいアドレスは Location ヘッダーに入っています。ブラウザーは自動でそれに従って覚え、検索エンジンは記録を新しいアドレスに移します。curl は -L を付けない限り従わないので、ほとんど空の返事が見えます。

もっと学ぶ

308

リクエストのメソッドを保ったままの、ずっと続くリダイレクト

308 Permanent Redirect は 301 と同じく、アドレスがずっと変わったという意味ですが、一つ違いがあります。クライアントは、同じメソッドと本文でリクエストをくり返さなければなりません。301 では、引っ越し先に従うときに POST が GET に変わることがあります。Caddy は http の訪問者を https に送るときに 308 を使います。

もっと学ぶ

400 番台

原文の表記 · 400s

リクエストの側に問題があることを表すステータスコードのグループ

400 から 499 までのステータスコードは、問題がクライアントの側にあると伝えます。まちがったアドレス、足りないログイン、サーバーが受け付けないリクエストです。同じリクエストをもう一度送っても役に立たず、どこかを変えなければなりません。よく出るのは 400 Bad Request、401、403 Forbidden、404 Not Found です。

もっと学ぶ

404

求められたパスがないことを伝えるステータスコード

404 Not Found は、サーバーは動いているけれど、そのパスには何もないという意味です。アドレスの打ち間違い、消したページ、まちがったフォルダーにあるファイルなどです。Web でいちばん有名なエラーコードです。Caddy で配信するシングルページアプリでは、深いリンクを再読み込みすると、index.html に戻すようにサーバーに伝えていない限り 404 になります。

もっと学ぶ

500 番台

原文の表記 · 500s

サーバーが失敗したことを表すステータスコードのグループ

500 から 599 までのステータスコードは、リクエストは正しかったのに、処理する途中でサーバーが壊れたと伝えます。コードのバグ、止まったデータベース、リバースプロキシの後ろで答えないプログラムなどです。直すのはサーバーを動かしている人で、くわしいことはブラウザーではなくサーバーのログにあります。

もっと学ぶ

空行

原文の表記 · Blank line

HTTP のヘッダーと本文を分ける空の行

HTTP のメッセージは、始まりの行、いくつかのヘッダーの行、空行一つ、そして本文でできています。空行(\r\n だけ)がヘッダーと中身のただ一つの境目なので、これを忘れたサーバーは壊れた返事を送ることになります。反対に、HTML のファイルの中の空行は何もしません。ブラウザーは無視します。

もっと学ぶ

HTTP 圧縮

原文の表記 · Compression

速く届くように、送る前にレスポンスを小さくすること

HTTP 圧縮は、レスポンス(HTML、CSS、JavaScript、JSON)を送る前にぎゅっと縮め、ブラウザーは届いたときに元に戻します。ブラウザーは自分が戻せる方式を Accept-Encoding ヘッダーに並べ、サーバーは使った方式(gzip、br、zstd)を Content-Encoding に書きます。文字は元の大きさの何分の一にもなることがよくありますが、画像や動画はすでに圧縮されているので、あまり変わりません。

もっと学ぶ

Location ヘッダー

原文の表記 · Location header

リダイレクトの新しいアドレスを入れるレスポンスヘッダー

Location は、アドレスを運ぶ HTTP のレスポンスヘッダーです。リダイレクト(301、302、307、308)では、クライアントが代わりにどこへ行けばよいかを伝え、ブラウザーは自分でそれに従います。何かを作った POST(201 Created)のあとでは、新しい項目を指すこともあります。

もっと学ぶ

リクエスト行

原文の表記 · Request line

HTTP リクエストの最初の行 — メソッド・パス・バージョン

HTTP/1.1 のリクエストはどれも、空白で区切った三つの部分でできたリクエスト行から始まります。メソッド(GET、POST…)、パス(/learn)、プロトコルのバージョン(HTTP/1.1)です。ヘッダーや本文など、ほかのものはすべてそのあとに続きます。シンプルなサーバーは、この一行を読むだけで何を返せばよいかがわかります。

もっと学ぶ

プロトコルのバージョン

原文の表記 · Protocol version

メッセージが使う HTTP の版 — HTTP/1.1、2、3

HTTP にはいくつかのバージョンがあります。HTTP/1.1(1997 年)は、手でも打てるふつうの文字の行を送ります。HTTP/2(2015 年)は、同じ意味をバイナリのフレームで送り、一つの接続でたくさんのリクエストを同時に送ります。HTTP/3(2022 年)は、それを TCP ではなく UDP の上の QUIC で行います。メソッド・ヘッダー・ステータスコードの意味は、どれでも同じです。

もっと学ぶ

メッセージ本文(ボディ)

原文の表記 · Message body

HTTP のヘッダーのあとに来る、実際の中身

本文(ボディ)は、HTTP のメッセージのうち空行のあとの部分です。ページの HTML、画像のバイト、API の答えの JSON、POST のフォームのデータなどです。ヘッダーがそれを説明します。Content-Type は何なのかを、Content-Length は長さを伝えます。GET のリクエストには、ふつう本文がありません。

もっと学ぶ

ルーティング

原文の表記 · Routing

それぞれのリクエストを、アドレスによって正しい担当に送ること

ルーティングは、パスやドメインをもとに、何がリクエストに答えるかを決めます。/about は一つのページを返し、/api/… はプログラムへ行き、files.example.com はファイルサーバーへ行きます。Web のフレームワークはコードの中にルートの一覧を持ち、Caddy のようなサーバーは設定の中でパスとホストによって振り分けます。ルーティングのないサーバーは、どのアドレスにも同じように答えます。

もっと学ぶ

サブドメイン

原文の表記 · Subdomain

teacher.sonub.com のように、ドメインの前に足した名前

サブドメインは、自分の持っているドメインの前に足した名前です。teacher.sonub.com と student.sonub.com は sonub.com のサブドメインです。それぞれを別のサーバーやアプリに向けられ、作るのに DNS のレコード以外の費用はかかりません。www も、昔からの習慣でサブドメインです。

もっと学ぶ

タイムアウト

原文の表記 · Timeout

答えを待つのをやめる、時間の上限

タイムアウトは、接続・返事・リクエスト全体について、プログラムがあきらめるまでにどれだけ待つかです。これがないと、クライアントは止まったサーバーをいつまでも待ち続け、サーバーは遅い訪問者にしばられてしまいます。時間切れになると答えの代わりにエラーが出ますが、ふつうはいつまでも待つよりましです。

もっと学ぶ

/health

サーバーが動いているかを答えるアドレス

ヘルスチェックは小さなアドレス(よく /health)で、サーバーは「動いています」(といくつかの事実)とすぐに答えます。人やスクリプトや監視の道具がこれを呼び、本当の仕事を送る前にサービスが生きているかを確かめたり、答えなくなったら再起動したりします。

もっと学ぶ

暗号化

原文の表記 · Encryption

鍵を持つ人だけが読めるように、データをかき混ぜること

暗号化は、鍵を使って読めるデータをかき混ぜたバイトに変えます。正しい鍵を持つ人だけが元に戻せます。HTTPS は、ブラウザーとサーバーの間のすべてを暗号化するので、同じ Wi-Fi や途中の道すじにいる人には、ただの雑音しか見えません。隠すのは中身で、そのサイトを訪れたという事実ではありません。

もっと学ぶ

TLS

HTTPS を暗号化し、サーバーが本物だと証明する層

TLS(Transport Layer Security)は、HTTPS の S にあたるプロトコルです。接続の始めに両側がサーバーの証明書を確かめ、秘密の鍵を取り決めます。それからあとのものはすべて暗号化され、書き換えからも守られます。SSL はその古い、もう使われない前身で、そのため今でも「SSL 証明書」と言う人がいます。

もっと学ぶ

TCP

データを欠けずに順番どおり届ける接続のルール

TCP(Transmission Control Protocol)は二つのコンピューターの間に接続を開き、すべてのバイトが正しい順番で届くようにし、途中でなくしたものは送り直します。HTTP/1.1 と HTTP/2 はその上で動きます。確かめるのに少し時間がかかるので、速さが大事なゲームは代わりに UDP を選ぶことがあります。

もっと学ぶ

UDP

届いたかを確かめずにデータを送る、速いやり方

UDP(User Datagram Protocol)は、接続を開かず、届いたか順番どおりかを確かめずに小さなパケットを送ります。そのぶん速いので、音声通話・ライブ動画・オンラインゲーム・DNS に向いています。なくしてはいけないものは、プログラム自身か、QUIC のような上の層が確かめる必要があります。

もっと学ぶ

QUIC

UDP の上に作られた、HTTP/3 の下の転送のしくみ

QUIC は UDP の上で動く転送のプロトコルで、TLS の暗号化を接続そのものに組み込んでいます。接続を開くのにかかる往復が TCP と TLS を合わせたものより少なく、パケットが一つなくなっても、ほかのすべてのリクエストが止まることはありません。HTTP/3 は QUIC で運ぶ HTTP です。

もっと学ぶ

rUDP

信頼できる UDP — UDP に届いたかの確認を足したもの。リアルタイムのゲームで使われます

rUDP(reliable UDP)は、ふつうの UDP にないもの(受け取りの確認・送り直し・順番そろえ)を、必要なメッセージにだけ足します。ゲームは、なくなってもよい位置の更新を速い UDP のパケットで送り、「プレイヤーがアイテムを買った」は同じ接続で確実に送れます。一つの決まった標準ではなく、ゲームのライブラリの技術のグループです。

もっと学ぶ

ネットワークの往復

原文の表記 · Network round trip

リクエストが別の機械まで行き、答えが戻ってくるまでの一回の行き来

往復とは、メッセージが別の機械まで行き、返事が戻ってくるまでの時間です。一回ごとに遅れが増えます。近くなら数ミリ秒ですが、世界の反対側ならずっと長くなるので、小さな答えをたくさん必要とするプログラムは遅く感じられます。コードをデータの近くに置いたり、リクエストをまとめたりすると、往復の回数を減らせます。

もっと学ぶ

安全なコンテキスト

原文の表記 · Secure context

HTTPS で開いた、強い機能を許されたページ

ブラウザーは、いくつかの強力な機能を安全なコンテキスト(セキュアコンテキスト)でだけ許します。HTTPS で読み込んだページ(開発中なら localhost から開いたもの)です。マイクとカメラ、オフラインで遊ぶためのサービスワーカー、消されない保存領域を求めることなどがその例です。ふつうの http:// では、こうした機能はただ使えません。

もっと学ぶ

サービスワーカー

原文の表記 · Service worker

ページの後ろで動き、キャッシュやオフラインの利用を受け持つスクリプト

サービスワーカーは、ブラウザーがページとは別に動かす JavaScript のファイルです。ページとネットワークの間に立つので、キャッシュからリクエストに答えて、サイトやゲームをオフラインでも開けるようにしたり、プッシュのメッセージを受け取ったりできます。安全なコンテキスト(HTTPS)でしか動きません。

もっと学ぶ

Web アプリマニフェスト

原文の表記 · Web app manifest

Web アプリをインストールできるようにする JSON ファイル

Web アプリマニフェストは、アプリの名前・アイコン・色・始まりのアドレスを入れた JSON ファイルです。ページがこれにリンクしていると、ブラウザーはサイトをホーム画面にインストールするようすすめられ、アプリのように自分の窓で開きます。Cadeplay ではプラットフォームが代わりに足すので、ゲームが自分のものを入れてはいけません。

もっと学ぶ

PWA

アプリのようにホーム画面にインストールできる Web アプリ

PWA(Progressive Web App)は、インストールしたアプリのように振る舞うよう作られた Web サイトです。ホーム画面に足せるように Web アプリマニフェストがあり、ふつうは速く開いてオフラインでも動くようにサービスワーカーがあります。アプリストアの審査はなく、プレイヤーはブラウザーからそのままインストールします。

もっと学ぶ

Web アプリ

原文の表記 · Web app

ブラウザーで動き、アプリのように使うプログラム

Web アプリは、ページを見せるだけでなく仕事をする Web サイトです。メール、文書、ダッシュボード、ゲームなどです。ブラウザーで動くのでインストールするものがなく、訪問者はみんなすぐにいちばん新しい版を使えます。その後ろには、ふつうデータを保存するサーバーがあります。

もっと学ぶ

WebGL

GPU で 2D と 3D の絵を描くブラウザーの技術

WebGL を使うと、Web ページの JavaScript がグラフィックカードで 2D と 3D の場面をすばやく描けます。プラグインはいりません。Three.js、Babylon.js、PixiJS、Phaser のようなゲームエンジンやライブラリは内部でこれを使い、Unity はゲームをブラウザーで動く WebGL のビルドとして書き出せます。

もっと学ぶ

キャンバス

原文の表記 · Canvas

コードが一ピクセルずつ絵を描く画面の範囲

キャンバスは、できあいの要素を置く代わりに、プログラムが図形・画像・文字をじかに描く画面上の四角です。2D の Web ゲームのほとんどは、すべてのフレームを HTML のキャンバスに描き、Flutter Flame のようなゲームのフレームワークも、ふつうのウィジェットに囲まれたキャンバスにゲームを描きます。

もっと学ぶ

Cadeplay

zip を一つアップロードするだけでゲームを公開できる Web ゲームのプラットフォーム

Cadeplay(cadeplay.com)は、インストールなしでブラウザーでそのまま遊ぶ HTML5 ゲームのポータルです。ゲームを一つの zip としてアップロードすると自動で確かめられ、ずっと変わらない自分のアドレス(name.cadeplay.com)がもらえます。プラットフォームがクラウドセーブ・リーダーボード・インストール用のマニフェストも足してくれるので、ゲームが自分で作る必要はありません。

もっと学ぶ

Cadeplay コンソール

原文の表記 · Cadeplay console

開発者がゲームを管理する管理用のサイト

開発者コンソールは、プラットフォームの管理用の Web サイトです。開発者としてサインインし、ゲームやアプリを登録し、ビルドをアップロードし、レポートを読み、アクセストークンを作ります。Cadeplay コンソールや Google の Play Console がその例です。そこでクリックしてできることは、たいていプラットフォームの API でもできます。

もっと学ぶ

ホストラベル

原文の表記 · Host label

name.cadeplay.com のように、アドレスのいちばん前にある名前

ホストラベルは、ホスト名をドットで区切った一つ一つの部分です。ここでは最初の部分、つまり name.cadeplay.com の中でゲームのために選ぶ名前のことです。ラベルには英字・数字・ハイフンを使えます。Cadeplay では、ゲームを最初に公開したときにずっと固定されるので、公開する前に選びましょう。

もっと学ぶ

ベースパス

原文の表記 · Base path

ファイルのアドレスがどこから始まるかを決めるビルドの設定

Vite のようなビルドの道具には base という設定があり、ビルドしたゲームやサイトのすべてのファイルのアドレスの前に付けられます。/ のような絶対パスだと、ファイルはドメインのいちばん上で探されるので、ゲームが別の場所に置かれると壊れます。相対の base(./)にすると、同じビルドが自分のコンピューターでも Cadeplay のような置き場所でも動きます。

もっと学ぶ

鍵マーク

原文の表記 · Padlock

信頼できる HTTPS のページであることを示す、アドレスバーの印

ページが有効な証明書つきの HTTPS で届いたとき、ブラウザーはアドレスの横に印(昔からは鍵の形)を表示します。接続が暗号化されていて、サイトが本当にそのドメインだという意味で、サイトが正直だという意味ではありません。新しいサーバーにまだ有効な証明書がないときは、印が警告に変わります。

もっと学ぶ

CDN

近くからファイルのコピーを渡してくれるサーバーの網

CDN(Content Delivery Network)は、サイトのファイル(画像・スクリプト・ページ全体)のコピーを世界中のたくさんのサーバーに置き、訪問者ごとにいちばん近いところから答えます。ページが速く読み込まれ、元のサーバーの仕事も減ります。Cloudflare、Fastly、Amazon CloudFront がよく知られた CDN です。

もっと学ぶ

コンポーネント

原文の表記 · Component

ページを組み立てる、くり返し使える部品

コンポーネントは、ボタン・カード・メニューのような画面の部品で、一度書けば何度も使え、それぞれが自分の構造・見た目・動きを持っています。React のようなライブラリはページ全体をコンポーネントで組み立て、それぞれに表示するデータを渡します。コンポーネントを一つ直すと、使っているすべての場所が直ります。

もっと学ぶ

認証

原文の表記 · Authentication

利用者やプログラムが誰なのかを確かめること

認証は「あなたは誰?」に答えます。パスワード、Google や Apple でのログイン、スマホに送られるコード、プログラムがリクエストごとに送るトークンなどです。その人が何をしてよいかを決める認可より先に来ます。push や API の呼び出しが認証のせいで断られたら、資格情報がないか、まちがっているか、期限が切れています。

もっと学ぶ

レイアウト

原文の表記 · Layout

画面の部分がどう並んでいるか

レイアウトは、画面のそれぞれの部分(ヘッダー・メニュー・中身・サイドバー・フッター)をどこに置くか、広い画面とせまい画面でどう動くかを決めます。Web では CSS で書きます。サイトのコードでは、「レイアウト」がすべてのページを入れる、ヘッダーとメニューの枠という共通のテンプレートを指すこともあります。

もっと学ぶ

縦横比(アスペクト比)

原文の表記 · Aspect ratio

画像の横幅と高さの比

縦横比は、画像や画面の横幅が高さに比べてどれだけかを、横 : 縦 の形で表します。16:9 はワイド画面の動画、1:1 は正方形、9:16 は縦に持ったスマホです。切り取らずに変えると画像がつぶれたり伸びたりするので、AI に画像の編集を頼むときは、ほしい比を伝えましょう。

もっと学ぶ

フルスタック

原文の表記 · Full-stack

画面からサーバーまで、すべてを受け持つこと

フルスタックとは、製品のすべての層を受け持つことです。利用者に見える部分(フロントエンド)、その後ろのサーバーとデータベース(バックエンド)、そしてよくデプロイもです。フルスタックの開発者は一人でアプリ全体を作れ、フルスタックのプロジェクトは、どれか一つではなくそのすべての部品を含んでいます。

もっと学ぶ

個人用アクセストークン

原文の表記 · Personal access token

パスワードの代わりに GitHub にサインインするのに使うトークン

個人用アクセストークンは、GitHub が作ってくれる長い秘密の文字列で、パスワードを入れるところで使います。たとえば git push がサインインを求めたときです。何をしてよいかといつ期限が切れるかを自分で選べ、いつでも取り消せます。パスワードと同じように扱い、チャットに貼り付けたりコミットしたりしてはいけません。

もっと学ぶ

ハンドシェイク

原文の表記 · Handshake

両側が話し方を取り決める、最初のやり取り

ハンドシェイクは、接続の最初のいくつかのメッセージで、本当の仕事が始まる前に両側がおたがいを確かめ、設定(バージョン・できること・鍵)を取り決めます。TLS はこれで始まり、MCP は initialize のリクエストと返事を使ってきました。ハンドシェイクが失敗すると、ほかには何も送られません。

もっと学ぶ

HTML バリデーター

原文の表記 · HTML validator

HTML がルールどおりかを確かめる道具

HTML バリデーターはページを読み、HTML のルールに反しているところをすべて並べます。閉じていないタグ、まちがった場所の属性、重なった id などです。ブラウザーはこうしたまちがいを黙って推測で補うので、見た目は大丈夫でも、スクリーンリーダーや別のブラウザーでは壊れていることがあります。W3C が validator.w3.org で無料のものを動かしています。

もっと学ぶ

入力チェック

原文の表記 · Input validation

利用者が打ったものを使う前に、許されたものかを確かめること

入力チェックは、利用者が送るそれぞれの値を確かめます。メールアドレスはメールアドレスの形か、年齢は数か、名前は長すぎないか、などです。おかしいものは、わかりやすいメッセージで断ります。ブラウザーでの確認は便利のためのもので、サーバーはもう一度確かめなければなりません。ページを使わずにリクエストを送ることは誰にでもできるからです。

もっと学ぶ

JSON-RPC

JSON のメッセージを送って関数を呼び出す、シンプルなルール

JSON-RPC は、JSON で書く遠隔呼び出しの小さな標準です。リクエストはメソッドとその params を名前で示し、id を持ちます。返事は同じ id と、result か error を持ちます。id のないメッセージは通知で、返事はありません。MCP はすべてのメッセージに JSON-RPC 2.0 を使っています。

もっと学ぶ

JSON-RPC の通知

原文の表記 · Notification

返事を求めない、一方通行の JSON-RPC のメッセージ

JSON-RPC では、通知は id のないメッセージです。何かが起きたことを相手に伝えるもので(たとえば MCP でハンドシェイクのあとに送る notifications/initialized)、受け取った側は答えてはいけません。返事がないので、送った側は処理されたかどうかを知ることがありません。

もっと学ぶ

ローカル API

原文の表記 · Local API

自分のコンピューターのプログラムが提供する API

ローカル API は、自分の機械のプログラムが http://localhost:11434 のようなアドレスで提供する API です。自分のアプリはクラウドの API とまったく同じようにこれと話しますが、リクエストはコンピューターの外に出ません。インターネットも有料のキーもいりません。Ollama や llama.cpp のようなモデルのランナーはこの方法で動きます。

もっと学ぶ

転送方式(トランスポート)

原文の表記 · Transport

MCP のメッセージを運ぶ通り道 — stdio か HTTP

転送方式は、MCP のメッセージがクライアントとサーバーの間をどう行き来するかです。stdio では、クライアントが同じコンピューターでサーバーのプログラムを起動し、標準入力と標準出力で話します。Streamable HTTP では、サーバーは Web のアドレスで動き、たくさんの利用者がつなげます。どちらでもメッセージは同じです。

もっと学ぶ

モバイルファースト

原文の表記 · Mobile first

まずスマホの画面のために作り、それから広げること

モバイルファーストとは、まずせまいスマホの画面のためにレイアウトを書き、その上に広い画面のためのルールを足すことです。ほとんどの訪問者はスマホで来ますし、シンプルな一列のページを広げるほうが、ごちゃごちゃしたパソコン用のページを縮めるよりかんたんです。CSS では、広い画面のルールを min-width のメディアクエリの中に書きます。

もっと学ぶ

オープンな標準

原文の表記 · Open standard

誰でも自由に読んで使える、みんなのルール

オープンな標準(オープンスタンダード)とは、許可を求めたりお金を払ったりせずに、誰でも読んで実装できるように公開された仕様です。HTML、HTTP、JSON はオープンな標準で、だからどのブラウザーでもどのサイトでも開けます。Agent Skills と MCP もオープンな標準なので、一つのスキルやサーバーがたくさんの AI の道具で動きます。

もっと学ぶ

仕様(スペック)

原文の表記 · Specification

技術がどう動かなければならないかを正確に書いた公式の文書

仕様(スペック)は、技術を正確に決める公式の文章です。正しいメッセージはどんな形か、それぞれの部分は何を意味するか、どんな場合に何が起きなければならないかを書いています。違うメーカーのプログラムどうしが一緒に動けるのは、同じ仕様に従っているからです。仕様は更新されることがあるので、どれに従うかは日付やバージョン番号でわかります。

もっと学ぶ

静的サイト

原文の表記 · Static site

できあがったファイルを、そのまま配る Web サイト

静的サイトは、ただのファイル(HTML、CSS、JavaScript、画像)で、サーバーはそれを変えずに渡します。訪問者ごとにサーバーで何かが動くことはありません。そのため速く、安く、安全に置いておけ、無料のことも多くあります(Cloudflare Pages、GitHub Pages)。中のものは誰でもダウンロードできるので、秘密を入れてはいけません。

もっと学ぶ

URI

ものに名前を付ける識別用の文字列(URL はその一種)

URI(Uniform Resource Identifier)は、スキーム、コロン、そして残りという決まった形で何かに名前を付ける文字列です。URL はどれも、それをどこから取ってくるか(https://…)も表す URI ですが、URI は mailto:me@example.com や notes://shopping のような MCP のリソースのように、Web ページではないものにも名前を付けられます。

もっと学ぶ

Sign in with Apple

Apple のアカウントでアプリやサイトにログインすること

Sign in with Apple を使うと、新しいパスワードを作る代わりに Apple アカウントでログインでき、本当のメールアドレスを中継用のアドレスの後ろに隠すこともできます。Apple の App Store のルールでは、Google のようなほかの会社のログインを用意するアプリは、このようなプライバシーに配慮した方法も用意するよう求められ、そうでないとアプリが却下されることがあります。

もっと学ぶ

ダッシュボード

原文の表記 · Dashboard

状態と設定を一か所に集めた画面

ダッシュボードは、サービスのいちばん大事な数・一覧・設定を一つの画面に集めたページで、メニューを探し回らなくても、今どうなっているかを見て動けます。ホスティングのサービスの管理ページも、自分の学習の進み具合のページも、どちらもダッシュボードです。

3D

横・縦・奥行きがあって、まわりを見回せる絵

3D の絵は、ものを三つの次元(横・縦・奥行き)で表し、プログラムがそれを毎フレーム、カメラの視点から、ふつうは GPU で描きます。2D のゲームは代わりに平らな絵を描きます。3D はずっと手間がかかります。モデル、光、カメラ、そしてもっと重いエンジンが必要です。

もっと学ぶ

画面共有

原文の表記 · Screen sharing

自分のコンピューターの画面を、ほかの人にリアルタイムで見せること

画面共有は、自分の画面(画面全体、一つの窓、ブラウザーの一つのタブ)の今の様子を、ビデオ通話のほかの人に送ります。試験の面接では画面全体を共有するので、審査官はあなたがすることや開くプログラムをすべて見られます。

もっと学ぶ

秘密鍵

原文の表記 · Secret key

決してほかの人に見せてはいけない鍵

秘密鍵とは、自分が誰かを証明したり、データに鍵をかけたりする値です。API キー、パスワードのようなトークン、鍵の組の秘密のほう、二つのコンピューターが接続を暗号化するために取り決める鍵などです。見た人は誰でもあなたとして動けるので、.env ファイルやシークレットの置き場に入れ、コード・チャット・スクリーンショットには決して入れません。

もっと学ぶ

セキュリティ

原文の表記 · Security

システムとデータを攻撃や漏れから守ること

セキュリティとは、システムとデータを安全に保つためにすることすべてです。知らない人が読んだり、変えたり、止めたりできないようにします。ふだんのコーディングでは、入力を確かめる、秘密鍵をコードに入れない、HTTPS を使う、それぞれのプログラムに必要な権限だけを与える、ソフトウェアを更新する、ということです。AI は速くコードを書けますが、そのセキュリティを確かめるのは人の仕事のままです。

もっと学ぶ

WebAssembly

ブラウザーの中で速いプログラムを動かす、小さなバイナリ形式

WebAssembly(Wasm)は、ブラウザーが JavaScript と並んで、ネイティブに近い速さで動かすバイナリ形式です。C、C++、Rust で書いたプログラムをこれにコンパイルできます。だから、Python のインタープリター全体(Pyodide)や小さな AI モデルが、インストールなしで、サーバーに仕事をさせずに、Web ページの中で動けるのです。

もっと学ぶ

robots.txt

サイトのどの部分を見てよいかを検索ロボットに伝えるファイル

robots.txt は、サイトのいちばん上(/robots.txt)に置くふつうの文字のファイルで、クローラーがどのパスを見てよいか、見てはいけないかを伝えます。行儀のよい検索ロボットは、まずこれを読んで従います。お願いであって鍵ではありません。何も隠さず、誰でも読めます。

もっと学ぶ

検索ロボット

原文の表記 · Search robot

Web のページを次々に訪ねて集めるプログラム

検索ロボット(クローラー)は、ページを取ってきて、そのリンクをたどってほかのページへ行き、読んだものを保存するプログラムです。検索エンジンはこうして索引を作ります。よいものは先に robots.txt を読み、速く訪ねすぎません。AI の会社も、学習用の文章を集めるためにクローラーを動かしています。

もっと学ぶ

CAPTCHA

人とボットを見分けるためのテスト

CAPTCHA は、人がそこにいるかを確かめるためにサイトが出す小さな課題です。信号機の写った画像を選ぶ、ゆがんだ文字を打つ、ただ箱にチェックを入れる(その間サイトが振る舞いを確かめる)などです。サイトはスパムや自動の登録を防ぐために使います。ブラウザーを操作する AI の道具は、ここで止まって人に任せることになっています。

もっと学ぶ

ダークモード

原文の表記 · Dark mode

暗い背景に明るい文字を使う配色

ダークモードは、明るい背景に暗い文字の代わりに、暗い背景に明るい文字を表示します。夜に好む人が多く、OLED の画面のスマホでは電池の節約にもなります。サイトは CSS で機器の設定に合わせられるので、使うすべての色に、読みやすいままの暗い版が必要です。

もっと学ぶ

デザインの見本

原文の表記 · Mock-up

作る前に描いた、画面の絵

デザインの見本(モックアップ)は、コードができる前に、画面がどう見えるべきか(レイアウト・色・文字)を描いたものです。デザインの道具で作ったり、スクリーンショットだったりします。作る人は、できあがったページをこれと比べます。見本の画像を AI のコーディングの道具に貼り付けて、それに合わせてページを作るよう頼むこともできます。

もっと学ぶ

Docusaurus

Markdown のファイルを説明書の Web サイトに変える道具

Docusaurus は Meta で始まったオープンソースの道具で、Markdown のファイルから説明書(ドキュメント)の Web サイトを作ります。React の上に作られていて、検索・バージョン・翻訳を足し、どこにでも置ける静的サイトを作ります。

もっと学ぶ

MkDocs

Markdown から説明書のサイトを作る Python の道具

MkDocs は Python で書かれたオープンソースの道具で、Markdown のファイルのフォルダーと一つの YAML の設定ファイルを、説明書の Web サイトに変えます。Material for MkDocs というテーマといっしょに使われることが多く、できあがるのは静的サイトです。

もっと学ぶ

VitePress

Vite と Vue の上に作られた、速い説明書サイトの道具

VitePress は Vue のチームが作ったオープンソースの道具で、Markdown から説明書の Web サイトを作ります。書いている間のとても速いプレビューに Vite を、ページに Vue を使い、静的サイトを作ります。

もっと学ぶ

Svelte

コンポーネントを前もってコンパイルする Web の画面のフレームワーク

Svelte は、React や Vue と同じく、コンポーネントで Web の画面を作るためのオープンソースのフレームワークです。違うのは、Svelte がそれぞれのコンポーネントを配る前にふつうの JavaScript にコンパイルすることで、そのためブラウザーがダウンロードするフレームワークのコードが少なくなります。SvelteKit は、その上に作られたアプリのフレームワークです。

もっと学ぶ

Vue

コンポーネントで画面を作る JavaScript のフレームワーク

Vue は、Evan You が作った、コンポーネントで Web の画面を作るためのオープンソースの JavaScript のフレームワークです。コンポーネントは HTML のテンプレート・ロジック・スタイルをいっしょに持ち、データが変わると画面がひとりでに更新されます。ページの一部に足すことも、アプリ全体を動かすこともできます。

もっと学ぶ

キーボードフォーカス

原文の表記 · Keyboard focus

今キーボードの入力を受け取っている画面の要素

フォーカスは、ページの中で今キーの入力を受け取っているただ一つの要素(リンク・ボタン・テキストボックス)を示します。Tab で前に、Shift+Tab で後ろに動き、Enter で押します。ブラウザーはそのまわりに枠を描きます。その枠を消すとキーボードの利用者が迷ってしまい、ポップアップを閉じたあとにフォーカスを正しい場所に戻すと、迷わずにすみます。

もっと学ぶ

アンカー

原文の表記 · Anchor

リンクがまっすぐ飛べる、ページの中の名前の付いた場所

アンカーは、ページの中で自分の名前を持つ場所で、ふつうは要素の id か見出しです。#名前 で終わるリンクはページを開いて、そこまでまっすぐスクロールします。GitHub の Markdown のページは、すべての見出しに自動でアンカーを付けるので、用語集から一つの用語にリンクできます。

もっと学ぶ

alert・confirm ダイアログ

原文の表記 · alert or confirm dialog

誰かが答えるまでページを止める、ブラウザーの小さな窓

alert() と confirm() は、ブラウザー自身の小さな箱を開く JavaScript の呼び出しです。alert はメッセージと OK を見せ、confirm は OK かキャンセルかをたずねます。誰かがクリックするまで、ページはスクリプトや自動化の道具も含めて固まったままです。そのため、ブラウザーを操作する AI の道具は、手で閉じてくださいと頼みます。

もっと学ぶ

OAuth

パスワードを渡さずにアクセスを許す標準

OAuth は、「Google アカウントを連携する」のようなボタンの後ろにある標準です。本物のサービス自身のページでログインし、アプリに何をさせてよいかを承認します。アプリはパスワードではなくトークンを受け取り、それはいつでも取り消せます。リモートの MCP サーバーは、サインインに OAuth をよく使います。

もっと学ぶ

サーバーテンプレート

原文の表記 · Server template

サーバーが送る前に値を埋める HTML のひな形

サーバーテンプレートは空欄のある HTML のファイルで、サーバーはリクエストごとに空欄(名前や投稿の一覧)を埋めてから、できあがったページをブラウザーに送ります。Laravel は Blade を、Django と Flask は Jinja 風のテンプレートを使います。ブラウザーが目にするのは、いつもふつうの HTML だけです。

もっと学ぶ

シングルページアプリ

原文の表記 · Single-page app

新しいページを読み込まずに画面を描き直す Web アプリ

シングルページアプリ(SPA)は HTML のページを一つ読み込み、そのあとは JavaScript で画面の一部を描き直して、移動するたびにアドレスを変え、サーバーからはデータだけを取ってきます。画面の移動は速く感じられますが、サーバーはアプリのどのアドレスにも index.html を送らなければならず、ページを変える道具は描き直しのたびにもう一度動く必要があります。

もっと学ぶ

ツールチップ

原文の表記 · Tooltip

何かを指したときに出てくる、小さな説明の箱

ツールチップは、言葉やボタンの上にマウスを乗せたり、キーボードでフォーカスしたりすると出てきて、離れると消える小さな箱です。短いヒントが入っています。SONUB のポップアップは、それをもっと豊かにしたもので、意味・例・関連する用語の入ったカードです。

もっと学ぶ

PayPal

アカウントどうしでお金を送り合うオンライン決済サービス

PayPal はオンライン決済サービスです。カードや銀行口座を一度つないでおけば、ほかの PayPal アカウントに支払えます。SONUB では授業料を払う唯一の方法で、学生が PayPal で支払うと、お金はそのまま講師の PayPal ビジネスアカウントに入ります。SONUB がお金を預かることはありません。PayPal は自分の規約に従って独自の手数料を取ることがあります。

もっと学ぶ

PayPal ビジネスアカウント

原文の表記 · PayPal business account

支払いを受け取るための PayPal アカウント。Client ID と Secret で連携します

PayPal ビジネスアカウントは、支払いを受け取るための PayPal アカウントです。韓国とフィリピンでは事業者登録番号がなくても開設できます。SONUB ではすべての講師が一つ連携します。PayPal の開発者ダッシュボードで Live アプリを作り、その Client ID と Secret を講師プロフィールの「決済設定」タブに貼り付けます。SONUB はそれを授業の支払いの作成・確認・返金にだけ使います。お金はそのまま講師に入り、SONUB が受け取ったり預かったりすることはありません。

もっと学ぶ

新しいタブ

原文の表記 · New tab

同じブラウザーのウィンドウの中にもう一つ開くページ

ブラウザーは開いているページを、ウィンドウの上に並ぶタブ一つずつに表示します。リンクを新しいタブで開くと、それまで見ていたページが残るので、あとで戻れます。

Chrome

Google の無料のウェブブラウザー

Google Chrome は、オープンソースの Chromium プロジェクトをもとに作られた、パソコンとスマートフォン向けの無料のウェブブラウザーです。最も広く使われているブラウザーの一つです。SONUB のビデオ教室でブラウザーから授業を録画するには、パソコンの Chrome か Edge が必要です。

もっと学ぶ

Edge

Windows に最初から入っている Microsoft のウェブブラウザー

Microsoft Edge は Windows に最初から入っているウェブブラウザーです。Chrome と同じく Chromium をもとに作られているので、ほとんどのサイトはどちらでも同じように動きます。SONUB のビデオ教室で授業を録画するには、パソコンの Chrome か Edge が必要です。

Firefox

Mozilla が作っているウェブブラウザ

Firefox は Gecko エンジンでウェブページを表示するブラウザです。 オープンソースで、非営利財団の会社が作っています。Chrome と同じく開発者ツール(F12)があります。

もっと学ぶ

Safari

Apple が作っているウェブブラウザ

Safari は WebKit エンジンでウェブページを表示するブラウザです。 Mac・iPhone・iPad の標準ブラウザなので、ウェブページは Safari でも確認します。

もっと学ぶ

Brave

Brave Software が作っているウェブブラウザ

Brave は Chromium エンジンでウェブページを表示するブラウザです。 広告とトラッカーを標準でブロックし、Chromium をもとに作られているので Chrome の拡張機能や開発者ツールがほぼ同じように使えます。

もっと学ぶ

Opera

Opera が作っているウェブブラウザ

Opera は Chromium エンジンでウェブページを表示するブラウザです。 ノルウェー発の会社が作っていて、Chromium をもとにしているため開発者ツールは Chrome とほぼ同じです。

もっと学ぶ

MDN

HTML・CSS・JavaScript を解説する Mozilla の無料ドキュメント

MDN Web Docs は、Firefox を作っている Mozilla が運営する無料のウェブサイトで、HTML・CSS・JavaScript・ブラウザの API などのウェブ技術を解説しています。各ページで機能の働き、コード例、どのブラウザが対応しているかを示します。Firefox だけでなくすべてのブラウザを扱うため、ウェブ開発者がふだんから調べる定番の資料です。

もっと学ぶ

index.html

アドレスがフォルダーだけを指すときにウェブサーバーが送るページファイル

https://example.com/ のようにアドレスがフォルダーで終わると、ほとんどのウェブサーバー(nginx・Apache・Caddy)はそのフォルダーで index.html という名前のファイルを探して送ります。そのため、シンプルなサイトのトップページはふつう index.html です。このファイルがないと、代わりにエラーページかファイルの一覧が表示されます。

もっと学ぶ

example.com

文書の例のために取っておかれたドメイン名

example.com・example.org・example.net は、本や案内書が誰かの実際のサイトを指さずにアドレスを示せるよう予約されています。誰も登録できません。案内書に example.com とあれば、そこに自分のドメインを入れます。

もっと学ぶ

SONUB 用語辞典

インフラ

用語 144 個

サーバー

原文の表記 · Server

要求が来るのを待って答えるコンピューター

サーバーとは、要求を待ち受けてページやファイル、データを返す役目を担ったコンピューターにすぎません。特別な機械ではなく、使い古したノートパソコンでもサーバーになれます。サーバーたらしめているのはその役割と、ずっと起動しているという前提です。

もっと学ぶ

クライアント

原文の表記 · Client

尋ねる側 — 手元のブラウザーやスマートフォン、アプリ

この対において、尋ねる側がクライアント、答える側がサーバーです。ブラウザーもクライアントですし、スマートフォンのアプリもそうです。この区別が大切なのは、二つが別の場所で動くからです。クライアント側のコードは利用者の機器にあって中を見られてしまうので、API キーのような秘密は必ずサーバーに置きます。

もっと学ぶ

クラウド

原文の表記 · Cloud

自分で持たず、他人のコンピューターを借りて使う方式

クラウドは空のどこかではなく、データセンターにある他人のコンピューターを時間単位で借りる仕組みです。今日の午後にサーバーを十台立ち上げ、夜には止めて、使った分だけ払えます。その代わり手放すのは、制御と費用の見通しです。自分の持ち物でない機器の上に、他人の定めた条件で自分のデータが置かれるからです。

ポート

原文の表記 · Port

プログラムがネットワークとやり取りする、番号の付いた扉

一台のコンピューターでは多くのネットワークプログラムが同時に動いていて、ポート番号がどのプログラム宛てのメッセージかを見分けます。一つのポートは同時に一つのプログラムしか使えません。ウェブサーバーは標準で http に 80 番、https に 443 番を使うので、ウェブの住所にはふつう番号を書きません。

もっと学ぶ

リバースプロキシ

原文の表記 · Reverse proxy

前に立って、リクエストを後ろの正しいプログラムへ渡すサーバー

リバースプロキシは訪問者のリクエストを受け取り、内側のどこかのポートで待っているアプリケーションへそれぞれ渡し、そのアプリの答えを返します。訪問者が話す相手はいつもプロキシだけです。一台の機械が 443 番ポート一つで多くのサイトを抱える方法がこれで、たいてい HTTPS もプロキシが引き受けるので、後ろのアプリは気にしなくて済みます。

もっと学ぶ

Docker

プログラムを、封をした持ち運べる箱に入れて動かす道具

Docker はプログラムと、それに必要なものすべてをイメージにまとめ、コンテナとして動かして機械のほかの部分から切り離します。同じコンテナがノートパソコンでもサーバーでも同じように動くので、多くのウェブサイトが Docker で公開されています。仮想マシンではありません。コンテナはコンピューターのオペレーティングシステムのカーネルを共有するので、一秒ほどで起動します。

もっと学ぶ

Docker イメージ

原文の表記 · Docker image

コンテナを起動するもとになる、凍らせた包み

イメージにはプログラムとそのファイル・ライブラリ・設定が層に分けて収められていて、動いている間に変わることはありません。Docker Hub のような保管所からダウンロードするか、Dockerfile から自分で作ります。一つのイメージから、コンテナをいくつでも起動できます。

もっと学ぶ

コンテナ

原文の表記 · Container

Docker イメージを動かしたもの — 自分だけの封をした箱

コンテナとは、動いているイメージのことです。コンピューターからもほかのコンテナからも切り離された、自分だけのファイル・ネットワーク・ポートを持ちます。消すと中に書いたものはすべてなくなるので、残したいデータはボリュームかつないだフォルダーに置きます。

もっと学ぶ

デプロイ

原文の表記 · Deploy

アプリをほかの人が使える場所に置くこと

デプロイとは、自分のコンピューターで動くプログラムを、ほかの人が使える場所に置くことです。サーバー、クラウドサービス、Cadeplay のようなプラットフォームなどです。ふつうはビルドして、アップロードして、起動するまでを含み、そのあとの変更もそのたびにデプロイし直します。最初のデプロイは開発の終わりではありません。正直な感想が集まり始める出発点です。

ホスティング

原文の表記 · Hosting

サイトやサービスをサーバーで動かし続けること

ホスティングとは、Web サイト、ゲームサーバーなどのサービスを、いつも電源が入っていてインターネットからつながるコンピューターで動かすことです。ホスティング会社にお金を払って機械の面倒を見てもらうこともできますし、自分で管理するサーバーでソフトウェアを動かすセルフホストもできます。セルフホストは自由がきき、一つの会社に頼らずに済みますが、バックアップ、更新、障害への対応は自分の仕事になります。

もっと学ぶ

バックエンド

原文の表記 · Backend

利用者からは見えない、アプリのサーバー側

バックエンドは、アプリやゲームの裏でサーバー上に動いているものすべてです。アカウント、保存したデータ、ランキング、マッチメイキング、データベースなどです。利用者の画面に出る部分はクライアントです。ゲームのバックエンドが一つのプログラムだけということはまずなく、サーバーとデータベース、多くはキャッシュも組み合わせます。Docker Compose のような道具でまとめて起動するのはそのためです。

もっと学ぶ

VPS(仮想専用サーバー)

原文の表記 · VPS (virtual private server)

データセンターで借りる小さなコンピューター

VPS は大きなサーバーの一部ですが、自分のコンピューターのように動きます。自分専用のシステムがあり、昼も夜もついたままで、インターネットからつなげます。SSH で管理し、ふつうは月ごとに料金を払います。

もっと学ぶ

SSH

ターミナルから別のコンピューターに安全にログインする方法

SSH(Secure Shell)は、あなたのターミナルをサーバーのような別の場所にあるコンピューターにつなぎ、そのあいだを通るものをすべて暗号化します。SSH キーを使えば、パスワードなしでログインでき、より簡単で安全です。SSH キーはファイル二つの組で、公開用の片方だけをサーバーに置きます。

もっと学ぶ

tmux

接続を切ってもプログラムを動かし続けるターミナルの道具

tmux はターミナルの中にセッションを開きます。セッションから抜けて(detach)、あとでまた戻る(attach)ことができ、ログアウトしたあとも中のプログラムは動き続けます。エージェントがサーバーで一晩中働き続けられるのは、このためです。

もっと学ぶ

Linux

ほとんどのサーバーを動かしている無料の OS

Linux は、無料のオープンソースの OS(オペレーティングシステム)です。Web サーバー、クラウドのマシン、Docker のコンテナの多くがこの上で動き、Android も Linux カーネルの上に作られています。ターミナルでは macOS と同じ種類のシェルを使うので、ここで学ぶコマンドはたいていどちらでも動きます。sed -i や nc など一部は、オプションが少し違います。

localhost

いつもこのコンピューター自身を指す名前

localhost は、いま使っているコンピューター自身を指す特別な名前で、ふつうは IP アドレス 127.0.0.1 に当たります。自分のマシンでサーバーを動かしたときは、http://localhost の後ろに :8080 のようなポートを付けて開きます。インターネットには何も出ていかないので、あなたの localhost のアドレスはほかの人には開けません。

もっと学ぶ

IP アドレス

原文の表記 · IP address

ネットワークの中でコンピューターを見つけるための番号

IP アドレスは、203.0.113.10 のように、ネットワークの中のコンピューターを見分ける番号で、メッセージはこれを頼りに届きます。人はドメイン名を打ち、DNS がその名前を IP アドレスに変えます。インターネットからつながるには、サーバーに公開の IP アドレスが必要です。127.0.0.1 はいつもそのコンピューター自身を指します。

もっと学ぶ

ソケット

原文の表記 · Socket

プログラムの中にある、ネットワーク接続の片方の端

ソケットは、プログラムがネットワークで話すために開くもので、IP アドレスとポートに結び付いた、接続の片方の端です。サーバーはあるポートでソケットを開いて待ち、クライアントはソケットを開いてそこへつなぎます。その上で、両者は HTTP や WebSocket などのプロトコルで話します。nc コマンドを使えば、一行でソケットを開けます。

証明書

原文の表記 · Certificate

https を安全にする、サイトのデジタルの身分証

TLS 証明書は、つないだサーバーが本当にそのドメインのものだと証明する小さなファイルで、Let's Encrypt のような信頼された認証局が署名します。ブラウザーは https で何かを送る前にそれを確かめ、期限が切れていたり別のドメインの名前が書かれていたりすると警告します。証明書には期限があるので更新が必要です。Caddy は自動で取得し、更新します。

もっと学ぶ

Docker ボリューム

原文の表記 · Docker volume

コンテナを消しても残る保存場所

コンテナが自分の中に書いたファイルは、コンテナを消すと一緒に消えます。ボリュームは、Docker がコンテナの外に用意してコンテナにつなぐ保存場所なので、データベース、アップロードしたファイル、証明書が再起動や更新のあとも残ります。片づけのときは気をつけてください。docker compose down -v はボリュームも、中のデータごと消してしまいます。

もっと学ぶ

Docker Compose

一つのファイルから、いくつものコンテナをまとめて起動すること

Docker Compose は、ふつう compose.yaml という一つのファイルを読みます。そこには、アプリに必要なすべてのコンテナ(たとえば Web サーバー、データベース、キャッシュ)が、そのポート、ボリューム、ネットワークと一緒に書かれています。コンテナごとに長い docker run を打つ代わりに、コマンド一つで全体を起動・停止でき、ノートパソコンでもサーバーでも同じように動きます。

もっと学ぶ

GPU

膨大な数の計算を同時に並べて行うチップ

GPU(グラフィックス処理装置)は、もともと画面の絵を描くために作られました。それは何百万もの画素について、同じ小さな計算を繰り返すことです。AI モデルを動かすのもこれに似ていて、テンソルの膨大な掛け算をするので、学習と推論のほとんどは GPU やそれに似た専用チップが担います。どのモデルが載るかは、GPU 自身が持つ高速なメモリの大きさで決まることがよくあります。CPU でもモデルは動きますが、遅くなります。

もっと学ぶ 重みとパラメータについて詳しく見る

メモリ

原文の表記 · Memory

プログラムの実行中にデータを置いておく、速い作業用の記憶装置

メモリ(RAM)は、コンピューターがプログラムを動かしている間に使う速い作業場所で、ディスクの保存場所と違い、電源が切れると空になります。AI モデルを動かすには、その重みをメモリに読み込みます。GPU なら GPU 自身のメモリです。そこには KVキャッシュ、計算バッファ、ランタイムのオーバーヘッドも一緒に載ります。収まらなければ、モデルは動かないか、とても遅くなります。ここでのメモリはハードウェアのことで、チャットボットがあなたを覚えていることではありません。

もっと学ぶ 重みとパラメータについて詳しく見る

レイテンシ

原文の表記 · Latency

リクエストを出してからレスポンスが来るまでの待ち時間

レイテンシは、リクエストを送ってからレスポンスを受け取るまで待つ時間で、ふつうミリ秒で測ります。AI のチャットでは、最初のトークンが出るまでの時間がいちばん大事です。そのあとはストリーミングで、できた分から表示されるからです。レイテンシは、ネットワーク、サーバーの順番待ち、文脈の長さ、ハードウェアで変わります。たくさんのリクエストをまとめて処理すると全体の処理量は増えますが、リクエスト一つあたりは遅くなることがあります。

MPS

Mac の GPU で PyTorch を動かすしくみ

MPS(Metal Performance Shaders)は Apple の GPU 用ライブラリで、PyTorch は Apple のチップを積んだ Mac でこれを "mps" デバイスとして使います。モデルとデータを mps に載せると、学習や推論が CPU よりずっと速くなります。NVIDIA のグラフィックカードでは、同じコードが代わりに "cuda" を使います。

もっと学ぶ

クラウドノートブック

原文の表記 · Cloud notebook

ブラウザーからサーバーの GPU でコードを動かす場所

Google Colab や Kaggle Notebooks のようなクラウドノートブックはブラウザーで開き、コードをセルごとにサーバーで実行します。無料プランでも決まった時間だけ GPU が使える場合があり、自分の CPU では学習が遅すぎるときに役立ちます。セッションが終わるとファイルはふつう消えるので、残したいものはダウンロードしておきます。

もっと学ぶ

CUDA

NVIDIA の GPU で計算させるためのプラットフォーム

CUDA は、プログラムが NVIDIA のグラフィックボードを一般の計算に使えるようにする NVIDIA のソフトウェアプラットフォームです。PyTorch は NVIDIA の GPU を "cuda" デバイスと呼びます。ほとんどのディープラーニングのツールが CUDA を最初に対応するので、AI には NVIDIA のボードがよく使われます。Mac では同じ役目のデバイスが "mps" です。

もっと学ぶ

Apache

いちばん古く、いちばん広く使われている Web サーバーの一つ

Apache HTTP Server は 1990 年代から Web サイトを配っていて、今も Web の大きな部分を動かしています。どの Web サーバーとも同じく、ポートで待ち、リクエストを読み、ファイルやプログラムの答えを送り返します。古いホスティングではよく使われ、新しい構成では Nginx や Caddy が選ばれることが多くなっています。

もっと学ぶ

Nginx

リバースプロキシとしてよく使われる速い Web サーバー

Nginx(「エンジンエックス」と読みます)は、少ないメモリでたくさんの接続を同時にさばけることで知られる Web サーバーです。ファイルを配るほかに、ほかのプログラムの前に置いて、リクエストを渡すリバースプロキシとしてよく使われます。Caddy とは違い、HTTPS の証明書を自分では取ってこないので、別のツールで足します。

もっと学ぶ

FrankenPHP

Caddy の上に作られた PHP のアプリサーバー

FrankenPHP は PHP のプログラム用の Web サーバーで、Caddy の上に Go で作られています。中に Caddy が入っているので自動 HTTPS も使え、PHP のアプリをリクエストのあいだもメモリに読みこんだままにしておけるので、ページの返事が速くなります。Laravel のアプリであるこのサイトも、これで動いています。

Caddy

HTTPS を自分でオンにする、新しい Web サーバー

Caddy は Go で書かれたオープンソースの Web サーバーです。いちばんの売りは自動 HTTPS で、本物のドメイン名を渡せば、頼まなくても証明書を取ってきて、入れて、更新します。コマンド一つでフォルダーを配ることも、短い Caddyfile を読んでいくつものサイトを動かし、リバースプロキシとしてリクエストをアプリに渡すこともできます。

もっと学ぶ

Caddyfile

Caddy が読む、プレーンテキストの設定ファイル

Caddyfile は、どのサイトを動かし、それぞれで何をするかを Caddy に伝えます。最初にサイトのアドレスを書き、続いて中かっこの中に、フォルダーのファイルを配る、リクエストをアプリに渡す、といった行を書きます。サイト一つが 4 行で済むこともあります。編集したあとは、caddy reload で再起動せずに変更を当てはめます。

もっと学ぶ

try_files

index.html に切りかえる Caddyfile の行

try_files は、求められたファイルを探し、なければ代わりに別のファイルを渡すよう Caddy に伝えます。React や Vue で作ったアプリには本物のページが index.html 一つしかなく、ほかのアドレスはすべてブラウザーの中で描きます。try_files がないと、そうしたアドレスを再読みこみしたり、共有されたリンクを開いたりしたときに 404 になります。

もっと学ぶ

自動 HTTPS

原文の表記 · Automatic HTTPS

手作業なしで HTTPS の証明書を取って更新すること

自動 HTTPS では、Web サーバー自身が認証局に証明書を頼み、入れて、期限が切れる前に更新し、http で来た人を https に送ります。Caddy は、設定に本物のドメイン名を書いたとたんにこれをします。ドメインの DNS がサーバーを指していて、外から 80 番と 443 番のポートに届くときだけ動きます。

もっと学ぶ

認証局

原文の表記 · Certificate authority

サイトの証明書を確かめて署名する、信頼された機関

認証局(CA)は、証明書を求めた人が本当にそのドメインを持っているかを確かめ、証明書に署名します。ブラウザーは信頼する認証局の一覧を持っているので、そのどれかが署名した証明書は警告なしに受け入れられます。Let's Encrypt は確認を自動で行う無料の認証局で、一つのドメインが 1 週間に取れる証明書の数も制限しています。

Let's Encrypt

HTTPS の証明書を自動で出す無料の認証局

Let's Encrypt は、書類のかわりに自動の確認で、HTTPS の証明書を無料で出す非営利の認証局です。Caddy をはじめ多くのツールが自分でこことやり取りします。証明書の期間が短いので自動で更新しなければならず、一つのドメインが 1 週間に取れる数も制限しているので、失敗をくり返すとしばらく締め出されることがあります。

もっと学ぶ

A レコード

原文の表記 · A record

ドメイン名と IP アドレスを結びつける DNS の項目

A レコードは、ドメインの DNS 設定の 1 行で、example.com のような名前と、そこから行くサーバーの IPv4 アドレスを書きます。ドメインを買ったところで追加します。変更がみんなに届くまで数分から数時間かかることがあるので、新しいドメインはすぐには開かないことがあります。新しい IPv6 の形式のアドレスには、代わりに AAAA レコードを使います。

もっと学ぶ

公開 IP アドレス

原文の表記 · Public IP address

インターネットのだれからでも届く IP アドレス

公開 IP アドレスは、インターネットのどこからでも届くアドレスなので、ほかの人にサイトを開いてもらうには、Web サーバーにこれが必要です。家のコンピューターのほとんどは、ルーターの後ろで共有する 192.168.0.10 のようなプライベートアドレスしか持っておらず、外からは直接届きません。VPS を借りると、ふつうは公開アドレスがついてきます。

ファイアウォール

原文の表記 · Firewall

一部のネットワーク接続を通し、残りを止めるフィルター

ファイアウォールは、出入りするすべての接続を、ふつうはポートごとのルールと照らし合わせ、許されていないものを止めます。新しいサーバーでは、SSH の 22、Web サイトの 80 と 443 のように、必要なものだけを開けます。サーバーの上では動くのに外からサイトが答えないときは、ファイアウォールのポートが閉じているのがよくある理由です。

プロキシ

原文の表記 · Proxy

リクエストを受け取って先へ渡す、あいだのサーバー

プロキシは二つの側のあいだに入り、通信を代わりに中継します。フォワードプロキシは、会社のゲートウェイのように閲覧する人の側に立ち、リバースプロキシはサーバーの前に立って、訪れた人のリクエストを正しいアプリに渡します。接続を握っているので、サーバーの前にあるプロキシが、サーバーが受け取るはずだったポートを先に取ってしまうこともあります。

システムサービス

原文の表記 · System service

コンピューターが起動して、裏で動かし続けるプログラム

システムサービスは、オペレーティングシステムが起動時にスタートさせ、ターミナルなしで裏で動かし、落ちたら再起動するプログラムです。本物の Web サーバーはこうして動くので、ログアウトしても動き続けます。ほとんどの Linux サーバーでは systemd がこれを管理します。ターミナルで手で始めたプログラムは、そのターミナルを閉じると止まります。

もっと学ぶ

systemd

ほとんどの Linux でサービスを起動して管理するプログラム

systemd は、ほとんどの Linux が起動時に最初に動かすプログラムで、そのあとすべてのシステムサービスを起動し、止め、見張ります。systemctl で指示し、journalctl でサービスのログを読みます。すべての Linux にあるわけではなく、このサイトのブラウザーのターミナルで使っている Alpine は、代わりに OpenRC という小さなツールを使います。

Docker Desktop

Mac や Windows の PC で Docker を使えるようにするアプリ

コンテナには Linux のカーネルが必要ですが、Mac や Windows の PC にはありません。Docker Desktop は、Docker といっしょに小さな見えない Linux の仮想マシンをインストールし、それを起動してくれます。docker.com からインストールして一度開けば、そのあとターミナルで docker コマンドが使えます。Docker を使うときは、いつも動かしておかなければなりません。

もっと学ぶ

Dockerfile

Docker がイメージを作るときに従うレシピのファイル

Dockerfile は手順を書いたプレーンテキストのファイルです。すでにあるイメージから始め、自分のファイルをコピーし、インストールのコマンドを実行し、どのプログラムを起動するかを書きます。docker build はこれを上から下へ読んで、イメージを作ります。手順が書いてあるので、だれでも別のコンピューターでまったく同じイメージを作り直せます。

もっと学ぶ

二段階の Dockerfile

原文の表記 · Two-stage Dockerfile

一つの段階でビルドし、結果だけを残す Dockerfile

マルチステージの Dockerfile には、FROM の行が二つ以上あります。最初の段階には Node のような重いビルド用のツールがあり、そこでサイトをビルドします。最後の段階は小さなイメージから始め、できあがったファイルだけをコピーします。ツールは置いていかれるので、最終のイメージは小さく、だれもサーバーにツールを入れなくて済みます。

もっと学ぶ

イメージのタグ

原文の表記 · Image tag

コロンのあとにつけて、イメージの版を選ぶラベル

イメージの名前は、caddy:2 や node:22 のように、コロンとタグで終わることがあります。タグで、どの版のイメージをダウンロードするかを選びます。:2 のようにタグを固定すれば Caddy 2.x のままでいられます。タグを書かなければ latest になり、知らないうちに新しいメジャーバージョンに飛ぶことがあります。

もっと学ぶ

latest

タグを書かないときに Docker が使うタグ

タグなしでイメージの名前を書くと、Docker はだまって latest というタグを使います。名前とは違い、これはイメージを作った人が動かすただのラベルで、ふつうはいちばん新しいリリースを指しています。latest を pull するサーバーは、突然新しいメジャーバージョンを受け取って設定が壊れることがあるので、実際の構成では caddy:2 のようにタグを固定します。

もっと学ぶ

ポートマッピング

原文の表記 · Port mapping

自分のコンピューターのポートとコンテナの中のポートをつなぐこと

コンテナには、外からは見えない自分のポートがあります。-p オプションは、ホストのコンピューターのポートとコンテナの中のポートをつなぎます。-p 8080:80 は「自分の 8080 に来たものをコンテナの 80 に送る」という意味です。左の数は自分で選べますが、ほかのプログラムがすでに使っていると、Docker はコンテナを起動できません。

もっと学ぶ

ホスト

原文の表記 · Host

ネットワークの上のコンピューター、またはそれを指す名前

ホストとは、ネットワークにつながったコンピューターのことで、example.com のようなその名前のこともこう呼びます。リクエストをするには、ホスト・ポート・パスの三つが必要です。Docker では、「ホスト」はコンテナが動いている本物のコンピューターのことなので、ホストのポートはその機械のポートです。

サーバーラック

原文の表記 · Server rack

サーバーの機械を積み重ねて入れる、背の高い金属の枠

ラックは、決まった幅の棚がついたキャビネットで、平たいサーバーの機械、ネットワークのスイッチ、電源装置を上下に重ねてねじで留めます。データセンターは、このラックが何列も並んだものです。結局のところ、サーバーもラックの中のコンピューターで、リクエストに答えるプログラムを動かしています。

データセンター

原文の表記 · Data centre

一日中動き続けるサーバーでいっぱいの建物

データセンターは、サーバーのラックが詰まった建物で、安定した電源、冷却、速いネットワークの回線があります。クラウドのサービス、VPS のホスティング、AI のモデルは、どれもデータセンターで動いています。「サーバーを借りる」とは、こうした建物の機械の一部を借りることです。

同時接続

原文の表記 · Concurrent users

大勢の人が同じ瞬間にサーバーにつながっていること

同時接続のユーザー数とは、1 日に何人来たかではなく、同じ時刻に何人がサーバーにつながっているかです。リクエストを一つずつしか処理しないおもちゃのサーバーでは、ほかの人はみな列に並んで待ちます。Caddy のような本物の Web サーバーは何千もの接続を同時にさばき、ゲームのバックエンドは、何人のプレイヤーを同時に受け入れられるかで規模を決めることがよくあります。

ログファイル

原文の表記 · Log

プログラムが自分のしたことを書き続ける記録

ログとは、受け取ったリクエスト、エラー、再起動など、起きたことごとにプログラムが 1 行ずつ書くファイルや流れです。サーバーで何かがおかしくなったら、まずログを見ます。画面にはふつう「500」としか出ませんが、ログには理由が書いてあるからです。ログは切りつめないと永遠に増えるので、古いものは消すか圧縮します。

ローカル

原文の表記 · Local

遠くやグローバルではなく、このコンピューターやこのプロジェクトのこと

ローカルとは「ここ」という意味です。遠くのサーバーではなく目の前のコンピューター、またはコンピューター全体ではなく今のプロジェクトです。ローカルのポートやローカルの API には、この機械からしか届きません。ツールやスキルをローカルにインストールすると一つのプロジェクトのフォルダーだけに当てはまり、グローバルなら全部に当てはまります。

サーバー判定

原文の表記 · Authoritative server

本当のゲームの状態を持ち、判定を下すゲームサーバー

サーバー判定の構成では、プレイヤーの機械は「左に動く」のようにしたいことを送るだけで、実際に何が起きるかはサーバーが決めて全員に伝えます。本当の状態をサーバーが持っているので、プレイヤーは自分の手元のゲームを書きかえてずるをすることができません。そのかわり、すべての動作がサーバーまで行って戻ってこなければなりません。

もっと学ぶ

Azure

Microsoft のクラウドコンピューティングのサービス

Azure は Microsoft のクラウドです。世界中の Microsoft のデータセンターで動くサーバー、データベース、ストレージ、たくさんのできあいのサービスを借ります。Amazon Web Services や Google Cloud と競い合っています。「Azure でしか動かない」製品を使うと、Microsoft のクラウドとその料金に縛られることになります。

クラスター

原文の表記 · Cluster

一つのシステムとしていっしょに働く、何台かのサーバー

クラスターは、それぞれノードと呼ばれるサーバーの集まりで、仕事を分け合って、一つの大きなシステムのようにふるまいます。一台が止まってもほかが動き続け、プレイヤーが増えたら機械を足せます。クラスターを動かすには、Kubernetes のようなツールと追加の準備が必要なので、小さなプロジェクトは一台の機械から始めることがよくあります。

もっと学ぶ

クラスターのノード

原文の表記 · Cluster node

クラスターを作る何台かのサーバーのうちの一台

クラスターでは、それぞれの機械をノードと呼びます。シングルノードの構成は、すべてを一台の機械で動かします。簡単で安いですが、大きくするにはもっと大きな機械に替えるしかありません。この「ノード」は、JavaScript のランタイムである Node.js とは関係ありません。

もっと学ぶ

垂直スケール

原文の表記 · Scaling up

もっと大きな機械に移って、より多くの負荷をさばくこと

スケールアップ、つまり垂直スケールとは、一台のサーバーに CPU、メモリ、ディスクを足して、より多くのユーザーをさばけるようにすることです。プログラムを変えなくてよいので、最初の一歩として簡単です。ただし、借りられるいちばん大きな機械という天井があります。スケールアウト、つまりクラスターに機械を足していくやり方にはその天井がありませんが、運用は難しくなります。

もっと学ぶ

コールドスタート

原文の表記 · Cold start

眠っている関数がまず目を覚ますための余分な待ち時間

サーバーレスの関数は、だれも使っていないと止められます。しばらく間があいたあとの最初のリクエストは、プラットフォームがコードを読みこんで起動するのを待たなければならず、はっきり分かるほど遅れることがあります。そのあとのリクエストは、関数がまた眠るまで速いままです。いつも動いているサーバーには、コールドスタートはありません。

もっと学ぶ

サーバーレス

原文の表記 · Serverless

関数だけをアップロードして、クラウドに実行させること

サーバーレスでは、関数を一つアップロードすると、クラウドはリクエストが来たときだけそれを実行し、呼び出しごとに料金をとります。サーバーを自分で管理することはありません。いちばん有名なのは AWS Lambda で、そのためこうした関数はよくラムダと呼ばれます。そのかわり、コールドスタートがあり、ゲームと関数のあいだにネットワークの往復が一つ増えます。

もっと学ぶ

Colyseus

リアルタイムのマルチプレイの部屋のための、オープンソースの Node.js サーバー

Colyseus は、Node.js 用に TypeScript で書かれたオープンソースのマルチプレイのゲームサーバーです。プレイヤーは「ルーム」に入り、Colyseus はルームの状態をすべてのプレイヤーの画面で自動的に同じに保ちます。マッチメイキングも組みこまれています。いちばん得意なのはリアルタイムのプレイで、アカウント、フレンド、リーダーボードは、ほとんど自分で作ります。

もっと学ぶ

Nakama

アカウント・チャット・ランキングを備えたオープンソースのゲームバックエンド

Nakama は、Heroic Labs が作った、Go で書かれたオープンソースのゲームサーバーです。アカウントとサインイン、フレンド、グループ、チャット、リーダーボード、マッチメイキング、リアルタイムのマッチなど、ほとんどのゲームに必要なコミュニティの部分がもう入っています。データベースといっしょに Docker で自分でホストすることも、マネージド版にお金を払うこともでき、自分のゲームロジックを Go・TypeScript・Lua で足せます。

もっと学ぶ

SpacetimeDB

ゲームサーバーにもなるデータベース

Clockwork Labs の SpacetimeDB は、Rust や C# などで書いたゲームロジックを、モジュールとしてデータベースそのものの中に入れます。プレイヤーはそこに直接つながってその関数を呼び、購読したデータの変更をすべてリアルタイムで受け取ります。別のサーバーのプログラムがないので、二つのシステムを合わせる同期のコードもありませんが、ゲームの設計に新しい考え方が求められます。

もっと学ぶ

専用サーバー

原文の表記 · Dedicated server

一つのマッチを自分だけで動かすゲームサーバーのプログラム

ゲームの専用サーバーは、サーバーの上で動くゲームのコピーで、マッチごとに一つ立てることが多く、そこに座っているプレイヤーはいません。マッチを動かし、何が起きるかを決めるので、どのプレイヤーのコンピューターも有利になりません。速いシューティングや大きなマッチでは、これを一日中たくさん起動したり止めたりする必要があり、それがオーケストレーションのサービスの仕事です。

もっと学ぶ

ヘッドレス

原文の表記 · Headless

画面やウィンドウなしでプログラムを動かすこと

ヘッドレスのプログラムは、何も表示せずに動きます。ウィンドウも絵もなく、仕事だけをします。Unity や Unreal のようなゲームエンジンは、ゲームのヘッドレスビルドを作って専用サーバーとして動かせるので、だれも見ない絵を描く費用を省けます。ブラウザーも、自動テストのためにヘッドレスで動かせます。

もっと学ぶ

オーケストレーション

原文の表記 · Orchestration

たくさんのサーバーを自動で起動し、止め、見張ること

オーケストレーションは、たくさんのサーバーやコンテナを代わりに管理するソフトウェアです。負荷が上がれば新しいものを起動し、ひまなものを止め、落ちたものを再起動し、どの機械で何を動かすかを決めます。いちばん有名なのは Kubernetes です。ゲームでは、ふつうマッチごとに専用サーバーを一つ立ち上げ、終わったら止めることを指します。

もっと学ぶ

Kubernetes

たくさんの機械でコンテナを動かして管理するツール

Kubernetes は、最初は Google で設計され、今はオープンソースになっているツールで、機械のクラスターの上でコンテナを動かします。「この Web アプリを三つ」のように何が動いているべきかを書くと、そのとおりに保ちます。コンテナを置き、落ちたものを再起動し、通信を分散させます。強力ですが複雑なので、小さなプロジェクトはふつう Docker Compose から始めます。

マネージドサービス

原文の表記 · Managed service

提供する会社が代わりにサーバーを動かしてくれるサービス

マネージドサービスでは、自分はソフトウェアを使うだけで、提供する会社がそれをインストールし、サーバーを動かし、更新し、バックアップをとります。すぐに始められ、サーバーの知識もいりません。そのかわり毎月お金を払い、会社の制限に従い、データをほかへ移しにくいことがよくあります。その反対がセルフホストです。

もっと学ぶ

ベンダーロックイン

原文の表記 · Vendor lock-in

離れるのにお金がかかりすぎて、一つの会社に縛られること

ベンダーロックインは、ゲームやアプリが一つの会社の製品、その特別な機能、データの形式、クラウドに頼りすぎて、ほかへ移るには大きな部分を書き直さなければならなくなることです。そうなると、会社が値上げしたり製品をやめたりしても、ほとんど選択肢がありません。オープンソースで、自分でホストできるツールなら、この危険を減らせます。

もっと学ぶ

メッセージブローカー

原文の表記 · Message broker

プログラムのあいだでメッセージを預かって届けるサーバー

メッセージブローカーはプログラムのあいだに立ちます。一方がメッセージを出すと、ブローカーがそれを保管し、処理するはずのプログラムに渡します。送る側と受け取る側が同じ瞬間に動いている必要はなく、仕事をたくさんのワーカーに分けられます。RabbitMQ や Kafka が有名で、Redis が簡単なものとしてよく使われます。

サービスメッシュ

原文の表記 · Service mesh

たくさんの小さなサービスのあいだの通信を受け持つ層

アプリがたくさんの小さなサービスに分かれているとき、サービスメッシュはそれぞれのとなりに小さなプロキシを置き、通信の行き先、やり直し、暗号化、計測といったやり取りの仕方を受け持ちます。Istio や Linkerd がよくある例で、ふつうは Kubernetes の上で動きます。何十ものサービスがある大きなシステムには役立ちますが、小さなゲームのバックエンドには余計なオーバーヘッドです。

ステートフルサービス

原文の表記 · Stateful service

リクエストのあいだもデータをメモリに持っているサービス

ステートフルサービスは、毎回すべてを調べ直すかわりに、ゲームのルームにだれがいるか、それぞれのプレイヤーがどこに立っているかなどを、リクエストのあいだも覚えています。そのためリアルタイムのゲームが速くなりますが、状態がなくなったり分かれたりしてしまうので、再起動やコピーが難しくなります。ステートレスなサービスは何も持たないので、自由にコピーできます。

プッシュ通知

原文の表記 · Push notification

アプリが閉じていても、サーバーがスマホに送るメッセージ

プッシュ通知は、Apple や Google の配信サービス(APNs や Firebase Cloud Messaging)を通ってサーバーから送られ、アプリが開いていなくてもスマホに表示されます。たとえば「エネルギーが満タンになりました」です。アプリは先にユーザーに許可を求めなければならず、サーバーが送るには Apple や Google のキーが必要です。

もっと学ぶ

待ち行列(キュー)

原文の表記 · Queue

順番に処理されるのを待っている仕事やリクエストの列

キューには、すぐにはできない仕事が入ります。届いたリクエスト、送るメール、大きさを変える画像などです。項目は後ろから入り、前から取り出され、ふつうは裏で動くワーカーが処理します。仕事がたまってもキューがあればサイトは軽く反応し続けますが、減るより速く増えていくキューは、ユーザーの待ち時間がどんどん長くなるという意味です。

スケジューラー

原文の表記 · Scheduler

決まった時刻に仕事を始めるプログラム

スケジューラーは、毎分、毎晩午前 3 時、毎週月曜のように、時間割どおりに仕事を動かします。よくある仕事は、お知らせの送信、古いデータの片付け、バックアップです。Linux の昔ながらのスケジューラーは cron で、Laravel のような Web フレームワークには自分のスケジューラーがあり、cron の 1 行が毎分それを起こします。

リアルタイム同期

原文の表記 · Real-time sync

どのプレイヤーにも、一瞬ごとに同じゲームの様子を見せ続けること

マルチプレイのゲームでは、それぞれのプレイヤーの機械にゲームのコピーがあります。同期は、そのコピーをそろえておくことです。一人のプレイヤーが動くと、サーバーがその変化を 1 秒もたたないうちに全員に伝えます。ふつうは WebSocket や UDP を使います。ネットワークの遅れがあるので、ここがオンラインゲームでいちばん難しい部分で、代わりにやってくれるツールが重宝されます。

もっと学ぶ

リレー

原文の表記 · Relay

二つの側のあいだで接続を中継する、まん中のサーバー

リレーは、一方からデータを受け取ってもう一方に送るので、二つの側が直接つながることはありません。プレイヤーの機械どうしが家のルーターをこえて届かないとき、ゲームはリレーを使います。このサイトのブラウザーの Linux は、ネットワーク中継を通って本物のインターネットにつながります。Web ページは、自分では生のネットワーク接続を開けないからです。

インスタンス

原文の表記 · Instance

クラウドから借りる一台の仮想サーバー

クラウドでのインスタンスとは、CPU・メモリ・ディスクの量を選んで借り、電源を入れる一台の仮想サーバーです。同じ設定からいくつも起動でき、時間や月ごとに払います。何千人ものプレイヤーがいるゲームのバックエンドでも、小さなインスタンスで足りることがよくあります。

もっと学ぶ

スタック

原文の表記 · Tech stack

アプリを作って動かすのに使うプログラムとツールの組み合わせ

スタック(技術スタック)とは、アプリがいっしょに使う部品の組み合わせです。たとえば Web フレームワーク、データベース、キャッシュ、Web サーバーです。「スタック全体」と言えば、一つの Docker Compose ファイルにあるすべてのコンテナのように、それらの部品を全部いっしょに指します。早めにスタックを選ぶと、チームが何を学び、何を動かすかが決まってきます。

ハードウェア

原文の表記 · Hardware

コンピューターの、目に見えてさわれる部分

ハードウェアは、さわれるものすべてです。プロセッサー(CPU)、グラフィックスチップ(GPU)、メモリ、ディスク、キーボード、ネットワークカード。ソフトウェアはその上で動くプログラムです。「自分のハードウェアで動く」とは、ほかの人のサービスの中ではなく、自分が持っているか借りている機械で動くという意味です。同じ AI のモデルでも、ハードウェアによって速くも遅くもなります。

アクセラレーター

原文の表記 · Accelerator

一種類の計算をとても速くするために作られたチップ

アクセラレーターは、AI のモデルが必要とする膨大な数の掛け算のような、一つの仕事のために作られたプロセッサーです。いちばんよくあるのは GPU で、Google の TPU やスマホのニューラルエンジンもそうです。モデルはふつうの CPU でも動きますが、遅くなります。ランタイムのプログラムは別のもので、モデルの数をアクセラレーターに読みこませ、何を計算するかを指示します。

もっと学ぶ

CPU

コンピューターのふだんの仕事を実行する中心のプロセッサー

CPU(中央処理装置)は、ファイルを開く、ブラウザーを動かす、計算を一歩ずつするなど、すべてのプログラムの命令を実行します。CPU には強力なコアが少しだけあり、GPU には AI のくり返しの掛け算に向いた小さなコアが何千もあります。CPU でもモデルを学習させられますが、ずっと遅くなります。

x86

ほとんどの PC が使う Intel と AMD のプロセッサーの系統

x86 は、Intel の 8086 から始まったプロセッサーの設計の名前で、Intel と AMD が作り、ほとんどの Windows の PC やサーバーが使っています。x86 向けにコンパイルしたプログラムは、Apple Silicon やほとんどのスマホのような ARM のプロセッサーでは、そのままでは動きません。64 ビット版は x86-64 と呼び、古い 32 ビット版は今も x86 と呼びます。

もっと学ぶ

32bit

32 ビットのアドレスを使うプロセッサーやシステム

32 ビットのシステムは 32 ビットの長さのメモリアドレスを使うので、一つのプログラムが使えるメモリは最大で約 4 GB です。今のコンピューターのほとんどは 64 ビットです。このサイトのブラウザーの Linux は 32 ビットの x86 の機械をまねしていて、小さな Python のプログラムには十分ですが、ここで学習させるモデルが小さいままである理由の一つになっています。

もっと学ぶ

v86

Web ブラウザーの中で x86 のコンピューターを動かすエミュレーター

v86 は、JavaScript と WebAssembly で書かれたオープンソースのエミュレーターで、ブラウザーのタブの中で 32 ビットの x86 の PC をまねします。このサイトはこれで本物の Alpine Linux を起動するので、何もインストールせずにコマンドを打ったり Python を動かしたりできます。命令を一つ残らずソフトウェアでまねするので、本物のコンピューターよりずっと遅く、タブを閉じると止まります。

もっと学ぶ

エミュレーター

原文の表記 · Emulator

別のコンピューターをまねして、そのソフトウェアを動かすプログラム

エミュレーターは、別の機械のプロセッサー、メモリ、装置のふるまいをソフトウェアで写しとります。すると、その機械向けに作られたプログラムが、変えずにそのまま動きます。PC で動く昔のゲーム機や、このサイトのブラウザーの中の Linux がそうです。命令を一つずつまねする分だけ遅くなるので、ブラウザーの Linux ではダウンロードやインストールに時間がかかります。

もっと学ぶ

仮想マシン

原文の表記 · Virtual machine

本物のコンピューターの中で、ソフトウェアでまねした一台のコンピューター

仮想マシン(VM)は、ソフトウェアでできたコンピューターです。自分のオペレーティングシステム、メモリ、ディスクを持っていますが、実際には別のコンピューターの上で動いています。一台の物理的な機械をたくさんの VM で分け合えるので、VPS のホスティングはこの仕組みで動いています。コンテナはもっと軽く、オペレーティングシステムをまるごと持たずにホストのカーネルを共有するので、速く起動します。

オペレーティングシステム

原文の表記 · Operating system

コンピューターとその上のプログラムを動かす、土台のプログラム

オペレーティングシステム(OS)は、コンピューターの電源を入れると最初に起動します。プロセッサーとメモリーをプログラムどうしで分け合わせ、ファイルをディスクに保存し、キーボード・マウス・ネットワークの信号を正しいプログラムに渡します。Windows、macOS、Linux、Android、iOS がオペレーティングシステムです。コマンドやパスの書き方はそれぞれ違うので、説明には OS ごとに一行ずつ書かれていることがよくあります。

もっと学ぶ

カーネル

原文の表記 · Kernel

オペレーティングシステムのいちばん内側の中心部分

カーネルは、オペレーティングシステムの中でハードウェアと直接話す部分です。次にどのプログラムがプロセッサーを使うかを決め、メモリーを配り、ドライバーを通してキー・ディスク・ネットワークカードを読みます。厳密に言うと Linux はカーネルのことで、Ubuntu や Alpine はそのまわりに道具を足したものです。コンテナは、動いているコンピューターのカーネルを共有します。

デバイスドライバー

原文の表記 · Device driver

オペレーティングシステムが機器を使えるようにする小さなプログラム

ドライバーは、オペレーティングシステムと、キーボード・グラフィックカード・プリンターなどの一つの機器との間で通訳をします。キーを押すとキーボードは数字を送り、カーネルの中のドライバーがそれを、いちばん手前にあるプログラムへのキー入力に変えます。新しくつないだ機器が何もしないのは、ドライバーがないか合っていないことが理由です。

macOS

Apple の Mac コンピューターのオペレーティングシステム

macOS は Apple の Mac コンピューターで動きます。中身は Unix のシステムなので、ターミナルでは Linux とほとんど同じシェルコマンドが使え、標準のシェルは zsh です。Linux 版と少し動きが違う道具もあり、キーボードショートカットは Windows で Control を使うところで Command キーを使います。

Spotlight

Mac でアプリやファイルを探す検索窓

Spotlight は macOS の検索機能です。Command と Space を押し、「ターミナル」のように名前の一部を打って Return を押すと開きます。Dock にないアプリを見つけるいちばん速い方法です。

もっと学ぶ

Windows

Microsoft がつくったパソコン用のオペレーティングシステム

Windows は、デスクトップやノートパソコンでいちばん多く使われているオペレーティングシステムです。Windows 自身のコマンドラインはコマンドプロンプトと PowerShell で、Linux とは違うコマンドを使います。このコースの bash コマンドを Windows で使うには、Windows の中で本物の Linux を動かす WSL をインストールします。

Android

Google がつくったスマホとタブレットのオペレーティングシステム

Android は世界のほとんどのスマホで動いているオペレーティングシステムで、Google が Linux カーネルの上に作りました。アプリは主に Google Play からインストールし、Android 専用のパッケージとしてビルドします。Android と iPhone の両方で動くアプリは、二回作るか、Flutter のように一つのコードから両方を作る道具で作ります。

Ubuntu

いちばん広く使われている Linux ディストリビューション

Ubuntu は、Canonical が Debian をもとに作っている無料の Linux ディストリビューションです。サーバー、クラウドのマシン、Windows の WSL でふつうに選ばれるので、ネット上の説明の多くは Ubuntu を前提にしています。ソフトウェアは apt でインストールし、長期サポート(LTS)版が二年ごとに出ます。

Debian

Ubuntu のもとになっている、歴史の長い Linux ディストリビューション

Debian はいちばん古い Linux ディストリビューションの一つで、1993 年からボランティアが運営し、安定していることで知られています。Ubuntu をはじめ多くのディストリビューションがこれをもとに作られているので、apt というパッケージの道具やほとんどのコマンドが同じです。公式の Docker イメージの多くも Debian がもとになっています。

Alpine Linux

とても小さな Linux ディストリビューション

Alpine Linux は、小さな部品(musl と BusyBox)で作られた、数メガバイトしかない Linux ディストリビューションです。そのため Docker イメージによく使われ、このサイトではブラウザーの中で起動できます。パッケージは apt ではなく apk でインストールし、いくつかのコマンドはふつうの GNU の道具を簡単にしたものです。

もっと学ぶ

ディストリビューション

原文の表記 · Distribution

Ubuntu や Alpine のように、Linux を一つにまとめた版

Linux そのものはカーネルだけです。ディストリビューションは、それに道具・パッケージマネージャー・初期設定をまとめて、完成したシステムにしたものです。Ubuntu、Debian、Fedora、Alpine がディストリビューションです。ほとんどのコマンドはどこでも同じですが、ソフトウェアの入れ方は違います。たとえば Ubuntu は apt、Alpine は apk です。

もっと学ぶ

ディスク

原文の表記 · Disk

電源を切ってもファイルを残しておく記憶装置

ディスク(今はたいてい SSD)は、コンピューターの電源を切っても、ファイル・プログラム・AI モデルのファイルを残しておきます。メモリー(RAM)よりずっと大きく、ずっと遅いので、プログラムは必要なものをディスクからメモリーに読み込んでから作業します。Linux ではディスクは /dev/sda のようなデバイスとして見え、パーティションに分けられます。

もっと学ぶ

ドライブ(記憶装置)

原文の表記 · Drive

記憶装置、またはその一部を一つの単位として使うもの

ドライブとは、コンピューターがファイルを保存したり読んだりできるディスク・SSD・USB メモリ・CD のことです。ディスクの中のパーティションも、それぞれ一つのドライブとして働けます。Windows ではドライブごとに C: のような文字が付き、Linux では /dev の下に現れて、文字の代わりにフォルダーにマウントします。

もっと学ぶ

USBメモリ

原文の表記 · USB stick

差し込んで使う小さな記憶装置

USB メモリ(フラッシュドライブ)は、USB ポートに差し込んで、コンピューターの間でファイルを持ち運ぶ小さな記憶装置です。「メモリ」という名前ですが、RAM ではなくディスクのようにファイルを残します。Windows・macOS・Linux のどれでも読めるように、ふつうは FAT でフォーマットされています。

もっと学ぶ

ディスクイメージ

原文の表記 · Disk image

ディスクの中身をまるごと入れた一つのファイル

ディスクイメージは、パーティションやファイルシステムも含めてディスクのすべてのバイトを、.img や .iso のような一つのファイルにコピーしたものです。仮想マシンはこれをディスクとして使い、オペレーティングシステムのインストーラーは、ディスクイメージを USB メモリに書き込んだものです。Linux ではイメージファイルをマウントして、本物のディスクのように中を見られます。

もっと学ぶ

バックアップ

原文の表記 · Backup

なくしたときに元に戻せるよう、別に取っておくコピー

バックアップとは、ファイルやデータベースのコピーを別の場所に置いておくことです。ファイルを消しても、ディスクが壊れても、更新に失敗しても、すべてを失わずにすみます。バックアップが役に立つのは、新しく、別の機械や場所にあり、本当に元に戻せるときだけです。ときどき戻す練習をしておく価値があります。

ネットワーク

原文の表記 · Network

データを送り合えるようにつながったコンピューター

ネットワークは、コンピューター・スマホ・サーバーをケーブルや電波でつなぎ、データをやり取りできるようにします。家の Wi-Fi は小さなネットワークで、インターネットはネットワークのネットワークです。その上を通るものはすべてただのデータ(文字とファイル)です。リクエストはネットワークを渡ってサーバーに届き、答えもまた渡って戻ってくるので、時間がかかります。

ループバックアドレス

原文の表記 · Loopback address

いつも「このコンピューター自身」を指す IP アドレス

127.0.0.1 はループバックアドレスです。ここに送ったものは機械の外に出ず、そのまま自分に戻ってきます。localhost という名前がここを指しています。127.0.0.1 だけで待ち受けるサーバーには、同じコンピューターのプログラムからは届きますが外からは届かないので、練習用のサーバーに安全です。

もっと学ぶ

Address already in use

別のプログラムがすでにそのポートを使っているときのエラー

サーバーは待ち受ける前にポートを取る必要があり、一つのポートを持てるのは一度に一つのプログラムだけです。このエラーは、何か(多くは止め忘れた同じサーバーの前のもの)がすでにそのポートを持っているという意味です。そのプログラムを止める(まずプロセス ID を調べる)か、新しいほうを別のポートで起動します。

もっと学ぶ

Connection refused

そのアドレスとポートで誰も待ち受けていないときのエラー

Connection refused は、リクエストはコンピューターに届いたのに、そのポートで待っているプログラムがないという意味です。たいていは、サーバーがまだ起動していないか、落ちたか、別のポートで待ち受けています。動いているかを確かめてログを読みましょう。アドレスのポート番号の打ち間違いもよくある原因です。

もっと学ぶ

スループット

原文の表記 · Throughput

決まった時間にシステムがこなせる仕事の量

スループットは量を測ります。たとえば 1 秒あたりのリクエスト数や、AI モデルなら 1 秒あたりのトークン数です。レイテンシは、一つのリクエストがどれだけ待つかを測ります。この二つは引き換えになります。たくさんのリクエストを一つのバッチにまとめるとスループットは上がりますが、それぞれのリクエストは答えが始まるまで少し長く待つことがあります。

UTC

どの国でも同じ、世界の基準になる時刻

UTC(協定世界時)は、ほかのタイムゾーンを数えるもとになる時計です。日本と韓国は UTC+9 なので、UTC の真夜中は日本の朝 9 時です。サーバーとデータベースはふつう時刻を UTC で保存し、表示するときだけそれぞれの人の現地時刻に直します。そうすれば、違う国の人どうしでも、いつ何が起きたかで食い違いません。

Cloudflare

Web サイトを届け、守り、置いておく会社

Cloudflare は Web サイトの前に立つ世界規模のネットワークを動かしています。近くの拠点からページのコピーを届け、攻撃を止め、ドメイン名(DNS)を管理します。Cloudflare Pages の静的なホームページのように、サイトや小さなプログラムを自分で置いておくこともできます。このサイトを含め、多くのサイトが訪問者に気づかれないまま使っています。

もっと学ぶ

Cloudflare Pages

静的なサイトを無料で公開してくれる Cloudflare のサービス

Cloudflare Pages は、静的なサイト(HTML・CSS・JavaScript・画像のフォルダー)を your-project.pages.dev のようなアドレスでインターネットに出します。Wrangler でフォルダーをアップロードする(Direct Upload)か、GitHub のリポジトリをつないで push のたびに新しい版を公開する(Git 連携)かのどちらかです。サーバーのプログラムは動かしてくれないので、フォルダーに秘密を入れてはいけません。中のものはすべて公開されます。

もっと学ぶ

Wrangler

Cloudflare のコマンドラインの道具

Wrangler は、ターミナルで Cloudflare を操作するプログラムです。ログインし、プロジェクトを作り、Pages のサイトや Workers を公開します。npm パッケージなので、別にインストールしなくても npx で動かせます。最初に wrangler login を実行するとブラウザーが開き、自分の Cloudflare アカウントにつながります。

もっと学ぶ

Direct Upload

できあがったフォルダーを自分でアップロードして Pages のサイトを公開すること

Direct Upload では、サイトを自分のコンピューターで作り、そのフォルダーを Wrangler かダッシュボードで Cloudflare Pages に送ります。GitHub には何もつながっていないので、更新のたびにアップロードし直します。この方法で作ったプロジェクトはあとから Git 連携に切り替えられないので、最初に選びましょう。

もっと学ぶ

Git 連携

原文の表記 · Git integration

リポジトリをつないで、push のたびに自動で公開されるようにすること

Git 連携では、GitHub のリポジトリを一度だけ Cloudflare Pages につなぎます。それからは、リポジトリに push するたびに Cloudflare が新しい版をビルドして公開し、ほかのブランチにはそれぞれのプレビュー用アドレスができます。Git の履歴がそのままデプロイの履歴になります。

もっと学ぶ

プレビュー用アドレス

原文の表記 · Preview address

デプロイのたびにできる、確かめるための別のアドレス

Cloudflare Pages にデプロイするたびに、その版には abc123.my-homepage.pages.dev のような専用のアドレスができます。いっぽう本番のアドレスは、いちばん新しい版を表示します。共有する前に、プレビューを開いて変更を確かめられます。プレビュー用アドレスも公開されているので、リンクを知っている人なら誰でも見られます。

もっと学ぶ

本番環境(プロダクション)

原文の表記 · Production

実際の利用者が使う、本物の公開版

本番環境とは、テスト版やプレビュー版ではなく、本当の利用者が使っているサイトのアドレスやストアのリリースのことです。変更はほかの場所で確かめてから本番に出します。Google Play では、内部テスト・クローズドテスト・オープンテストのあとの最後のトラックが本番(製品版)です。

もっと学ぶ

Vercel

Git のリポジトリから Web アプリをデプロイするホスティングサービス

Vercel は、Next.js というフレームワークを作った会社のホスティングの場所です。GitHub のリポジトリをつなぐと、push のたびにサイトがビルドされて公開され、変更ごとにプレビュー用アドレスができます。静的なページのほかに小さなサーバーの関数も動かせるので、React や Next.js のアプリでよく使われます。

SSH キー

原文の表記 · SSH key

パスワードなしでログインするための鍵ファイルの組

SSH キーは、自分のコンピューターで作る二つ一組のファイルです。誰にも渡さない秘密鍵と、サーバーに置く公開鍵です。接続するとき、サーバーは対になる秘密鍵を持っているかを確かめるので、パスワードがネットワークを通りません。鍵だけを受け付けるサーバーは、パスワードを受け付けるサーバーよりずっと破られにくくなります。

もっと学ぶ

公開鍵

原文の表記 · Public key

鍵の組のうち、ほかの人に渡しても安全なほう

鍵の組は、つながった二つの鍵でできています。公開鍵は自由に配ってよく、たとえばサーバーの ~/.ssh/authorized_keys に置きます。秘密鍵は自分だけが持ちます。片方で閉じたり署名したりしたものは、もう片方で確かめられるので、サーバーは秘密鍵を一度も見ずに本人だと確かめられます。

もっと学ぶ

リモート操作の権限

原文の表記 · Remote control access

自分のコンピューターを、離れた場所から別の人に操作させること

リモート操作では、別の人がインターネット越しに自分の画面を見て、マウスを動かしたり文字を打ったりできます。ビデオ通話のアプリでは、画面共有の間にこの権限を渡せます。信頼できる人にだけ渡し、終わったら取り戻しましょう。

もっと学ぶ

クラウドのドライブ

原文の表記 · Cloud drive

Google ドライブのような、ネット上のファイル置き場

ここで言うドライブは、Google ドライブ・OneDrive・Dropbox のような、インターネット上のファイル置き場です。そこにあるファイルはどの機器からでも開け、ほかの人と共有できます。ドライブを AI の道具につなぐと、AI は許可したものを読めるので、ドライブ全体ではなく、その仕事に必要なフォルダーだけを共有しましょう。

サービスアカウントのキー

原文の表記 · Service account key

人の代わりにプログラムがログインするための鍵ファイル

サービスアカウントは人ではなくプログラムのためのアカウントで、そのキーはプログラムが誰なのかを証明するファイル(多くは JSON)です。自動ビルドはブラウザーで「ログイン」を押せないので、ふつうは環境変数からこのキーを読んで、デプロイしたりクラウドのサービスを呼んだりします。このファイルを持っている人は誰でもそのアカウントとして動けるので、Git には決してコミットしないでください。

もっと学ぶ

GitHub Actions のランナー

原文の表記 · Runner

GitHub Actions の仕事を実際に動かすコンピューター

ランナーは、GitHub Actions のワークフローの手順を実行する機械です。GitHub は仕事ごとに新しい仮想マシン(たとえば Ubuntu)を貸し、終わると捨てるので、自分のコンピューターが切れていても仕事は進みます。自分の機械をセルフホストランナーとして登録することもできます。AI モデルを動かすランナーとは別のものです。

もっと学ぶ

ワークフローファイル

原文の表記 · Workflow file

GitHub Actions に、いつ何をするかを伝える YAML ファイル

ワークフローファイルは、リポジトリの .github/workflows/ フォルダーに置きます。いつ動くか(push、プルリクエスト、コメント、決まった時刻)を書き、ランナーで行う仕事と手順を並べます。Claude Code の GitHub アプリをインストールするとこのファイルが追加され、イシューで @claude と書くと仕事が始まります。

もっと学ぶ

シークレット

原文の表記 · Secret

実行するときまでコードの外に置いておくパスワードや鍵

シークレットとは、API キーのように、リポジトリに出てきてはいけない値です。GitHub ではリポジトリの Settings に Actions のシークレットとして保存し、ワークフローは実行中に名前で読みます。値はログでは隠されます。もしシークレットをうっかりコミットしたら、すぐにキーを取り替えましょう。Git の履歴には古い値が残るからです。

もっと学ぶ

隔離

原文の表記 · Isolation

ほかに影響しないよう、切り離した場所で動かすこと

隔離とは、コンテナ・仮想マシン・サンドボックスの中などで、プログラムをコンピューターのほかの部分から切り離すことです。何をしても、その中だけで収まります。AI エージェントにたずねずにどんなコマンドでも実行させるモードは、隔離された場所でだけ安全です。そこでの失敗は、本物のファイルを消したり自分のアカウントに届いたりしないからです。

パイプライン

原文の表記 · Pipeline

自動で次々に動く、つながった手順

自動化でいうパイプラインは、決まった順に自分で動く手順の並びで、それぞれが前の結果を使います。たとえば、コードが push されるたびにビルド・テスト・レビュー・デプロイをします。codex exec のような道具は、チャット画面なしで動き、ほかの手順が読める結果を出力するので、そうしたパイプラインの一つの手順になるように作られています。

もっと学ぶ

tmux attach

前に動かしたままにした tmux のセッションに戻ること

tmux attach は、デタッチやログアウトのあとも動き続けていた tmux のセッションに戻ります。-t で名前を指定してセッションを選び、tmux ls でどんなセッションがあるかを一覧にします。前の晩にサーバーで始めたエージェントを、次の朝に確かめるときの方法です。

もっと学ぶ

デタッチ

原文の表記 · Detach

tmux のセッションを動かしたまま抜け出すこと

デタッチすると、tmux のセッションを止めずにそこから抜けます。Ctrl+b を押して離し、それから d を押します。中で始めたものはすべて動き続け、そのあとターミナルを閉じてもサーバーからログアウトしても止まりません。代わりに exit と打つと、セッションが閉じて中で動いているものも止まります。

もっと学ぶ

VRAM

グラフィックカード(GPU)に載っているメモリ

VRAM(ビデオRAM)はグラフィックカードに載っているメモリです。GPU で言語モデルを動かすには重みが VRAM に収まる必要があるため、カードの VRAM より大きいモデルは小さくしないと読み込めません。だから数百メガバイトで済む XSLM のようなごく小さなモデルは普通のパソコンでも動きます。

重みとパラメータについて詳しく見る

IoT(モノのインターネット)

原文の表記 · IoT (Internet of Things)

インターネットにつながった身の回りの機器

IoT は、センサー・カメラ・家電・ウェアラブルのように、小さなコンピューターとネットワーク接続を備えた身の回りのモノのことです。こうした機器は計算能力もメモリも小さいことが多いので、その上で動く AI モデルはとても小さく軽くなければなりません。

メモリ不足(OOM)

原文の表記 · Out of memory (OOM)

必要なメモリが足りずに起きるエラー

メモリ不足(OOM)は、プログラムがパソコンや GPU にある以上のメモリを求め、エラーで止まることです。モデルの学習では、たいていバッチや区間の長さが大きすぎるという意味なので、バッチを小さくするか区間を短くするか、小さなバッチ数回分の勾配を合わせて使います。

もっと学ぶ

ESP32

機器づくりに使う Wi-Fi 付きの小さく安いチップボード

ESP32 は Espressif が作る小さく安価なマイコンチップのシリーズで、Wi-Fi と Bluetooth を内蔵しています。メイカーは ESP32 ボードでロボット・センサー・音声ガジェットを作ります。大きな AI モデルを自分で動かすには力が足りないため、ふつうは音声や画像をサーバーに送り、サーバーの答えに従って動きます。

もっと学ぶ

ファームウェア

原文の表記 · Firmware

機器のチップに保存されたプログラム

ファームウェアは、ロボットのボード・ルーター・キーボードのような機器のチップの中に保存され、電源を入れるとすぐに動くプログラムです。変えるときは新しいバージョンをビルドして、ボードに書き込み(フラッシュ)ます。ボードを手にした人なら誰でもファームウェアを読み出せるので、秘密鍵は決してファームウェアに入れません。

もっと学ぶ

サマータイム

原文の表記 · Daylight saving time

夏のあいだ時計を1時間進める制度

サマータイム(DST)を使う国では、春に時計を1時間進め、秋に戻します。SONUB は時間割を UTC で保存しているので、サマータイムが始まったり終わったりすると、授業の現地時刻が学生にも講師にも1時間ずれます。SONUB はその日ごとの本当の現地時刻を表示し、切り替わる前にお知らせします。

タイムゾーン

原文の表記 · Time zone

時計がみな同じ時刻を指す地域

タイムゾーンは、時計が同じ時刻を指す地域のことです。UTC との差(ソウルは UTC+9)や、Asia/Seoul のような名前で書きます。SONUB はすべての授業を UTC で保存し、見る人それぞれのタイムゾーンで表示します。だからマニラの学生とソウルの講師は、同じ授業をそれぞれの現地時刻で見られます。SONUB の画面では「国の時刻」と呼んでいます。

韓国時間(KST)

原文の表記 · KST (Korea time)

UTC より9時間進んだ韓国標準時

KST は韓国で使われている時刻で、UTC+9 と書きます。韓国はサマータイムを使わないので、KST は一年中変わりません。毎週の SONUB AI セミナーは KST で案内され、ページにはあなたのタイムゾーンでの時刻も表示されます。

もっと学ぶ

DevOps

開発と運用をつなげ、作る・届ける・見守るを一続きにする進め方

DevOps は、ソフトウェアを作る人(開発、Dev)とサーバーで動かして見守る人(運用、Ops)を、一つの働き方としてつなげる考え方です。変更ごとのテスト、デプロイ、動いているサービスの監視といった繰り返しの作業を自動化し、新しいバージョンを頻繁に出して問題を早く見つけます。一つのツールの名前ではなく働き方ですが、「DevOps エンジニア」という職種名としてもよく使われます。

もっと学ぶ

ゲームバックエンドサービス

原文の表記 · game backend service

ゲームサーバーの共通機能を借りて使うマネージドサービス

ゲームバックエンドサービスは、ゲームが自前で作るはずのサーバー機能 — ログイン、進行状況の保存、ランキング、マッチメイキング、リリース後のイベントを回す LiveOps ツール — を用意して貸し出します。サーバーは提供会社が動かし、ゲームは SDK やウェブ API で呼び出します。小さなチームの手間を大きく減らせますが、その会社の料金やルールに縛られます。

もっと学ぶ

Agones

Kubernetes 上で専用ゲームサーバーを多数動かすオープンソースソフトウェア

Agones(アゴネス)は Google が始めたオープンソースプロジェクトです。Kubernetes 上で動き、多数の専用ゲームサーバー(ふつうは 1 試合に 1 台)を起動し、状態を見守り、終われば止めます。誰と誰を一緒に遊ばせるかを決める Open Match とよく組み合わせて使われます。

もっと学ぶ

Open Match

ゲームのマッチメイキングを作るためのオープンソースの土台

Open Match は Google が始めた、マッチメイキング(待っているプレイヤーを公平な試合にまとめること)のためのオープンソースプロジェクトです。良い試合の条件は自分で書き、待ち札(チケット)の列の管理と規模の拡大は Open Match が受け持ちます。よく Agones と一緒に使われ、Agones が試合ごとにサーバーを起動します。

もっと学ぶ

Photon

ゲーム向けのマルチプレイ通信ツール群(Fusion・Quantum)

Photon(フォトン)は Exit Games が作った、プレイヤー同士でゲームの状態をやり取りするホスティング型のツール群です。Photon Fusion は主に Unity で使われ、Photon Quantum はすべてのプレイヤーが同じ入力から同じシミュレーションを動かす決定論的なエンジンです。アカウント・セーブ・ストアよりも通信に重点を置いています。

もっと学ぶ

Centrifugo

ブラウザーやアプリにリアルタイムでメッセージを届けるオープンソースのサーバー

Centrifugo(セントリフューゴ)はオープンソースのリアルタイムメッセージサーバーです。ブラウザーやアプリは(ふつうは WebSocket で)つながったままチャンネルを購読します。メインのサーバーがチャンネルにメッセージを出すと、Centrifugo が購読している全員に一度に届けます。チャットやリアルタイム通知によく使われます。

もっと学ぶ

SONUB 用語辞典

学習

用語 31 個

タッチタイピング

原文の表記 · Touch typing

キーを見ずに指の記憶で打つこと

タッチタイピングは、目を画面に向けたまま、指が記憶でキーを探して打つ方法です。指ごとに受け持つキーがあり、ほかのキーを押したあとは毎回ホームポジションに戻ります。はじめは遅く感じますが、速さと正確さを両方身につける唯一の道です。

もっと学ぶ

ホームポジション

原文の表記 · Home row

指を置いておくキーボードの真ん中の列

ホームポジションは、キーを押していないときに指が待っている真ん中の文字の列です。左手は A S D F、右手は J K L ; の上に置きます。F と J には小さな突起があり、見なくても人差し指で探せます。ほかのキーへ伸ばす動きは、すべてここから始まりここへ戻ります。

もっと学ぶ

WPM

1分間に打つ単語数で表すタイピングの速さ

WPM は words per minute の略で、1分間に打った単語の数です。単語ごとに長さがちがうため、タイピングのプログラムは正しく打った5文字を1単語と数えます。SONUB の段階練習では、段ごとに正確さの目標といっしょに WPM の目標があります。

もっと学ぶ

CPM

1分間に正しく打った文字数で表すタイピングの速さ

CPM は characters per minute の略で、1分間に正しく打った文字の数です。SONUB のタイピングテストは CPM と正確さで級を決めます。韓国語はキーを押すたびに数えるので、同じ文章でも英語より数字が大きくなり、級の基準は言語ごとにちがいます。

もっと学ぶ

キー配列

原文の表記 · Keyboard layout

どのキーにどの文字があるかを決めた並び

キー配列は、それぞれのキーでどの文字が入力されるかを決めた並びです。英語のキーボードの多くは、いちばん上の列の最初の6文字から名前をとった QWERTY を使います。韓国語は左に子音、右に母音がある2ボル式を使い、日本語と中国語は音をローマ字でつづって入力することがよくあります。SONUB では、サイトの言語とは別にキーボードの言語を選びます。

もっと学ぶ

正確さ

原文の表記 · Accuracy

押したキーのうち正しく押せた割合

正確さは、キーを押した回数のうち正しく押せた割合(%)です。キーを100回押して5回まちがえれば、正確さは95%です。SONUB のすべての段とテストは、速さといっしょに正確さを見ます。ミスの上に積み上げた速さは長続きしないからです。

もっと学ぶ

箇条書き

原文の表記 · Bullet point

リストの各項目の頭に付ける点や記号

箇条書きは、リストの各行の前に小さな記号(たいてい •)を付けて書く書き方です。情報を短い別々の項目に分けるので、ざっと目を通しやすくなります。プロンプトで「スライドごとに箇条書き2つ」のように形式として頼むこともでき、AI ツールはたいてい Markdown で - や * で始まる行として書きます。

カリキュラム

原文の表記 · Curriculum

講座で教えることすべての、決められた順番

カリキュラムは講座全体の計画です。どのテーマをどの順に学び、各段階で何ができるようになり、それをどう確かめるかを決めます。カリキュラムに沿って進めば、あちこち飛ばずに前の授業の上に次の授業を積み上げられます。SONUB の AI・シェル・Git のカリキュラムは公開されていて、始める前に全体の道のりを見られます。

もっと学ぶ

パラダイム

原文の表記 · Paradigm

ある分野で共有されている基本的な考え方とやり方

パラダイムは、ある分野のほとんどの人が当たり前と思っている前提の集まりです。何をよい考えとするか、仕事をどう進めるか、成功とは何か。その枠組みが変わることをパラダイムシフトといいます。スマートフォンがソフトウェアの売り方を変えたように、いま AI が事業の始め方と進め方を変えています。

XP

授業やミッションを終えるともらえる経験値

XP(経験値)はゲームから借りた点数です。授業・クイズ・ミッションを終えるともらえ、時間とともにたまっていきます。一つの答えがどれだけよかったかではなく、どれだけ練習したかを表します。たとえば AI 実習室でチェックに合格すると、決まった量の XP が加わります。

もっと学ぶ

CC BY-SA

自由に再利用でき、出典を示し、同じ条件で共有するライセンス

CC BY-SA はクリエイティブ・コモンズのライセンスの一つです。BY はもとの作者を表示しなければならないこと、SA(継承)はそこから作ったものも同じライセンスで共有しなければならないことを意味します。この2つの決まりの中でなら、コピーも変更も販売もできます。Wikipedia や Learn X in Y Minutes がこれを使っているので、SONUB はその教材を手直しして使うときに出典を書きます。

声母

原文の表記 · Pinyin initial

中国語の音節のはじめに来る子音

ピンインは中国語の音節を、声母と韻母を組み合わせて書きます。声母は音節のはじめの子音で、ma・ba・da の m・b・d のように m、b、p、f、d、t、n、l などがあります。声母のない音節もあります。中国語のピンイン入力では声母を先に打つので、タイピングの授業ではまとまりごとに練習します。

もっと学ぶ

韻母

原文の表記 · Pinyin final

中国語の音節を締めくくる母音の部分

ピンインでは、声母のあとの部分全体を韻母といいます。母音や母音のまとまりで、ときには n や ng で終わります。a、o、e、ai、ao、an、ang などです。声母のない音節にも、韻母は必ずあります。ほとんどの言葉に出てくるので、タイピングの授業はたいてい単純な韻母 a、o、e、i、u から始めます。

もっと学ぶ

パッチム

原文の表記 · Batchim

ハングルの音節ブロックのいちばん下に来る子音

ハングルの音節は一つのブロックとして書きます。はじめの子音、母音、そしてときにはその下に終わりの子音が付き、これをパッチムといいます。밥 には上の ㅂ と下の ㅂ があり、下の ㅂ がパッチムです。パッチムは7つの音(ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅇ)でしか発音されないので、옷 と 옫 は単独では同じ音になります。

もっと学ぶ

二重パッチム

原文の表記 · Double batchim

2つの違う子音でできたパッチム

二重パッチムは、ㄳ、ㄵ、ㄺ、ㄼ のように2つの文字が横に並んだ終わりの子音です。単独では2つのうち1つしか発音しません。닭 は 닥、앉다 は 안따 のように聞こえます。後ろに母音が続くと、2つ目の子音が次の音節に移ります。닭이 は 달기 と聞こえます。

もっと学ぶ

濃音

原文の表記 · Tense consonant

韓国語の「詰まった」子音 ㄲ ㄸ ㅃ ㅆ ㅉ

韓国語には、同じ文字を2つ重ねて書く濃音が5つあります。ㄲ、ㄸ、ㅃ、ㅆ、ㅉ です。のどを締めて息を出さずに発音するので、꿀 は 굴 とも 쿨 とも違います。普通の子音も、特定のパッチムのあとなどでは濃音になります。학교 は 학꾜 と聞こえます。

もっと学ぶ

複合母音

原文の表記 · Compound vowel

2つの母音字を組み合わせた韓国語の母音(ㅘ ㅝ ㅢ)

ハングルの母音の中には、より単純な2つの母音を合わせて作り、一方の音からもう一方の音へすべるように発音するものがあります。ㅗ + ㅏ = ㅘ(wa)、ㅜ + ㅓ = ㅝ(wo)、ㅡ + ㅣ = ㅢ(ui)です。2つの別々の音節として読むのはよくある間違いで、과 は gwa という1音節です。

もっと学ぶ

敬語

原文の表記 · Honorifics

話題の人や話し相手への敬意を表す韓国語の形

韓国語は敬意を表すために言葉を変えます。主語が年上や目上なら動詞に -(으)시- を入れ、特別な尊敬の言葉を持つ語もあります。먹다(食べる)には 드시다、있다(いる)には 계시다 です。目上の人・お客様・初対面の人に使うのが当然とされ、親しい友達に使うとよそよそしく聞こえることがあります。

もっと学ぶ

不規則活用

原文の表記 · Irregular conjugation

語幹がふつうの決まりに従わずに変わる韓国語の動詞

韓国語の動詞のほとんどは、語尾を付けても語幹が変わりませんが、決まった型で語幹が変わるものもあります。ㅂ 変則は ㅂ が 우 に(덥다 → 더워요)、ㄷ 変則は ㄷ が ㄹ に(듣다 → 들어요)、ㅅ 変則は ㅅ が落ちます(낫다 → 나아요)。型ごとに覚える必要がありますが、数はわずかです。

もっと学ぶ

連結語尾

原文の表記 · Connective ending

2つの節を1つの文につなぐ韓国語の動詞の語尾

韓国語は「そして」のような別の言葉を足すのではなく、前の動詞の終わりを変えて文をつなぎます。連結語尾にはそれぞれ意味があります。-고(〜て、そして)、-아서/어서(〜ので)、-지만(〜けれど)、-(으)면(〜なら)。비가 와요 + 집에 있어요 は 비가 와서 집에 있어요(雨が降るので家にいます)になります。

もっと学ぶ

使役

原文の表記 · Causative

「だれかにさせる」という意味の動詞の形

使役の動詞は、主語がほかのだれかにその動作をさせたり、させてあげたりすることを表します。韓国語では -이-、-히-、-리-、-기-、-우- や -게 하다 で多くを作ります。먹다(食べる)→ 먹이다(食べさせる)、입다(着る)→ 입히다(着せる)です。受身と同じ接尾辞もあるので、どちらの意味かは文で決まります。

もっと学ぶ

受身

原文の表記 · Korean passive

何かをされることを表す韓国語の動詞の形

受身の動詞は、動作を受ける側を前に出します。韓国語では -이-、-히-、-리-、-기- で多くを作ります。보다(見る)→ 보이다(見える)、먹다(食べる)→ 먹히다(食べられる)、열다(開ける)→ 열리다(開く)です。多くの動詞では -아/어지다 も使えます。日本語の「〜れる・〜られる」と同じ役割です。

もっと学ぶ

慣用句

原文の表記 · Idiom

言葉を足しただけでは意味にならない決まった言い回し

慣用句は、言葉を一つずつ読んだ意味とは違う意味を持つ決まった言い回しです。韓国語の 발이 넓다(足が広い)は「顔が広い」、손이 크다(手が大きい)は「気前がいい」という意味です。慣用句はまとまりごと覚える必要があり、TOPIK の読解や聞き取りの問題にもよく出ます。

もっと学ぶ

TOPIK

外国語としての韓国語の公式試験

TOPIK(Test of Proficiency in Korean、韓国語能力試験)は、韓国語を母語としない人のための公式の韓国語試験で、韓国政府が実施しています。TOPIK I は1〜2級、TOPIK II は3〜6級で、初級から上級までを扱います。韓国の大学や企業はよく一定の級を求めるので、講座ではその問題形式で練習します。

もっと学ぶ

複文

原文の表記 · Complex sentence

主語と述語の組が2つ以上ある文

複文は、それぞれに主語と述語を持つ節を2つ以上つないだ1つの文です。英語は because・when・who などの言葉でつなぎ、韓国語は前の動詞の終わりを連結語尾で変えてつなぎます。複文を作って読めるようになると、短くぶつ切りの文が自然な文章に変わります。

文の成分

原文の表記 · Sentence component

言葉が文の中で受け持つ役割 — 主語・目的語など

文の成分は、言葉が文の中で受け持つ役割です。主語(だれが)、述語(どうする)、目的語(何を)、補語、修飾語があります。品詞はどんな種類の言葉かを表し、文の成分はその文の中でどんな仕事をするかを表します。長い文を読むときは、まず成分を見つけることから始めます。

スモールトーク

原文の表記 · Small talk

よく知らない人と交わす短く軽い会話

スモールトークは、天気、いまいる場所、相手の仕事など、気軽な話題での親しみのある会話です。情報を伝えることより、感じのよさを見せ、もっと長い会話への扉を開くことが目的です。こつは、答えて、少し付け加えて、質問を返すことです。そうすれば相手に話す番が回ります。

韓国語の助詞

原文の表記 · Particle (Korean)

名詞の後ろに付けて役割を示す小さな言葉(은·는·이·가)

韓国語は名詞の終わりに助詞を付けて、その名詞の役割を示します。이/가 は主語、을/를 は目的語、에 は場所や時間、은/는 は話題を表します。形は名詞の最後の音で変わり、책이 ですが 사과가 です。助詞が役割を運ぶので、韓国語の語順はかなり自由です。検索ツールも助詞を考えに入れないと、토큰 を探したときに 토큰을 が見つかりません。

もっと学ぶ

活用形

原文の表記 · Inflected form

語尾が変わった形の言葉(write → writes、wrote)

活用形は、文に合わせて語尾を変えた言葉です。複数形(token → tokens)、時制(write → wrote)、韓国語の動詞の語尾(쓰다 → 써서)などがあります。用語の説明表示では、形が違えば文字列も違うので、自動で見つけられるのは別名として登録した形だけです。ほかの形は data-term で手で印を付けます。

もっと学ぶ

小文字

原文の表記 · Small letter

文字の小さいほうの形: a、b、c

小文字はアルファベットのふだんの形です。文章のほとんどは小文字で書かれ、大文字は特別な場所にしか出てきません。だから小文字をしっかり覚えることがいちばん大切です。似ていて取り違えやすいものもあります。b と d は向きが反対で、p と q は線の下に伸びます。

読解

原文の表記 · Reading comprehension

文章を読んで、意味を正しく理解すること

読解とは、単語を声に出すだけでなく、読んだ内容を理解することです。文章が何についてか、要旨は何か、それを支える細かい情報、そしてはっきりとは言っていないけれど示していることを読み取ります。試験では、主題・要旨・空所・推論の問題で読解力を確かめます。長い文章では、最初と最後の文を先に読むといった方法が役に立ちます。

SONUB 用語辞典

レッスン

用語 43 個

米ドル(USD)

原文の表記 · USD (US dollar)

SONUB の授業料に使う唯一の通貨、アメリカドル

USD はアメリカ合衆国ドルを表すコードです。講師はすべての授業料を 1 ドル単位の米ドルで決めます。最低 $1、最高は 1 分あたり $1 です(たとえば 25 分の授業なら $1〜$25)。学生はちょうどその金額を PayPal で講師に直接支払います。SONUB にはポイントもほかの通貨もありません。

もっと学ぶ

評判

原文の表記 · Reputation

授業の記録から SONUB が積み上げる信頼の記録

評判は、講師や支払者が信頼できるかどうかを示すもので、SONUB に残った記録だけで作られます。ビデオ教室での出席、キャンセル、評価、確認された問題などです。一つの数字ではなく根拠と一緒に表示され、身元やこれからの取引を保証するものではありません。記録がまだ少ない新しい会員は、評判が悪いわけではありません。

もっと学ぶ

評判の減点

原文の表記 · Reputation deduction

直前のキャンセルや欠席で講師から引かれる点数

評判の減点は、講師が支払い済みの授業や無料体験を遅れてキャンセルしたり欠席したりしたときに、SONUB の記録から自動的に付きます。減点ごとに90日間ランキングの点数から引かれ、合計は最大50点までです。SONUB はこれをペナルティとは呼びません。

評判の割合

原文の表記 · Reputation rate

講師の評判を0から100のパーセントで表したもの

評判の割合は、講師の最近の記録をパーセントに直したものです。直近90日の成功した授業の割合から最大40、公開された学生の評価から最大30、成功した授業の数から最大30(60回で満点)が入ります。いつも計算し直されるので、下がることもあります。予約期間はこの値では変わらず、すべての講師が24日です。

表示スコア

原文の表記 · Ranking score (display score)

講師を探す画面での並び順を決める今日の点数

表示スコアは講師を探す画面の並び順を決める点数で、毎日変わります。プロフィール完成度 + SONUB評価 × 10 + 今日の時間割(最大10) + 今日無料体験があれば3 + 100日間の成功した授業100回ごとに1 + 学生の評価(−50〜+50) + 管理スコア(最大10) − 評判の減点、です。147点以上なら点数が高いほど前に表示されます。評判とは別のものです。

もっと学ぶ

プロフィール完成度

原文の表記 · Profile score

講師がプロフィールをどれだけ埋めたかを示す100点満点の点数

プロフィール完成度は、入力した項目を数えます。名前1、写真15、動画15、本名5、生年月日5、学校5、見出し9、100文字以上の自己紹介10、教える分野10、授業の言語5、国5、経歴5、PayPal ビジネスアカウント 10です。予約を受けるには95点以上と PayPal ビジネスアカウントの連携が必要です。点数が低くても一覧には出ますが、下のほうに表示されます。

もっと学ぶ

実績

原文の表記 · Achievement

成功した授業や推薦の数が節目に届いた記録

実績は講師のプロフィールに付く節目の記録です。成功した授業100回・1,000回・5,000回・10,000回(無料体験も含む)と、推薦1回・10回・100回があります。推薦1回は、学生の評価から得たプラスの点100点です。一度得た実績は消えません。

予約期間

原文の表記 · Booking period

学生が何日先まで講師を予約できるか(すべての講師が24日)

予約期間は、講師の時間割を何日先まで開いておくかです。評判や実績に関係なく、すべての講師が今日から24日で、有料授業・無料体験とも同じです。PayPal は押さえた支払いを29日までしか請求できず、講師は授業が終わってから最大96時間(4日)以内に授業評価を保存したときに授業料を請求します。24 + 4 = 28日なので、いちばん遅い請求もこの期限内に終わります。講師はこれより短くだけ設定でき、期間が短くなっても受けた予約はそのままです。

もっと学ぶ

決済窓口

原文の表記 · Payment channel

講師が授業料を受け取る場所、つまり PayPal ビジネスアカウント

決済窓口とは、講師が授業料を受け取るために連携する PayPal ビジネスアカウントのことで、SONUB でただ一つの支払い方法です。講師プロフィールの「決済設定」タブに Live アプリの Client ID と Secret を保存して連携し、予約を受けるには連携が必要です。SONUB は保存する前に PayPal でキーを確認し、PayPal がキーを受け付けなくなったらお知らせします。カードのリンク、銀行振込、ほかのアプリは使えません。

もっと学ぶ

予約の状態

原文の表記 · Booking status

授業の「予約済み」「無料体験」「キャンセル済み」の意味

有料の授業は PayPal が支払いを確定してから予約されるので、未払いのまま残ることはありません。すぐに「予約済み」と表示されます。無料体験は「予約済み・無料体験」と表示されます。キャンセルされた授業には誰がキャンセルしたかが表示され、支払い済みでまだ返金されていない金額は PayPal で自動的に返金されます。予約済みの時間はほかの生徒が取ることはできません。

支払いの確定

原文の表記 · Payment confirmation

支払いが完了したという PayPal の確定

PayPal が支払いごとに SONUB へ直接確定を知らせるので、人が手で確認することはありません。PayPal が支払いを確定するとすぐに授業が予約されます。PayPal が支払いを完了しなければ、授業は予約されず、料金も請求されません。

違約金

原文の表記 · Cancellation fee

学生が直前にキャンセルしたときに失う授業料の一部

基本の条件では、学生が支払い済みの授業を予約から30分以内、または開始の24時間以上前にキャンセルすれば、何も失いません。それ以外は、12〜24時間前なら5%、6〜12時間前なら10%、1〜6時間前なら20%、1時間を切ったら25%です。講師は代わりに全額返金の条件を選ぶこともできます。SONUB はこのお金を計算も保管も支払いもしません。

キャンセル・返金条件

原文の表記 · Cancellation terms

予約したときに決まった返金のルール

予約にはそれぞれ、予約した時点の料金と、キャンセル・返金条件の写し(スナップショット)が保存されます。あとで講師が条件を変えても、新しい条件が使われるのはその後の予約だけです。講師は基本の表と、開始前ならいつキャンセルしても全額返金する条件のどちらかを選びます。

無料体験

原文の表記 · Free trial

講師ごとに1回受けられる、25分以下の無料の授業

学習者はそれぞれの講師の無料体験を1回ずつ受けられ、何人の講師で受けても構いません。SONUB評価を持ち、無料体験をオンにした講師の25分以下の授業に自動で適用されます。学生が開始の60分前まで、または予約から10分以内にキャンセルすれば、無料体験は戻ってきます。

もっと学ぶ

無料体験の復元

原文の表記 · Trial recovery

使った無料体験を取り戻して、もう一度受けられるようにすること

無料体験がうまくいかなかったとき、学生は終了から96時間以内に復元を依頼できます。決めるのは講師で、24時間以内に回答がなければ復元され、講師が断ったときは管理者が決めます。復元された無料体験は、同じ講師でもう一度予約できます。無料体験を期限内にキャンセルした場合も復元されます。

もっと学ぶ

SONUB評価

原文の表記 · SONUB rating

管理者だけが講師に付ける星1〜5つ

SONUB評価は、SONUB の管理者だけが付ける星1〜5つの評価で、学生の評価とは別のものです。星1つごとに表示スコアに10点が加わり、評価を持つ講師だけが無料体験を提供できます。

紛争の証拠

原文の表記 · Dispute evidence

意見が食い違ったときのために SONUB が残す予約の記録

紛争の証拠は、SONUB が予約について記録したものです。合意した条件、ビデオ教室の出席、SONUB で送ったメッセージが入っています。PDF でダウンロードでき、元の記録そのものを JSON で、書き換えられていないことを確かめるハッシュと一緒にダウンロードすることもできます。ほかの部屋や道具で行った授業や SONUB の外での会話は含まれず、支払いの証明にもなりません。

報告への回答

原文の表記 · Response to a report

報告された側が7日以内に出す説明

予約が報告されると、相手は7日以内に自分の言い分と証拠を出して回答できます。管理者はその期間が過ぎてから判断し、使った理由と記録を書き残します。報告だけで問題が確定したり、アカウントが停止されたりすることはありません。

異議申立て

原文の表記 · Appeal

決定をもう一度見直してほしいと求めること

報告についての管理者の決定(制限など)に納得できないときは、理由を書いて異議を申し立てられます。異議申立てとその結果は記録に残ります。SONUB は中立を保ち、お金についてどちらが正しいかは判断しません。

予約制限

原文の表記 · Booking restriction

問題が確認されたあとに管理者がかける制限

管理者が制限をかけるのは、問題が確認されたときだけです。たとえば相手が認めた、SONUB の記録に表れている、3人以上の別々の人が同じ種類の問題を報告した、といった場合です。講師は、制限中の支払者からの予約を自動で断るよう設定できます。制限を受けた人には理由が知らされ、7日間の回答期間があり、異議を申し立てることもできます。

評判を形成中

原文の表記 · Building reputation

評判を判断するには、まだ取引した相手が少ないこと

SONUB の記録で、少なくとも3人の別々の相手と授業をするまで、会員は「評判を形成中」です。生徒管理者の学習者たちは、まとめて1人の支払者として数えます。これは記録が少ないというだけで、悪い記録があるという意味ではありません。講師は評判を形成中の支払者を受け入れるかどうかを選べ、学生は評判を形成中の講師を非表示にできます。

本人確認

原文の表記 · Identity verification

管理者が講師の身分証明書を確かめる任意の手続き

講師は身分証明書と住所の証明(該当する場合は直近3か月以内のもの)を送り、管理者に確認してもらえます。予約を受けるのに必須ではありません。SONUB は結果だけを残し、原本は30日以内に削除します。通ると「本人確認済み」と表示され、学生はそれで絞り込めます。授業の質や支払いを保証するものではありません。

もっと学ぶ

態度評価

原文の表記 · Attitude evaluation

授業そのものではなく、相手のふるまいを評価すること

授業のあと、学生と講師はそれぞれ360時間(15日)以内に、相手のふるまいを−3から+3で評価できます。たとえば何度も遅刻した、失礼だった、未払いの授業のあとでお金を求めた、などです。マイナスの点を付けるには理由が必要です。評判では授業評価の2倍の重みで数えられ、双方の点数は同時に公開されます。

授業評価

原文の表記 · Lesson review

授業が終わってから72時間以内に、その1回の授業を評価すること

授業が終わってから72時間(3日)以内に、学生は講師の授業を−3から+3で採点し、遅刻・指導・授業準備も評価できます。講師は学習者の「聞く・話す・読む・書く」についてフィードバック(1〜9)を書きます。学生の点数は講師のプロフィールに表示され、学習者へのフィードバックは非公開です。期限を過ぎると誰も評価できません。

ダブルブラインド

原文の表記 · Double-blind reveal

双方が出すか期限が来るまで、評価が見えないしくみ

双方が評価を出すか期限が過ぎるまで、どちらも相手の評価を見られません。期限は授業評価が72時間、態度評価が360時間です。こうすることで、相手の評価を見てから自分の評価を変えることを防ぎます。自分の評価を直したり消したりできるのは、公開されるまでです。

学習者レベル

原文の表記 · Learner level

講師のフィードバックから出す、技能ごとの学習者のレベル

講師は授業のたびに、学習者の「聞く・話す・読む・書く」を1から9で評価します(1〜3は初級、4〜6は中級、7〜9は上級)。最初の評価が公開された時点から、技能ごとのレベルは直近の評価(最大30件)の平均を切り上げた値になります。見られるのは学習者本人、その生徒管理者、担当の講師だけです。

授業の総合レベル

原文の表記 · Session level

1回の授業で講師が付けた点数すべての平均

授業の総合レベルは、講師が1回の授業で付けた技能の点数(1〜9)の正確な平均で、小数のまま保存します。その1回の授業だけを表すもので、学習者レベルは多くの授業を平均したものです。

生徒管理者

原文の表記 · Student manager

学習者の授業を予約し、支払う人

生徒管理者は、学習者のために授業を予約し、支払い、管理する保護者・学校の先生・団体です。たとえば子どもにとっての親がそうです。学習者1人は1人の生徒管理者に属します。支払いの記録は生徒管理者の評判に数えられ、出席とレベルは学習者のものになります。一人で学ぶ大人は、学習者であり自分自身の生徒管理者でもあります。

もっと学ぶ

学習者

原文の表記 · Learner

実際に授業を受ける人

学習者は授業を受ける人で、予約と支払いは生徒管理者が行います。生徒管理者が新しく追加する学習者には、未成年も含めて必ず生徒 ID が作られます。無料体験、授業時間、レベルは学習者ごとに数えます。

生徒ID

原文の表記 · Student ID

生徒管理者が学習者のために作るログイン

生徒管理者は名前・ID・パスワードを決めて生徒 ID を作り、SONUB はそれを ID@sonub.com というログイン ID にします。ID は英小文字・数字・ドット・アンダースコア・ハイフンの3〜30文字で、英字か数字で始めます。パスワードは8文字以上です。学習者はこれで自分の授業とチャットを見て参加できますが、予約・支払い・キャンセル・評価はできません。

もっと学ぶ

ルームのアドレス

原文の表記 · Room address

/c/ で始まるビデオルームのウェブアドレス

ビデオルームのアドレスは /c/ で始まる短い番号のアドレスです。授業ルームは /c/booking/講師番号-生徒番号/enter で、講師と生徒の組み合わせごとに一つあり、会議室は運営者が作る /c/meeting/ルーム番号/enter です。アドレスを知っている人は誰でも入れますが、出席として数えられるのはその予約の講師と学習者だけです。

もっと学ぶ

ビデオ教室

原文の表記 · Video classroom

ブラウザーで動く SONUB 独自のビデオルーム

ビデオ教室は SONUB に組み込まれたビデオルームで、カメラ・マイク・画面共有・ホワイトボードがすべてブラウザーの中で使え、何もインストールしなくて済みます。SONUB 自身のサーバーでオープンソースの LiveKit を動かし、誰が入室・退室したかを記録します。評判と紛争の証拠に数えられるのは、授業ルーム(講師と生徒の組み合わせごとに一つのルーム)で行った授業だけです。

もっと学ぶ

授業の録画

原文の表記 · Class recording

ルームの持ち主のブラウザーで授業を録画すること

授業を録画するのはルームの持ち主のブラウザーだけで、ファイルはそのパソコンに残ります。SONUB は動画を保存せず、紛争の証拠にも使いません。録画は最初はオフで、始めるとルームの全員に知らされ、録画中の印が表示されます。パソコンの Chrome か Edge を使ってください。

一緒にいた時間

原文の表記 · Time together

講師と学習者が同時にルームにいた時間

SONUB は教室の入室・退室の記録から、授業時間のあいだに講師と学習者がどれだけ一緒にルームにいたかを測ります。これが授業の長さの90%以上(50分の授業なら45分)あれば、授業は正しく行われたことになります。結果は授業が終わって数分後に判定されます。

成功した授業

原文の表記 · Successful class

双方が授業時間の90%以上一緒にいた、終わった授業

成功した授業とは、SONUB のビデオ記録で、講師と学習者が授業の長さの90%以上一緒にいたことが分かる、終わった授業です。無料体験も含みます。キャンセルされた授業、欠席した授業、紛争中の授業、ほかのビデオツールで行った授業は含みません。成功した授業は、表示スコア・評判の割合・実績に反映されます。

欠席

原文の表記 · Absence

授業が終わるまで一度も教室に入らなかったこと

欠席とは、授業が終わるまで一度も講師のルームに入らなかったことです。途中で一度でも入れば欠席ではなく遅刻で、遅れた分数が記録されます。授業のあとに教室の記録から判定します。講師の欠席は評判 −3 で、学習者の欠席(無断欠席)は支払者の評判に数えられます。記録がまったくないときは、SONUB は判定しません。

時間割に表示されない予約授業

原文の表記 · Booked classes not on your timetable

時間割からその時間を消してしまった予約

学生が予約したあとで時間割の枠を変更または削除しても、その予約は残ります。SONUB はそれをあなた自身のスケジュール画面に一覧で出すので、授業を行うかキャンセルできます。学生やゲストにはこの一覧は見えません。

もっと学ぶ

クラスボット

原文の表記 · class bot

チャットで授業のお知らせを送る、返信できない SONUB のボット

class bot は予約のお知らせをチャットメッセージで送り、そのメッセージはプッシュ通知でも届きます。新しい予約、キャンセルと返金、もうすぐ始まる授業、評価です。生徒と講師の1対1チャットにも読み取り専用のシステムメッセージを残します。ボットには返信できず、講師にメッセージを送るだけでは予約はキャンセルされません。キャンセルボタンを使ってください。

仲介

原文の表記 · Intermediary

SONUB は学生と講師をつなぐだけで、取引の当事者ではありません

SONUB は講師を紹介し、予約とビデオ教室を運営し、記録を残しますが、授業料を受け取ったり、預かったり、渡したりはせず、学生と講師のあいだの取引の当事者でもありません。紛争では完全に中立を保ちます。お金に関する真実は判断せず、自分の記録にある事実と、別々の人から繰り返されるパターンだけを見ます。

もっと学ぶ

手数料0%

原文の表記 · 0% commission

SONUB は授業料から何も差し引きません

SONUB は講師からも学生からも、手数料や利用料を取りません。学生は授業料の全額を PayPal で、講師の PayPal ビジネスアカウントに直接支払うので、入金を待つ精算もありません。ただし PayPal 自身の手数料は、PayPal の規約に従ってかかることがあります。

もっと学ぶ

管理スコア

原文の表記 · Management score

学習者へのフィードバックを期限内に書くともらえる点数

管理スコアは、終わった授業(無料体験を含む)のうち、講師が72時間以内に学習者へのフィードバックを書いた割合に10を掛けたもので、0〜10点が表示スコアに加わります。学習者に高い点を付けても何も増えません。数えるのは期限内に書いたかどうかだけです。

AI講師認定証

原文の表記 · AI teacher certificate

AI を教えるための SONUB の3級から1級までの資格

SONUB は AI 講師を3級から1級までで認定し、数字が小さいほど上の級です。AI を教えるには1級が必要で、英語やほかの分野には認定は要りません。AIコースで学んでから、画面全体を共有したビデオ面接を受けます。面接では素早い答えと素早い作業が大切です。申し込みはまだ受け付けていません。

もっと学ぶ

SONUB 用語辞典

シェル

用語 152 個

シェル

原文の表記 · Shell

打ち込んだコマンドを読み取って実行するプログラム

シェルは、ターミナルの画面の裏で働いているプログラムです。プロンプトを表示し、打ち込んだ一行を読み、その名前のプログラムを探して実行し、結果を見せてくれます。よく使われるシェルは bash と zsh です。シェルスクリプトは、同じコマンドをファイルにまとめただけのものです。

もっと学ぶ

bash

いちばん広く使われているシェル — macOS の標準は zsh

bash は Linux サーバーの標準のシェルで、インターネット上のスクリプトの多くは bash 向けに書かれています。macOS は標準で zsh を使いますが、このコースの内容はほとんどそのまま動きます。スクリプトの一行目に #!/bin/bash と書けば、どちらのシステムでも bash で実行されます。

プロンプト

原文の表記 · Prompt

シェルがコマンドを待っているという印

プロンプトは行の先頭に出る文字で、多くは $(bash)や %(zsh)で終わり、前にユーザー名や現在のフォルダーが付くこともあります。これが見えたらシェルの準備ができています。コマンドを一つ打って Enter を押しましょう。> に変わったら、コマンドがまだ終わっていないという意味です。たいていは引用符が閉じていないのが原因です。

コマンド

原文の表記 · Command

シェルに実行させるために打ち込む命令一つ

コマンドの一行は、たいてい三つの部分でできています。コマンドそのもの(何をするか)、オプション(どうするか。- で始まる)、引数(何に対してするか)です。言葉と言葉は空白で区切り、シェルは大文字と小文字を別の文字として扱います。

オプション

原文の表記 · Option

- で始まり、コマンドの動き方を変えるスイッチ

オプションはフラグとも呼ばれ、ダッシュで始まります。-l のような一文字の短いものはダッシュ一つ、--help のような長い名前はダッシュ二つです。短いオプションはまとめて書けるので、ls -l -a と ls -la は同じ意味です。head -n 3 のように値を取るオプションもあります。

引数

原文の表記 · Argument

コマンドが働きかける対象

引数は、コマンドとオプションの後ろに続く言葉で、多くはファイル名やフォルダー、文字です。シェルは空白で区切るので、空白を含む名前は引用符で囲む必要があります。スクリプトや関数の中では $1、$2 などに引数が入り、$# がその個数を表します。

パス

原文の表記 · Path

ファイルやフォルダーの住所

パスは、たどるフォルダーを / で区切って並べたものです。絶対パスはルート / から始まり、どこからでも通じます。相対パスは今いる場所から始まります。. は現在のフォルダー、.. はその親、~ はホームフォルダーです。

現在のフォルダー

原文の表記 · Current folder

シェルが今作業しているフォルダー

コマンドはどれも、あるフォルダーの「中で」動きます。これを現在のフォルダー、または作業ディレクトリと呼びます。相対パスはここから始まり、新しいファイルもここにできます。pwd で表示し、cd で変え、. がその短い呼び名です。

ホームフォルダー

原文の表記 · Home folder

~ と書く、自分専用のフォルダー

どのユーザーにも /home/learner や /Users/name のようなホームフォルダーがあります。シェルはこれを ~ と書き、新しいターミナルはここで開きます。書類や .bashrc のような隠れた設定ファイルがここにあり、cd の後に何も書かなければここへ戻れます。

隠しファイル

原文の表記 · Hidden file

名前がドットで始まるファイル

名前が . で始まるファイルやフォルダーは、ただの ls では表示されません。たいていは .bashrc・.zshrc・.gitignore のような設定が入っています。ls -a で表示でき、その一覧の . と .. は現在のフォルダーとその親を表します。

大文字と小文字の区別

原文の表記 · Case-sensitive

大文字と小文字を別の文字として扱うこと

シェルは大文字と小文字を別のものとして扱います。ls は動きますが LS は動きません。Linux では notes.txt と Notes.txt は別々の二つのファイルです。macOS はふつうファイル名の大文字・小文字を区別しませんが、コマンドと変数はやはり区別されます。

変数

原文の表記 · Variable

後で使うために値をしまっておく名前

変数は name=value で作ります。= の前後に空白を入れてはいけません。読むときは $name です。値の空白がばらばらにならないよう、いつもダブルクォートで囲んで "$name" と読みましょう。名前は大文字と小文字を区別し、${name} と書くと名前の終わりがはっきりします。

引用符(クォート)

原文の表記 · Quotes

ダブルクォートとシングルクォートが文字を守るしくみ

ダブルクォートは文字をひとまとまりに保ちつつ、変数や $(コマンド) は展開します。だから "$name" が変数を読む安全な方法です。シングルクォートは中身をすべて書いたとおりに保つので、'$name' は $name をそのまま表示します。引用符がないと、シェルは値を空白で分け、* や ? をファイル名に変えてしまいます。

算術展開

原文の表記 · Arithmetic expansion

$(( )) で整数の計算をすること

$(( 式 )) は計算をして、その結果をその場所に置きます。+ - * / と、余りを出す % が使えます。中では変数を $ なしで使えます。整数しか扱えないので 7 / 2 は 3 になります。小数が必要なら awk や python3 を使いましょう。(( )) だけで書くと、((count++)) のように表示せずに計算します。

コマンド置換

原文の表記 · Command substitution

コマンドの出力を別のコマンドの中で使うこと

$(コマンド) はそのコマンドを実行し、出力をその場所に置きます。変数にしまったり、文の中に入れたりできます。空白や改行を保つにはダブルクォートで囲みましょう。バッククォートを使う古い書き方もありますが、$( ) のほうが読みやすく、入れ子にもできます。

パラメーター展開

原文の表記 · Parameter expansion

${ } で変数の値の形を変えること

${ } は変数を読むだけではありません。${name:-default} は値が空のときの代わりの値、${#name} は長さ、${name^^} は大文字、${path##*/} はファイル名だけ、${file%.txt} は末尾を取った名前を返します。別のコマンドは要りません。

ブレース展開

原文の表記 · Brace expansion

{ } で似た言葉をまとめて書くこと

波かっこは、コマンドが動く前にいくつもの言葉に広がります。{a,b,c} は三つの言葉、{1..5} は範囲になるので、mkdir day{1..3} は day1・day2・day3 を作ります。文字を作り出すだけなので、ファイルが存在していなくてもかまいません。

配列

原文の表記 · Array

値の一覧を持つ変数

配列は一つの名前の下に複数の値をしまいます。fruits=(apple banana) のように作ります。${fruits[0]} で一つを、"${fruits[@]}" ですべてを読み、${#fruits[@]} で個数を数えます。bash は 0 から、zsh は 1 から数えます。declare -A を使うと、番号の代わりに言葉をキーにする連想配列ができます。

条件分岐

原文の表記 · Conditional

条件によって実行するものを選ぶこと

条件分岐は、何かが成り立つときだけコマンドを実行します。シェルでは if … then … fi で書き、elif や else で道を増やせます。一つの値をいくつかのパターンと照らし合わせるなら case を使います。条件そのものもコマンドで、その終了コードで決まります。0 が真です。

ループ

原文の表記 · Loop

コマンドを何度も繰り返すこと

ループはコマンドを繰り返します。for は項目の一覧を一つずつたどり、while は条件が成り立つ間、until は条件が成り立つまで繰り返します。ループがあるから、スクリプトは百個のファイルでも一個と同じように簡単に扱えます。

関数

原文の表記 · Function

名前を付けて何度も呼び出せるコマンドのまとまり

name() { コマンド; } で関数を定義します。その後は name と打つだけで、新しいコマンドのように実行されます。名前の後ろに渡した値は $1、$2 … に入り、$@ にはすべてが入ります。中だけで使う変数には local を、終了コードを返すには return を使います。

スクリプト

原文の表記 · Script

上から順に実行される、シェルのコマンドを書いたファイル

スクリプトは、ふだん打ち込むコマンドを書いておいたテキストファイルで、たいてい .sh で終わります。bash script.sh で実行するか、シバンの行を書いて chmod +x してから ./script.sh で実行します。スクリプトは繰り返しの作業を一つのコマンドにしてくれます。AI ツールが作業を自動化するときも、たいていこの方法です。

シバン

原文の表記 · Shebang

実行するプログラムを選ぶ #! の一行目

スクリプトの一行目で #! から始まる行は、そのファイルをどのプログラムで実行するかをシステムに伝えます。bash なら #!/bin/bash、Python なら #!/usr/bin/env python3 です。./script のようにファイルを直接実行するときに使われ、macOS でも Linux でもスクリプトが同じように動くようにします。

実行権限

原文の表記 · Executable permission

ファイルをプログラムとして実行してよいという許可

ファイルには、持ち主・グループ・その他の人それぞれに、読み取り(r)・書き込み(w)・実行(x)の権限があり、ls -l で確認できます。作ったばかりのスクリプトにはたいてい x がないので、./script.sh は Permission denied で失敗します。chmod +x で付けられます。bash script.sh なら x がなくても動きます。

終了コード

原文の表記 · Exit code

コマンドが返す数 — 0 は成功

どのコマンドも終了コードを返して終わります。成功なら 0、失敗ならそれ以外の数です。$? には直前のコマンドのコードが入っています。&& は成功したときだけ、|| は失敗したときだけ次のコマンドを実行するので、command || exit 1 と書けばスクリプトを安全に止められます。if も同じ決まりで動きます。

パイプ

原文の表記 · Pipe

あるコマンドの出力を別のコマンドへ送る |

コマンドA | コマンドB は、A の標準出力を B の標準入力につなぎ、小さな道具を一行に組み合わせます。データはできたそばから流れ、それぞれの段で絞り込んだり、並べ替えたり、数えたりできます。パイプラインは何段でもつなげます。流れるのは通常の出力だけで、エラーメッセージは 2>&1 を付けない限り流れません。

リダイレクト

原文の表記 · Redirection

出力をファイルへ送ったり、入力をファイルから読んだりすること

> file はコマンドの出力をファイルに保存し、前の中身を置き換えます。>> file は代わりに末尾に追加します。< file はファイルを入力として渡します。2> file はエラーメッセージだけを保存し、2>&1 はエラーを通常の出力と同じ場所へ送ります。

標準入出力

原文の表記 · Standard input and output

どのコマンドにもある三つのデータの流れ

どのコマンドにも三つの流れがあります。読み込む標準入力(0)、通常の結果が出る標準出力(1)、エラーメッセージ用の標準エラー(2)です。何もしなければ入力はキーボードから来て、二つの出力はどちらも画面に出ます。パイプとリダイレクトはこれをつなぎ替え、/dev/null は出力を捨てるごみ箱です。

ヒアドキュメント

原文の表記 · Heredoc

<< で複数行を入力として渡すこと

ヒアドキュメントは、続く行を、EOF のような終わりの言葉だけが書かれた行の手前まで、コマンドに入力として渡します。<<'EOF' のように始まりの言葉を引用符で囲むと、書いたとおりに渡します。囲まないと、シェルが先に中の $変数を置き換えます。終わりの言葉は行のいちばん先頭から書かなければなりません。

サブシェル

原文の表記 · Subshell

中での変更が外に戻ってこない子どものシェル

( ) の中のコマンドは別の子どものシェルで動くので、そこでの cd や変数の変更は終わると消えます。一時的な変更に便利です。パイプのそれぞれの段もサブシェルで動くことがあるので、パイプにつないだ while ループの中で設定した変数が、後で空になっていることがあります。

グロビング

原文の表記 · Globbing

* や ? を一致するファイル名に置き換えること

コマンドが動く前に、シェルはパターンを一致するファイル名に置き換えます。* は任意の文字列、? はちょうど一文字、[abc] はそのうちの一文字です。だから rm *.txt は、ここにある .txt ファイルをすべて消します。引用符はグロビングを止めます。何も一致しなければ、bash はパターンをそのまま残します。

単語分割

原文の表記 · Word splitting

引用符のない値が空白でばらばらになること

引用符なしの $変数 を展開した後、シェルはその結果を空白・タブ・改行、つまり IFS に並んだ文字のところで別々の言葉に分けます。すると my file.txt のようなファイル名は二つの引数になってしまいます。"$var" と書けば防げます。引用符が安全のいちばん目の決まりなのはこのためです。

正規表現

原文の表記 · Regular expression

文字列を照らし合わせるためのパターンの言語

正規表現は、探したい文字列の形を書き表します。^ は行の先頭、$ は行末、. は任意の一文字、* は直前のものの 0 回以上の繰り返し、[0-9] は数字一つです。grep・sed・awk、そして [[ =~ ]] がこれを使います。どちらも * を使いますが、グロビングとは別物です。

環境変数

原文の表記 · Environment variable

起動するすべてのプログラムに引き継がれる設定

環境変数は export された変数で、プログラムが受け継ぎます。HOME はホームフォルダー、USER はユーザー名、PATH はコマンドを探すフォルダーの一覧です。export NAME=value で作り、その行を ~/.bashrc や ~/.zshrc に書いておけば残ります。command not found は、たいてい PATH にフォルダーが足りないという意味です。

バックグラウンドジョブ

原文の表記 · Background job

ほかのことをしている間も動き続けるコマンド

末尾に & を付けると、コマンドはバックグラウンドで動き、プロンプトがすぐ戻ってきます。jobs はバックグラウンドジョブの一覧、fg は一つを前面に戻し、wait はすべて終わるまでスクリプトを待たせます。こうすれば、時間のかかる作業をいくつも並べて動かせます。

プロセス置換

原文の表記 · Process substitution

コマンドの出力をファイルのように使うこと

<(コマンド) はそのコマンドを実行し、出力を一時的なファイル名として別のプログラムに渡します。パイプではなくファイル名を受け取るコマンドで役に立ちます。たとえば、並べ替えた二つの一覧を diff で比べるときです。

Node.js

ブラウザーの外で JavaScript を動かす実行環境

Node.js を使うと、JavaScript をターミナルやサーバーで動かせます。Webサーバーやビルドツール、多くのコマンドラインツールを支えていて、AI コーディングエージェントのいくつかもその上で動きます。インストールすると node と npm コマンドが使えるようになり、nvm を使えばバージョンのインストールや切り替えが簡単です。

パッケージ

原文の表記 · Package

インストールして使い回せるコードのまとまり

パッケージは、ほかの人が再利用できるように誰かが公開したコードです。npm はパッケージを node_modules にダウンロードします。プロジェクトの package.json には名前・スクリプト・依存関係(必要なパッケージ)が書かれているので、npm install でどのコンピューターにも同じ環境を用意できます。

名前付きパイプ(FIFO)

原文の表記 · Named pipe (FIFO)

ファイル名を持つパイプ

mkfifo で作る名前付きパイプは、ファイルのように見えますが何も保存しません。あるコマンドが書き込んだものを、別のコマンドが先に入ったものから順に読みます。同じパイプラインにないコマンド同士をつなぐもので、このページの Webサーバーの例でも使っています。

サンドボックス端末

原文の表記 · Sandbox terminal

この画面の安全な実習用Linux

この画面のターミナルは、ブラウザの中で動く本物のLinux(Alpine + bash)です。自分のパソコンとは切り離されているので、何を入力しても端末が壊れることはなく、ページを再読み込みするかセッションをリセットすれば、まっさらな最初の状態に戻ります。インターネットにつながっているので、apk add・pip install・npm install -g・git clone で何でもインストールできます。再読み込みすればすべて元に戻ります。

組み込み変数

原文の表記 · Built-in variable

シェルが自動で値を入れておく変数

bash はいくつかの変数を、自分で最新の値にしておきます。$PWD は今いるフォルダー、$HOME はホームフォルダー、$? は直前のコマンドの終了コード、$RANDOM は読むたびに新しい乱数、$1・$2 … はスクリプトや関数に渡された引数です。ほかの変数と同じように読んで使えますが、ふつうは自分で値を入れません。

文字列

原文の表記 · String

値として使う文字の並び

プログラミングでは、テキストを文字列と呼びます。"hello" や "a,b,c" のように、文字が一列に並んだものです。シェルの変数はすべて文字列を入れるので、42 も算術で計算するまでは、ただの文字 4 と 2 です。引用符が文字列の始まりと終わりを示し、${#name} で長さを、${name:0:2} でその一部(部分文字列)を取り出せます。

シグナル

原文の表記 · Signal

動いているプログラムにシステムが送る短い知らせ

シグナルは、動いているプログラムに何かが起きたことを知らせます。Ctrl+C は SIGINT(中断)を、kill コマンドは SIGTERM(終了してください)を送り、スクリプトが終わると bash が EXIT を出します。プログラムはすぐに止まることもあれば、trap でシグナルを受け止めて、先に後片付けをすることもあります。SIGKILL は受け止められず、プログラムはそのまま終わります。

子プロセス

原文の表記 · Child process

別のプログラムが起動したプログラム

動いているプログラムはどれも、自分の番号(プロセス ID)を持つプロセスです。シェルがコマンドを実行すると、新しいプロセス、つまり子プロセスを起動して、終わるまで待ちます。子は export された変数のコピーを受け取りますが、親の変数や今いるフォルダーは変えられません。だから export が必要で、スクリプトの中で cd しても、ターミナルの場所は変わりません。

ヒアストリング

原文の表記 · Here string

短い一行のテキストをコマンドの入力に入れる

<<< は、後ろに書いたテキストをコマンドの入力として渡します。キーボードで打ち込んだり、echo からパイプで流したりしたのと同じです。ヒアドキュメントの一行版で、echo を別に動かさずに済みます。シェルはテキストの最後に改行を一つ付けます。

親フォルダー

原文の表記 · Parent folder

一つ上の階層のフォルダー。.. と書く

親フォルダーは、いまいるフォルダーを中に含んでいるフォルダーです。短い名前は .. なので、cd .. で一つ上に移動し、../notes.txt はいまのフォルダーと並んで置かれているファイルを指します。mkdir -p は、パスの途中で足りない親フォルダーもまとめて作ります。ルートの / には親がないので、そこで cd .. をしても / のままです。

再帰

原文の表記 · Recursive

フォルダーの中のすべてのフォルダーへ、いちばん奥まで入っていくこと

再帰的なコマンドは、フォルダーに対して働き、次にその中のすべてのフォルダー、さらにその中のすべてのフォルダーへと、何も残らなくなるまで進みます。オプションはふつう -r か -R です。ls -R はすべてを一覧にし、grep -r はすべてのファイルを検索し、cp -r はフォルダーをまるごとコピーし、rm -r はまるごと削除します。下にあるすべてに届くので、rm -r の前にはパスを二度確かめてください。

上書き

原文の表記 · Overwrite

ファイルの古い中身を新しい中身に置き換えること

上書きとは、すでにあるファイルの上に書き込むことで、古い中身は二度と戻りません。シェルはこれを確認なしに行います。> ファイル はまずファイルを空にし、cp や mv で同じ名前の上に置くと、そのファイルは置き換わります。cp と mv に -i を付ければ先に確認してくれます。末尾に足すなら >> を使い、set -o noclobber にすれば > でファイルを置き換えられなくなります。ターミナルにはごみ箱がないので、元に戻せません。

展開

原文の表記 · Expansion

コマンドが動く前に、シェルが $・{}・*・~ を書き換えること

シェルは行を実行する前に展開をします。特別な書き方を、その結果に差し替えるのです。$name は変数の値に、$((2 + 3)) は 5 に、$(date) はそのコマンドの出力に、{1..3} は 1 2 3 に、*.txt は当てはまるファイル名に、~ はホームフォルダーになります。コマンドが受け取るのは、書き換えが済んだ文字だけです。シングルクォートの中では何も展開されません。

&& と ||

原文の表記 · && and ||

成功したときだけ、または失敗したときだけ次のコマンドを実行する

A && B は、A が成功したとき、つまり終了コードが 0 のときだけ B を実行します。A || B は、A が失敗したときだけ B を実行します。この二つを使えば、if を書かなくても一行で結果に応じた動きができます。よくある間違いは、A && B || C を if-else と読むことです。B 自体が失敗したときも C が実行されます。

変数のスコープ

原文の表記 · Variable scope

変数が見えて、変えられる範囲

スコープは、スクリプトの中で変数が存在する範囲です。ふつうの変数は、関数の中も含めてスクリプト全体から見えます。関数の中で local と書くと、その変数は関数のものになり、関数が終わると消えます。サブシェル ( ) の中で変えたものは外に戻らず、ほかのプログラムが受け取るのは export した変数だけです。

フィールド(列)

原文の表記 · Field

行を分けたあとの一つのかけら。表の列のようなもの

awk や cut のような道具は、各行をフィールド(列)と呼ぶかけらに分けます。awk は何も指定しなければ空白で分け、かけらを $1、$2 … と呼びます。NF はその個数、$0 は行全体です。CSV ファイルなら、awk -F, や cut -d ',' のように区切り文字をカンマにします。数えるのは 0 からではなく 1 からです。

区切り文字

原文の表記 · Delimiter

一つのかけらがどこで終わるかを示す文字

区切り文字(セパレーター)は、文字列をかけらに分ける文字です。CSV ファイルのカンマ、$PATH のコロン、単語の間の空白などです。道具ではこれを選べます。awk -F, と cut -d ',' はカンマで分け、IFS はシェルがどこで単語を分けるかを決めます。sed s/a/b/ も / を区切り文字に使い、文字そのものに / が入っているときは s|a|b| のように別の文字も使えます。

コメント

原文の表記 · Comment

シェルが読み飛ばす、# の後ろのメモ

コメントは人のためのメモです。言葉が # で始まると、シェルはそこから行の終わりまでを無視します。スクリプトがなぜそうしているのかを説明するのに使います。最初の行の #!/bin/bash はコメントのように見えますが、スクリプトを動かすプログラムを選ぶシバンです。引用符の中や言葉の途中にある # は、ただの文字です。

拡張子

原文の表記 · File extension

ファイル名の最後の点より後ろの部分。.txt など

拡張子は、ファイル名の最後の点より後ろの部分です。.txt、.sh、.py、.csv などがあります。人や多くのプログラムに、それが何の種類のファイルかを伝えます。Linux や macOS のシェルには拡張子は必要ありません。スクリプトが動くのは、名前が .sh で終わるからではなく、実行権限とシバンがあるからです。photo.png を photo.txt に名前を変えても、中身は変わりません。

Tab 補完

原文の表記 · Tab completion

Tab を押して、シェルに名前の残りを補ってもらうこと

Tab 補完とは、コマンド・ファイル・フォルダーの名前を打っている途中で Tab キーを押すことです。当てはまる名前が一つだけならシェルが残りを補い、いくつもあるときは Tab を二回押すと候補の一覧が出ます。打つ量が減り、長いパスの打ち間違いも防げます。

ドライラン

原文の表記 · Dry run

実際には行わず、何が起きるかだけを見せる予行演習

ドライランとは、何も変えずに、何をするかだけを表示するモードでコマンドやスクリプトを実行することです。シェルのループでは、本当のコマンドの前に echo を付ければドライランになります。--dry-run オプションを持つツールも多くあります。ファイルを移動したり消したりするコマンドを確かめる、いちばん安全な方法です。

ロックファイル

原文の表記 · Lock file

インストールしたパッケージの正確なバージョンを記録したファイル

package-lock.json のようなロックファイルは、インストールしたすべてのパッケージ(それらが必要とするパッケージまで含む)の正確なバージョンを記録します。これをコミットすれば、どのコンピューターでも、どの自動ビルドでも同じバージョンがインストールされ、プロジェクトがどこでも同じように動きます。

REPL

打った行をすぐに実行する対話型のプロンプト

REPL(Read–Eval–Print Loop、読む・評価する・表示するの繰り返し)は、コードを一行読んで実行し、結果を表示して、次の行を待ちます。node や python3 とだけ打つと開きます。ファイルを作らずに、小さなアイデアをすばやく試すのにぴったりです。

グローバルインストール

原文の表記 · Global install

npm install -g で、コンピューター全体に道具を入れること

npm install -g は、パッケージをコンピューターの中の共有の場所に置き、そのコマンドを PATH にあるフォルダーに置くので、どのフォルダーからでも実行できます。ふつうの npm install は、パッケージをそのプロジェクトの node_modules にだけ置きます。npm config get prefix で、グローバルインストールの行き先が分かります。-g が権限エラーで失敗したら、sudo ではなく nvm で直します。一度だけ試すなら、npx でグローバルインストールせずに実行できます。

インストールスクリプト

原文の表記 · Install script

curl -fsSL URL | bash で取ってきてすぐ実行する、インストール用のシェルスクリプト

インストールスクリプトは、プログラムをインストールするコマンドを書いたシェルスクリプト(install.sh)です。curl -fsSL URL | bash は、curl がそのURLのスクリプトを取ってきて、パイプ(|)で bash に渡してすぐに実行する1行です。Claude Code・Bun・uv はこの方法でインストールします。届いたものをそのまま実行するので、公式ドキュメントの https のURLだけを使い、先に | head で見るか、-o で保存して中身を読むと安全です。

もっと学ぶ

基本文法(BRE)

原文の表記 · Basic grammar (BRE)

grep と sed が何も付けないときに使う正規表現の文法

BRE(基本正規表現)は、grep と sed にオプションを何も付けないときに読まれる正規表現の文法です。ここでは + ? | ( ) { } がただの文字なので、機能として使うには \+ \| \( \{ のように前にバックスラッシュを付けます。だから grep 'a|b' は a または b ではなく、a|b という文字を探します。

拡張文法(ERE)

原文の表記 · Extended grammar (ERE)

-E で切り替える正規表現の文法

ERE(拡張正規表現)は、grep -E や sed -E で使う正規表現の文法です。+ ? | ( ) { } をバックスラッシュなしでそのまま機能として使えるので、パターンが短く読みやすくなります。迷ったら -E を付けましょう。ただし ERE でも \d は数字ではないので、[0-9] と書きます。

Perl風正規表現(PCRE)

原文の表記 · Perl-style regex (PCRE)

\d \w \s のような短縮記号がある正規表現

PCRE(Perl 互換正規表現)は、Perl 言語から生まれた正規表現の文法です。\d(数字)・\w(単語の文字)・\s(空白)のような短縮記号や、.*? のような最短マッチの繰り返しが加わります。Python・JavaScript・PHP・rg がこれを使い、GNU grep では grep -P で使えるようになります。grep -E と sed は \d を理解しません。

貪欲マッチ

原文の表記 · Greedy matching

繰り返しができるだけ長く取ろうとする性質

* + {n,m} のような繰り返しは貪欲です。パターンが一致する範囲で、いちばん長いテキストを取ります。だから引用符で囲んだ単語が 2 つある行では、".*" は最初の引用符から最後の引用符まで丸ごと取ります。早めに止めたいときは "[^"]*" のように繰り返す文字を絞るか、PCRE が使えるところでは最短マッチの繰り返し .*? を使います。

( )グループ

原文の表記 · Capture group

( ) でまとめて捕まえたテキスト。あとで取り出して使える

かっこ ( ) は複数の文字をひとまとまりにするので、(ab)+ は ab を丸ごと繰り返します。さらに、グループは一致したテキストを覚えておき、あとで取り出せます。sed では \1 \2、bash では ${BASH_REMATCH[1]}、Python では m.group(1) で取り出します。だから日付の部分の順序も 1 行で入れ替えられます。

エスケープ

原文の表記 · Escape

記号の前に \ を付けて、ただの文字として使うこと

正規表現には、.(任意の 1 文字)や *(繰り返し)のように特別な意味を持つ文字がたくさんあります。その文字そのものを探すには、前にバックスラッシュ \ を付けてエスケープします。\. は本物のドット、\* は本物のアスタリスクです。IP アドレスのドットをそのまま書いてしまい、任意の文字に一致させてしまうのはよくある間違いです。

BASH_REMATCH

[[ =~ ]] が一致したテキストを入れる bash の配列

[[ $value =~ パターン ]] が成功すると、bash は一致した全体を ${BASH_REMATCH[0]} に、( ) グループごとに ${BASH_REMATCH[1]}・${BASH_REMATCH[2]} … に入れます。次の =~ のチェックで上書きされるので、必要な値はすぐ自分の変数に移しておきましょう。macOS の標準シェル zsh では、BASH_REMATCH オプションを有効にしない限り $match に入ります。

POSIX文字クラス

原文の表記 · POSIX character class

[[:space:]] のように名前を付けた文字の集まり

POSIX文字クラスは、角かっこの中に名前で書く文字の集まりです。[[:digit:]] は数字、[[:alpha:]] は英字、[[:alnum:]] は英字と数字、[[:space:]] は空白です。\d や \s と違い、macOS を含めどこの grep と sed でも動きます。角かっこが二重なのは、外側が一覧で、内側の [: :] が名前だからです。

GNU版とBSD版

原文の表記 · GNU and BSD versions

少しずつ違う、同じコマンドの 2 つの系統

grep や sed のようなコマンドには 2 つの系統があります。Linux には GNU版が入っていて、grep -P のような追加機能があり、sed も \s を理解します。macOS には BSD版が入っていて、grep -P がなく、sed -i の後に '' が必要です。-E と [[:space:]] のような POSIX クラスを使うスクリプトは、どちらでも同じように動きます。

コマンドプロンプト(cmd)

原文の表記 · Command Prompt (cmd)

Windows の昔ながらのコマンドウィンドウ

コマンドプロンプト(cmd.exe)は、Windows の昔ながらのコマンドウィンドウです。コマンドが bash と違い、ls の代わりに dir、cat の代わりに type、grep の代わりに findstr を使います。正規表現の機能が少ないので、Windows で正規表現を使うなら PowerShell か WSL のほうが向いています。

PowerShell

Windows に入っている現代的なコマンドシェル

PowerShell は、Windows に付いてくるコマンドシェル兼スクリプト言語です。コマンド名は Select-String や Get-ChildItem のように「動詞-名詞」の形です。.NET の正規表現を使うので、\d \w \s や ( ) グループがそのまま使えます。macOS や Linux でも動きます。

WSL(Linux用Windowsサブシステム)

原文の表記 · WSL (Windows Subsystem for Linux)

Windows の中で本物の Linux を動かす方法

WSL を使うと、もう 1 台のパソコンがなくても、Windows で Ubuntu のような本物の Linux を動かせます。その中では bash と GNU の grep・sed・awk が Linux とまったく同じように使えるので、このコースの内容がそのまま通用します。PowerShell で wsl --install を実行して、一度インストールします。

パーティション

原文の表記 · partition

ディスクの中の独立した区画

パーティションとは、システムが独立したドライブのように扱う、ディスクの中の区画です。ディスクの最初にあるパーティションテーブルが、それぞれがどこから始まりどこで終わるかを記録します。Linux ではパーティションの名前はディスクの名前に番号を付けたもの(sda1、sda2)で、ファイルを入れる前にフォーマットが必要です。

ファイルシステム

原文の表記 · file system

ディスクがファイルとフォルダーを管理するしくみ

ファイルシステムとは、パーティションに書き込まれる、ファイルとフォルダーを管理するしくみです。名前、データの置き場所、持ち主を覚えています。Linux でふつうに使うのは ext4 で、USBメモリーには FAT や exFAT、Windows は NTFS、macOS は APFS を使います。フォーマットすると空のファイルシステムができます。

仮想環境(venv)

原文の表記 · virtual environment

ひとつのプロジェクト専用の Python パッケージ一式

仮想環境(venv)とは、自分専用の Python と pip を持つフォルダーです。インストールしたパッケージはシステムではなくその中に入ります。python3 -m venv で作り、source …/bin/activate でオンにするとプロンプトに (venv) が出て、deactivate でオフにします。

Ctrl+C

いま動いているコマンドを止めるキー

Ctrl を押しながら C を押すと、動いているプログラムに割り込みのシグナル(SIGINT)が送られ、たいていのプログラムは止まってプロンプトが戻ってきます。コマンドが止まったように見えるときや、サーバーや見ているログを止めたいときに使います。プログラムがすでにしたことは元に戻らず、ターミナルでは文字のコピーにもなりません。

もっと学ぶ

Ctrl+D

「入力はもうない」(ファイルの終わり)を伝えるキー

Ctrl+D は、キーボードを読んでいるプログラムに入力が終わったことを伝えます。ファイルの終わり(EOF)に来たときと同じ合図です。空の行で押すと node や python3 のような REPL が閉じ、シェルではそのシェルからログアウトします。Ctrl+C と違って何かを中断するのではなく、入力を終わらせるだけです。

Ctrl+Z

シェルで動いているコマンドを一時停止するキー

ターミナルで Ctrl+Z を押すと、手前のプログラムが一時停止してプロンプトが戻ってきます。プログラムは終わったわけではありません。fg で手前に戻し、bg でバックグラウンドで動き続けさせます。ふつうのアプリでは同じキーが「元に戻す」ですが、シェルでは一時停止です。

Ctrl-L

ターミナルの画面をきれいにするキー

Ctrl-L はターミナルの画面を消して、プロンプトをいちばん上に置きます。clear コマンドと同じです。何も消えてはいません。ファイル・変数・コマンドの履歴はそのままで、たいていは上にスクロールすれば前の出力も見られます。

↑ ↓ キー

原文の表記 · ↑ ↓ keys

前に打ったコマンドを呼び戻すキー

シェルは実行したコマンドを覚えています。↑ を押すと直前のコマンドが入力行に戻り、さらに押すともっと前のコマンド、↓ で新しい方へ戻ります。呼び戻したコマンドは直してから Enter で実行できます。

破壊的コマンド

原文の表記 · Destructive command

取り返しのつかない形で消したり上書きしたりするコマンド

破壊的コマンドとは、何かを消したり上書きしたりして、かんたんには元に戻せないコマンドです。rm -rf、git reset --hard、git push --force、mkfs などです。AI がすすめたものでも、実行する前に一つずつ読み、まず ls や git status のような害のないコマンドで対象を確かめましょう。Git は reflog で失ったコミットを取り戻せることもありますが、rm で消したファイルはゴミ箱に行きません。

シェルのセッション

原文の表記 · Session

シェルを開いてから閉じるまでの、ひと続きの利用

シェルのセッションは、ターミナル(またはログイン)がシェルを起動したときから、閉じるか exit と打つまで続きます。設定した変数や cd で移ったフォルダーはそのセッションの中でだけ生きているので、新しいターミナルはまっさらから始まります。毎回のセッションで使いたい行は ~/.bashrc か ~/.zshrc に書きます。このページの「セッションをリセット」は、練習用の Linux を捨てて新しいものを始めます。

--version

インストールされた道具のバージョンを表示するオプション

コマンドラインの道具のほとんどは、--version を付けるとバージョン番号を表示します。何かをインストールしたあとのいちばん速い確認方法です。番号が出ればシェルがプログラムを見つけたということで、command not found ならないか PATH に入っていません。短い -v や -V を受け付ける道具もありますが、ほかの道具では -v が詳しい表示(verbose)の意味なので、--version と書くのが安全です。

command not found

その名前のコマンドが見つからないときのシェルのエラー

シェルは、PATH に並んだフォルダーの中でだけコマンドの名前を探します。どこにもなければ command not found と表示します(終了コード 127)。よくある原因は、打ち間違い、インストールしていない、またはこのターミナルがまだ知らないフォルダーにさっきインストールした、のどれかです。新しいターミナルを開き、which と echo $PATH で確かめましょう。今のフォルダーにあるスクリプトは前に ./ が必要です。今のフォルダーはふつう PATH に入っていないからです。

ディレクトリ

原文の表記 · Directory

フォルダーの別の呼び方

ディレクトリは、Linux やコマンドラインでのフォルダーの呼び方で、ファイルやほかのフォルダーを入れておく場所です。二つの言葉は同じ意味なので、コマンドの名前にもなっています。pwd は「print working directory」、mkdir は「make directory」です。ディレクトリは入れ子になって、/ から始まる一本の木を作ります。

BEGIN と END

原文の表記 · BEGIN and END

すべての行の前と後に一度だけ動く awk のブロック

awk では、BEGIN { … } のブロックは最初の行を読む前に一度だけ、END { … } のブロックは最後の行のあとに一度だけ動きます。BEGIN は区切り文字や見出しのような準備に、END は合計や平均のような結果に使います。BEGIN だけのプログラムは入力をまったく読まないので、awk を電卓としても使えます。

もっと学ぶ

NF と NR

原文の表記 · NF and NR

この行のフィールドの数と、行の番号を表す awk の変数

awk は読んだ行ごとに二つの変数を埋めます。NF は今の行のフィールドの数なので、$NF は最後のフィールドです。NR は 1 から数えた今の行の番号なので、NR > 1 で見出しの行を飛ばせ、END ブロックの中の NR は全体の行数です。

もっと学ぶ

ディスクのフォーマット

原文の表記 · Formatting a disk

パーティションに、新しい空のファイルシステムを書き込むこと

フォーマットは、パーティションに新しいファイルシステムを書き込みます。ファイルシステムとは、それぞれのファイルの名前、中身の場所、持ち主を覚えておく一覧です。これがないと、パーティションはファイルを入れられません。Linux では mkfs(mkfs.ext4、mkfs.vfat)でフォーマットします。そのパーティションにあったものはあとで消えてしまうので、まず lsblk で名前を確かめましょう。

もっと学ぶ

/dev

Linux がデバイスをファイルとして見せるフォルダー

Linux は、すべてのデバイスを /dev の下のファイルとして見せます。1 台目のディスクは /dev/sda、その最初のパーティションは /dev/sda1 です。だからディスクのコマンドは /dev/sda のようなパスを受け取ります。ハードウェアではないものもあり、/dev/null は書き込まれたものを何でも飲み込みます。/dev の下のディスクのファイルにじかに書き込むと、中身が壊れることがあります。

もっと学ぶ

デバイス

原文の表記 · Device

ディスクのように、Linux がファイルとして扱う機器

デバイスとは、ディスク・USB メモリ・端末のように、コンピューターがやり取りするハードウェアです。Linux はそれぞれに /dev の下のファイルを与えるので、ふつうの道具で扱えます。ディスクはブロックデバイスで、決まった大きさのブロック単位で読み書きします。lsblk(list block devices)が一覧にするのはこれです。マウントするときは、デバイスを先に、フォルダーをあとに書きます。

もっと学ぶ

sda

Linux での 1 台目のディスクの名前。sda1 はその最初のパーティション

Linux はディスクを見つけた順に sda、sdb、sdc … と名付け、パーティションには sda1、sda2 と番号を付けます。練習用ターミナルの sda は空の 128 MB のディスクです。本物のコンピューターでは sda がシステムの動いているディスクかもしれず、NVMe のディスクは nvme0n1 のような別の名前です。何かを変える前に、必ず lsblk で確かめましょう。

もっと学ぶ

ドライブ文字(C:・D:)

原文の表記 · Drive letter (C:, D:)

Windows がディスクやパーティションごとに付ける文字

Windows は、ディスクやパーティションごとに文字とコロンで名前を付けます。システムのディスクは C:、ほかは D: から順にです。文字ごとに、それぞれのフォルダーの木があります。Linux と macOS にはドライブ文字がありません。/ から始まる木が一本だけで、ディスクはマウントによってその中のフォルダーにつなぎます。

もっと学ぶ

ext4

ふつうの Linux のファイルシステム

ext4(fourth extended file system)は、ほとんどの Linux がはじめから使うファイルシステムです。Linux の持ち主と権限を保ち、ジャーナルを書くので、急に電源が切れてもディスクがすぐに直ります。Windows と macOS は追加のソフトがないと読めないので、共有する USB メモリには FAT を使いましょう。

もっと学ぶ

FAT

Windows・macOS・Linux のどれでも読める、古くて簡単なファイルシステム

FAT(File Allocation Table)は古くて簡単なファイルシステムで、ほとんどのコンピューター・カメラ・スマホが読めるので、USB メモリによく使われます。Linux では vfat と呼ぶので、mkfs.vfat で作ります。Linux の持ち主や権限はなく、FAT32 は 4 GB より大きいファイルを一つも入れられません。

もっと学ぶ

/etc/fstab

起動のたびにマウントするディスクを並べたファイル

マウントは、コンピューターを再起動するまでしか続きません。ずっと続けるには /etc/fstab に一行足します。何を、どこに、ファイルシステムの種類、オプションを書きます。sda1 のような名前は変わることがあるので、blkid で調べた UUID を使いましょう。再起動する前に sudo mount -a でその行を試します。fstab がまちがっていると、サーバーが起動しなくなることがあります。

もっと学ぶ

ループデバイス

原文の表記 · Loop device

ふつうのファイルをディスクのように扱わせるデバイス

ループデバイスを使うと、Linux はふつうのファイルをディスクのように扱えます。好きな大きさのファイルを作り、フォーマットして、-o loop でマウントすると、Linux はそれを /dev/loop0 のようなデバイスにつなぎます。予備のディスクなしでディスクのコマンドを練習できる安全な方法で、仮想マシンやインストーラーのディスクイメージもこのしくみで開きます。

もっと学ぶ

/mnt

ディスクを手でつなぐときにふつう使うフォルダー

/mnt は、しばらくの間ディスクを手でマウントするために Linux が用意しているフォルダーです。その中に /mnt/data のような空のフォルダーを作り、そこにパーティションをマウントします。それからは、/mnt/data の中のファイルはそのディスクに置かれます。USB メモリのようにシステムが自分でマウントするディスクは、代わりに /media の下に出てくることが多いです。

もっと学ぶ

マウント

原文の表記 · Mounting

ディスクをフォルダーにつなぐこと。そのフォルダーがマウントポイント

Linux はディスクに C: や D: のような文字を付けません。代わりに、ディスクのファイルシステムを一本の木の中のフォルダーにつなぎます。これがマウントで、そのフォルダーをマウントポイントと呼びます。/dev/sda1 を /mnt/data にマウントしたあとは、/mnt/data に保存したファイルはそのパーティションに入ります。マウントは umount するか再起動するまで続き、/etc/fstab に書くとずっと続きます。

もっと学ぶ

gpt と msdos

原文の表記 · gpt and msdos

パーティションテーブルの二つの種類 — GPT と、古い MBR

ディスクにパーティションを作るには、まずパーティションテーブルが必要で、parted mklabel で二つの種類のどちらかを作ります。gpt(GUID Partition Table)は新しいほうで、大きなディスクとたくさんのパーティションに対応します。msdos は古い MBR のテーブルで、基本パーティションは四つまで、ディスクは約 2 TB までです。新しいテーブルを作ると、ディスクのパーティションはすべて忘れられます。ここでの gpt は ChatGPT の GPT とは関係ありません。

もっと学ぶ

セクター

原文の表記 · Sector

ディスクが読み書きするいちばん小さな単位

ディスクはセクターに分かれています。一度に読み書きするいちばん小さなかけらで、昔からの 512 バイト、新しいディスクの多くは 4096 バイトです。パーティションテーブルは、それぞれのパーティションの始まりと終わりをセクターの番号で記録するので、fdisk -l はセクターで数えます。パーティションを 1MiB から始めると、ディスクのセクターと位置がそろいます。

もっと学ぶ

target is busy

フォルダーがまだ使われているときの umount の答え

マウントしたフォルダーを何かがまだ使っていると、umount は target is busy と言って断ります。いちばん多いのは自分のシェルで、自分がその中に立っているからです。まず cd ~ で出て、それを使っているファイルやプログラムを閉じてから、もう一度試します。ファイルを書いている最中にディスクを外すとデータを失うことがあるので、umount は確かめるのです。

もっと学ぶ

EACCES

ファイルを書くときの「権限がありません」を表すエラーコード

EACCES(error: access)は、「ここでそれをする許可がありません」というシステムのコードです。いちばんよく出会うのは npm install -g で、npm が root のシステムフォルダーに書き込もうとしたときです。sudo で直してはいけません。nvm で Node をインストールするか、npm のグローバルフォルダー(prefix)を自分のホームフォルダーに移しましょう。

もっと学ぶ

externally-managed-environment

システム自身の Python へのインストールを pip が断ること

最近の Ubuntu や Debian のような新しい Linux は、自分の Python をシステムのパッケージマネージャーが管理するものとして印を付けています。すると、仮想環境の外での pip install は externally-managed-environment で止まり、システムが頼っているプログラムを壊せなくなります。直し方は venv です。作って、有効にして、そこにインストールします。--break-system-packages で無理に入れられますが、システムを壊すことがあります。

もっと学ぶ

No such file or directory

パスの先に何もないときのエラー

No such file or directory は、渡したパスが今いる場所から見て存在しないという意味です。よくある原因は、打ち間違い、大文字と小文字の違い(Linux は Notes.txt と notes.txt を別のものとして扱います)、まちがったフォルダーから始めた相対パス、まだ作っていないフォルダーです。pwd と ls で確かめるか、mkdir -p でフォルダーを作りましょう。

Git Bash

Git といっしょに入る Windows 用の bash ターミナル

Git Bash は Git for Windows といっしょにインストールされます。bash のシェルを開き、その中で ls・grep・sed・ssh のような Linux 風のコマンドを Windows のファイルに使えます。WSL より軽いですが、完全な Linux ではありません。Linux のプログラムやパッケージはインストールできません。

バックスラッシュ

原文の表記 · Backslash

\ の文字。次の文字の特別な意味を消します

シェルでは、文字の前にバックスラッシュを置くとただの文字になります。\$ は変数ではなくドル記号、\ は名前の中の空白を保ちます。行のいちばん最後に置くと、次の行をこの行につなげます。正規表現でも同じ働きをし(\. は本物のピリオド)、ダブルクォートの中では $、バッククォート、"、\ だけを守ります。日本語のキーボードでは円記号(¥)で表示されることがあります。

バッククォート

原文の表記 · Backtick

逆向きの引用符。コマンド置換の古い書き方

バッククォートの文字(多くのキーボードでは 1 の左のキー、日本語キーボードでは Shift と @)は、コマンドの出力を行の中に入れる古い書き方です。二つのバッククォートの間のコマンドは $(コマンド) と同じように働きます。$( ) を使いましょう。余分なバックスラッシュなしで入れ子にでき、バッククォートはシングルクォートと見まちがえやすいからです。Markdown では、バッククォートは別の役目で、コードの印になります。

組み込みコマンド

原文の表記 · Shell builtin

cd のように、シェル自身の中にあるコマンド

ほとんどのコマンドは PATH のフォルダーにある別のプログラムですが、いくつかはシェルそのものの一部です。cd、echo、read、export、set などです。そうでなければなりません。別のプログラムでは、シェル自身のフォルダーや変数を変えられないからです。type でその名前がどちらかがわかり、組み込みコマンドの説明は man ではなく help で読みます。

もっと学ぶ

C 言語風の for

原文の表記 · C-style for

始まり・条件・増やし方で数える bash のループ

bash には、C 言語から借りた二つ目の for の形があります。for ((i=1; i<=n; i++)) です。三つの部分で、始まりの値、続ける条件、一周ごとの進み方を決めます。範囲の終わりが変数に入っているときに便利です。{1..$n} は使えないからです。bash の機能なので、素の sh では使えません。

もっと学ぶ

デフォルト値

原文の表記 · Default value

${var:-x} のように、変数が空のときに使う値

パラメーター展開は、変数が空か設定されていないときに値を補えます。${var:-x} はその一回だけ x を使い、${var:=x} は x を変数に保存もし、${var:?メッセージ} はそのメッセージでスクリプトを止めます。コロンが大事です。コロンなし(${var-x})だと、変数が空のときではなく、存在しないときにだけデフォルト値が使われます。

もっと学ぶ

防御的なスクリプト

原文の表記 · Defensive script

被害を出さずに安全に止まるように書いたスクリプト

防御的なスクリプトは、ミスが起きると考えて、広がる前に止まります。習慣は次のとおりです。いちばん上に set -euo pipefail、変数はすべてダブルクォートで囲む、必要な値は ${VAR:?} で確かめる、道具は command -v で確かめる、一時ファイルは trap で片づける、- で始まるかもしれない名前の前には -- を置く。shellcheck が足りないところをたくさん見つけてくれます。

もっと学ぶ

オプションの終わり(--)

原文の表記 · End of options (--)

-- のあとはすべて、オプションではなく名前です

ダッシュ二つだけを書くと、コマンドにオプションはここで終わりだと伝えます。そのあとに来るものは、- で始まっていてもファイル名などの引数です。これがないと、-r という名前のファイルがオプションとして読まれることがあります。変数から来る名前の前には -- を置きましょう。npm run も同じ考えで、残りをスクリプトに渡します。

もっと学ぶ

EOF

End Of File(ファイルの終わり)。ヒアドキュメントのふつうの終わりの印でもあります

EOF は end of file の略で、もう読むものがない地点のことです。ヒアドキュメント(<< EOF … EOF)の EOF は、自分で選んだ終わりの印にすぎません。閉じる行がちょうどその言葉だけなら、どんな言葉でもかまいません。<< 'EOF' のようにクォートで囲むと、中の $ やバッククォートはただの文字のまま残ります。キーボードで Ctrl+D を押すと、同じファイルの終わりの合図が送られます。

もっと学ぶ

ファイル検査

原文の表記 · File tests

-f や -d のように、あるか・何なのかを調べるもの

[[ ]] の中では、ダッシュと一文字でパスや値について質問できます。-e はあるか、-f はふつうのファイルか、-d はフォルダーか、-s は空でないか、-r -w -x は読めるか・書けるか・実行できるかです。-z は文字列が空か、-n は空でないかを聞きます。迷ったら変数をクォートで囲み、「ではない」には ! を使います。

もっと学ぶ

書式文字列

原文の表記 · Format string

%s や %d のような差し込み口を持つ printf のひな形

printf の最初の引数は書式です。ふつうの文字の中に差し込み口があり、あとの値がそこを埋めます。%s は文字、%d は整数、%.2f は小数点以下二けたの数を受け取ります。%-10s は左寄せで 10 けたに、%05d はゼロで埋めます。printf は自分では行を終えないので、書式の最後に \n を付けます。差し込み口より多くの値を渡すと、書式がくり返し使われます。

もっと学ぶ

グローバル変数

原文の表記 · Global variable

関数の中も含め、スクリプトのどこからでも見える変数

bash では、とくに言わない限りすべての変数がグローバルです。関数の中で設定した変数は関数が終わってもそのまま残り、スクリプトのほかの場所にある同じ名前の変数を知らないうちに上書きすることがあります。関数だけの変数は local で宣言して、中に閉じこめましょう。npm のグローバルインストールとは別の考え方です。

もっと学ぶ

--help

コマンドの短い使い方を表示するオプション

ほとんどのコマンドは、--help を付けると短い使い方を表示します。いちばん上の usage の行がコマンドのパターンを示し、そのあとにオプションが続きます。すべての説明書を開く man より手早く読めます。usage の行の角かっこ [ ] は省略してよいもの、... は二つ以上渡してよいという意味です。-h を使う道具もあり、シェルの組み込みコマンドは代わりに help に答えます。

もっと学ぶ

-print0 と -0

原文の表記 · -print0 and -0

名前をヌル文字で区切ること。空白があっても安全です

ふつう find は一行に一つ名前を出し、xargs は入力を空白で分けるので、my notes.txt というファイルは二つの名前として届きます。find -print0 は代わりにそれぞれの名前をヌル文字で終えます。ファイル名に絶対に入らない、ただ一つの文字です。そして xargs -0 はそこだけで分けます。grep -Z と sort -z も同じです。

もっと学ぶ

数値の比較(-eq・-gt)

原文の表記 · Numeric comparison (-eq, -gt)

テストの中で数を比べること — 等しい・大きい・小さい

[[ ]] と [ ] の中では、数は文字で比べます。-eq は等しい、-ne は等しくない、-gt は大きい、-ge は以上、-lt は小さい、-le は以下です。< と > の記号は数ではなく文字をあいうえお順(辞書順)で比べるので、"9" > "10" が正しいことになります。(( )) の中なら、数にふつうの記号を使えます。

もっと学ぶ

2>&1

エラーの出力を、ふつうの出力と同じ場所に送ること

どのコマンドにも二つの出力があります。ふつうの出力(1)とエラー(2)です。2>&1 は、エラーを、その時点で出力 1 が向いている場所に送るので、> log.txt 2>&1 で両方が一つのファイルに入ります。順番が大事です。2>&1 > log.txt だと、出力 1 がまだ画面を向いていたので、エラーは画面に出ます。bash では &> log.txt が短い書き方で、>&2 はメッセージをエラーの出力に送ります。

もっと学ぶ

セミコロン(;)

原文の表記 · Semicolon (;)

何が起きても、これのあとに次のコマンドを実行します

セミコロンは一つのコマンドを終わらせ、同じ行に別のコマンドを続けられるようにします。a; b は a を実行し、成功しても失敗しても b を実行します。a がうまくいったときだけ b を実行したいなら、代わりに && を使います。if …; then … fi のように、一行で書くときに必要な構文もあります。

set -euo pipefail

最初のエラーでスクリプトを止める安全のためのオプション

スクリプトのいちばん上に set -euo pipefail を書くと、ミスのあとも進み続けるのではなく止まります。-e はコマンドが失敗すると止め、-u は設定していない変数を使うと止め、-o pipefail は最後の部分だけでなく、パイプラインのどこかが失敗するとパイプライン全体を失敗にします。失敗するとわかっているコマンドには || true が必要です。そうしないとスクリプトはそこで止まります。

もっと学ぶ

サブコマンド

原文の表記 · Subcommand

大きな道具の仕事を一つ選ぶ、二つ目の言葉

大きな道具は一つの名前の下にたくさんの仕事をまとめていて、二つ目の言葉で仕事を選びます。npm install、git commit、docker compose up の install、commit、compose up がサブコマンドです。オプションはふつう、それが属するサブコマンドのあとに書き、git commit --help のように、サブコマンドごとにヘルプがあります。

特殊文字

原文の表記 · Special character

* や $ のように、それ自身の意味を持つ文字

シェルにとって、ただの文字ではない文字があります。* ? [ ] はファイル名のパターン、$ は変数の始まり、| > < & ; はコマンドをつないだり出力先を変えたりし、クォート・バックスラッシュ・#・空白は行の読まれ方を変えます。正規表現には別の組(. * + ? ^ $)があります。ただの文字として使うには、シングルクォートで囲むか、前にバックスラッシュを置きます。

/usr と /usr/local/bin

原文の表記 · /usr and /usr/local/bin

インストールされたプログラムが置かれるシステムのフォルダー

システムといっしょに来るプログラムは /usr の下にあり、コマンドそのものはたいてい /usr/bin にあります。すべての利用者のために自分でインストールしたプログラムは、ふつう /usr/local/bin に入ります。これらのフォルダーは PATH に入っているので、シェルはここでコマンドを見つけます。root のものなので、書き込むには sudo が必要です。

/etc

Linux のシステム設定ファイルが入るフォルダー

/etc には、システム全体とインストールされたサービスの設定が、ふつうの文字のファイルとして入っています。/etc/hosts、/etc/fstab、/etc/caddy/Caddyfile などです。ここを変えるとすべての利用者に影響するので、ファイルは root のもので、sudo で編集します。壊れたファイルはサービスを起動できなくすることがあるので、変える前にコピーを取っておきましょう。

/tmp

一時ファイルのためのシステムのフォルダー

/tmp は、すべての利用者とプログラムが短い間だけのファイルに使ってよいフォルダーです。多くのシステムでは、コンピューターを再起動すると空になるので、作業をここに置いておいてはいけません。mktemp は、ほかのプログラムが選ばない名前で /tmp にファイルを作ります。

~/.bashrc と ~/.zshrc

原文の表記 · ~/.bashrc and ~/.zshrc

シェルが起動するたびに読む設定ファイル

新しいターミナルが開くと、bash は ~/.bashrc を、zsh(macOS の標準)は ~/.zshrc を読みます。ここに書いた行(export PATH=…、エイリアス、nvm の設定)は、新しいセッションすべてに効きます。ファイルを変えても、すでに開いているターミナルには効きません。source ~/.zshrc を実行するか、新しいターミナルを開きましょう。名前がドットで始まるので、ls -a で見えます。

一時ファイル

原文の表記 · Temporary file

仕事の間だけ使って、あとで消すファイル

一時ファイルは、スクリプトが動いている間だけ、作りかけのリストや確かめる前のダウンロードなどを入れておきます。mktemp で作れば、同じスクリプトが二つ動いても同じ名前に書き込みません。trap … EXIT で消せば、スクリプトがどう終わっても片づけられます。プロセス置換 <( ) を使うと、一時ファイルがいらないこともよくあります。

.tar.gz

tar でたくさんのファイルを束ね、gzip で圧縮したもの

.tar.gz のファイルは二段階で作ります。tar がたくさんのファイルとフォルダーを一つにまとめ、gzip がその一つのファイルを小さくします。Linux でソースコードやプログラムを配るふつうの形で、.tgz も同じものです。tar コマンドは両方の段階をこなします。-c は作る、-x は取り出す、-z は gzip を使う、-f はファイルの名前を指定します。

サブフォルダー

原文の表記 · Subfolder

別のフォルダーの中にあるフォルダー

サブフォルダーとは、別のフォルダーの中にあるフォルダーです。その中にもサブフォルダーを持てるので、木の形になります。多くのコマンドは、もっと深く見るように頼まない限り、指定したフォルダーだけを見ます。grep・cp・rm は -r が必要ですが、find は -maxdepth で制限しない限り自分で下りていきます。一つ上のフォルダーは親フォルダーで、.. と書きます。

root(管理者)

原文の表記 · root (administrator)

何でも変えられる管理者のアカウント

root は Linux と macOS の管理者アカウントで、スーパーユーザーとも呼ばれます。何でも変えられます。プログラムをインストールし、/etc や /usr に書き込み、ディスクをフォーマットします。ふつうの利用者はそうした仕事で Permission denied が出たり、スーパーユーザーである必要があると言われたりするので、sudo で一つのコマンドだけを root として実行します。root はシステムを壊すこともできるので、必要なコマンドにだけ使いましょう。

ルートフォルダー(/)

原文の表記 · Root folder (/)

フォルダーの木のいちばん上。/ と書きます

Linux と macOS では、すべてのファイルが一本の木にぶら下がっていて、そのいちばん上がルートフォルダーです。/ 一文字で書きます。/home/me/notes.txt のような絶対パスは、ルートからそのファイルまで下りていく道すじです。root という利用者とは別のものですが、root 自身のホームフォルダーは /root です。

もっと学ぶ

所有者

原文の表記 · Owner

ファイルが属する利用者 — 権限でいちばん先に見られる人

どのファイルとフォルダーも、一人の利用者(所有者)と一つのグループに属しています。ls -l は権限の文字のあとに所有者を表示し、最初の rwx の組が所有者に当てはまります。自分で作ったファイルは自分のものです。フォーマットしたばかりのディスクやシステムのフォルダーは root のものなので、sudo で書き込むか、chown で渡します。

rwx

読み・書き・実行の権限を表す文字

ls -l はそれぞれの行を -rwxr-xr-x のような 10 文字で始めます。最初の文字は何なのか(- はファイル、d はフォルダー)を表し、そのあとに r(読み)、w(書き)、x(実行)の組が三つ続きます。所有者、グループ、それ以外のすべての人の分です。ダッシュはその権限がないという意味です。スクリプトを ./script.sh で実行するには x が必要です。

パターン

原文の表記 · Pattern

文字やコマンドが従う形

パターンは、決まった一つの文字ではなく形を表します。シェルではふつう、何を探すかのことです。*.txt は .txt で終わるすべての名前に、[0-9]{3} のような正規表現はどんな三けたの数字にも一致します。コマンドにもパターンがあります。コマンド・オプション・対象の決まった順番で、--help の最初の行に出ます。

もっと学ぶ

マッチング

原文の表記 · Matching

文字がパターンに合うかを調べること

マッチングとは、文字をパターンと比べて、合う部分を見つけることです。ファイル名のマッチング(グロビング)は名前を * や ? と比べ、正規表現のマッチングは grep、sed、[[ =~ ]]、Python の re で文字を調べます。何も一致しないと grep は何も表示せず終了コード 1 を返し、一致しなかったグロブは nullglob をオンにしない限り書いたまま残ります。

もっと学ぶ

置換(s/検索/置換/)

原文の表記 · Substitution (s/find/replace/)

文字を見つけて、別の文字に置き換えること

置換とは、文字を見つけてその場所に別の文字を入れることです。sed では s/検索/置換/ と書き、それぞれの行で最初に一致したものを変え、最後に g を付けると一致したものすべてを変えます。s|/old/path|/new/path| のように、スラッシュの代わりにどんな文字でも使えます。sed は結果を表示するだけで、-i を付けるとファイルそのものを変えます。

もっと学ぶ

sed -i

ファイルそのものを変える sed のオプション

-i がないと、sed は変えた文字を表示するだけです。-i を付けるとファイルを書き換え、元に戻せません。-i.bak は、先に元のファイルを file.bak として残します。このサフィックス付きの形は、Linux(GNU sed)でも macOS(BSD sed)でも同じように動きます。macOS ではサフィックスのない -i だけだと失敗します。まず -i なしで一度実行して、結果を確かめましょう。

もっと学ぶ

行頭・行末の記号(^ $)

原文の表記 · Anchors (^ $)

行の始まりと終わりを表す正規表現の記号

^ は行の始まり、$ は行の終わりに一致し、文字を一つも使いません。^error は error で始まる行、done$ は done で終わる行、^$ は空の行を見つけます。角かっこの中では ^ は別の意味になり、[^abc] は a、b、c 以外のどれか一文字です。

もっと学ぶ

後方参照(\1)

原文の表記 · Backreference (\1)

( ) のグループがとらえた文字を呼び戻すこと

最初のかっこの組がとらえた文字は \1、二つ目は \2 として呼び戻せます。パターンの中では、たとえば二回続けて打った単語のように、同じ文字をもう一度見つけます。sed の置き換えの中では、とらえた文字を結果に入れるので、部分を入れ替えたり並べ直したりできます。

もっと学ぶ

角かっこ式([abc])

原文の表記 · Bracket expression ([abc])

組の中の一文字に一致する角かっこ

角かっこは、中の組から一文字だけに一致します。[abc] は a か b か c、[a-z] と [0-9] は範囲、[^abc] はそれ以外のどれか一文字です。角かっこそのものは一文字分にしかならないので、三けたの数字には [0-9]{3} が必要です。ファイル名のグロビングでも、同じ角かっこが同じ意味で使われます。

もっと学ぶ

正規表現のフラグ(/gm)

原文の表記 · Regex flags (/gm)

正規表現のあとに付けて探し方を変える文字

このページの正規表現テスターが使う JavaScript では、閉じるスラッシュのあとの文字が探し方を変えます。g は最初の一つだけでなくすべての一致を見つけ、m は ^ と $ を一行ごとに働かせ、i は大文字と小文字を区別しません。シェルの道具は代わりにオプションを使います。大文字小文字には grep -i、すべての一致には sed の s/…/…/g の最後の g です。

もっと学ぶ

最短マッチ

原文の表記 · Lazy matching

できるだけ少ない文字を取る繰り返し(*? +?)

* や + のような繰り返しは貪欲で、できるだけ多く取ります。うしろに ? を付ける(*?、+?)と最短になり、パターンが一致できる最初の地点で止まります。最短の繰り返しは Perl 風の正規表現(grep -P、perl、Python)にだけあり、grep -E や sed にはありません。そこでは "[^"]*" のように、繰り返してよいものを狭めます。

もっと学ぶ

先読み(?=…)と \K

原文の表記 · Lookahead (?=…) and \K

まわりにあるものを、一致に含めずに確かめること

先読み (?=…) は、次にある文字が来るかを確かめますが、それを一致には含めません。[0-9]+(?=ms) は 250ms の ms ではなく数を見つけます。後読み (?<=…) は前に来るものを確かめます。\K は「ここまでの一致を忘れる」という意味なので、残りだけが表示されます。三つとも Perl 風なので、grep -E ではなく grep -P か Python を使います。

もっと学ぶ

=~

値が正規表現に一致するかを調べる bash のテスト

[[ ]] の中では、値 =~ パターン は、値が正規表現(拡張文法)に一致すると真になります。( ) でとらえた文字は配列 BASH_REMATCH に入ります。パターンをクォートで囲んではいけません。囲むと、ただの文字として比べられます。長いパターンは re='^[0-9]+$' のように変数に入れ、[[ $v =~ $re ]] と書きます。

もっと学ぶ

名前付きグループ

原文の表記 · Named group

番号ではなく名前で取り出す ( ) のグループ

名前付きグループは、かっこの組に名前を付けるので、グループを数えなくてもその名前で文字を取り出せます。Python では (?P<name>…) と書いて m.group("name") で読み、Perl 風の正規表現は (?<name>…) も受け付けます。グループを足したり動かしたりしても、名前があれば長いパターンが読みやすいままです。

もっと学ぶ

繰り返しの記号({n,m})

原文の表記 · Quantifier ({n,m})

前のものが何回くり返すかを表す正規表現の記号

繰り返しの記号は、すぐ前のものが何回くり返すかを表します。* は 0 回以上、+ は 1 回以上、? は 0 回か 1 回、{n} はちょうど n 回、{n,m} は n 回から m 回、{n,} は n 回以上です。かかるのは一文字か一つの ( ) グループだけなので、ab{2} は abb、(ab){2} は abab です。-E なしの grep と sed では \{n,m\} と書きます。

もっと学ぶ

省略記法(\d \w \s)

原文の表記 · Shorthand classes (\d \w \s)

数字・単語の文字・空白を表す、短い正規表現の記号

\d は数字一つ、\w は単語の文字一つ(英字・数字・_)、\s は空白の文字一つです。大文字の \D \W \S は反対の意味です。これらは Perl 風で、grep -P・perl・Python はすべて知っていますが、grep -E では \d はただの文字 d なので、そこでは [0-9] か [[:digit:]] を使います。\w や \s をとりあえず受け付ける grep もありますが、どの道具でもそうとは限りません。

もっと学ぶ

単語の境界(\b)

原文の表記 · Word boundary (\b)

単語の端を表す正規表現の記号

\b は単語が始まるか終わる地点に一致し、文字を一つも使いません。\bart\b は art を見つけますが、party や start には一致しません。grep -w はパターン全体について同じことをします。Python では、パターンを raw 文字列(r"\bart\b")で書きます。ふつうの文字列では \b はバックスペースの文字になるからです。

もっと学ぶ

SONUB 用語辞典

シェルコマンド

用語 134 個

pwd

今いるフォルダーの完全なパスを表示する

pwd は print working directory の略です。現在のフォルダーの絶対パスを、ルート / から表示します。ファイルを作ったり、移したり、消したりする前に、どこにいるか分からなければ実行しましょう。ターミナルでの失敗の多くは、違うフォルダーで起こるからです。

ls

フォルダーの中のファイルとフォルダーを一覧にする

ls は、現在のフォルダー、または後ろに書いたフォルダーの中に何があるかを表示します。オプションで表示のしかたが変わります。-l はサイズ・日付・権限などの詳しい情報、-a はドットで始まる隠しファイルも含め、-h はサイズを読みやすくします。ls -la のようにオプションはまとめて書けます。

cd

別のフォルダーへ移動する

cd は change directory の意味です。フォルダー名を渡せばその中へ、.. なら一つ上へ、~ か何も書かなければホームフォルダーへ、- ならさっきいた場所へ戻ります。うまくいったときは何も表示しないので、不安なら pwd で確かめましょう。

echo

文字や変数の値を画面に表示する

echo は、渡されたものを表示して改行します。変数の中身を確かめたり、スクリプトからメッセージを出したり、> や >> で文字をファイルに書き込んだりする、いちばん簡単な方法です。空白を保ち、変数も展開されるように、文字はダブルクォートで囲みましょう。

man

コマンドのマニュアルを開く

man はコマンドに組み込まれたマニュアルのページを表示します。何をするのか、すべてのオプション、そして多くの場合は例も載っています。矢印キーかスペースで送り、q で終わります。多くのコマンドは --help で短い要約も表示し、help は cd のようなシェルの組み込みコマンドを説明し、clear はごちゃごちゃした画面を消します。

read

利用者が打った一行を変数に読み込む

read は、利用者が一行打って Enter を押すのを待ち、それを指定した変数にしまいます。スクリプトが質問をするときの方法です。-p は同じ行に案内の文を表示し、-r はバックスラッシュをそのまま保ちます。-r を付けるのが安全な基本です。

mkdir

新しいフォルダーを作る

mkdir は一つ以上のフォルダーを作ります。-p を付けると、途中にない親フォルダーもまとめて作り、フォルダーがすでにあってもエラーを出しません。そのため、スクリプトの中で何度実行しても安全です。

touch

空のファイルを作るか、ファイルの時刻を更新する

touch は、その名前のファイルがまだなければ空のファイルを作ります。すでにあれば中身には手を付けず、更新時刻だけを新しくします。書き込む前に、とりあえずファイルを用意しておく手軽な方法です。

cp

ファイルやフォルダーをコピーする

cp コピー元 コピー先 でコピーを作り、元はそのまま残します。コピー先がフォルダーなら、その中にコピーされます。フォルダーごとコピーするには -r が必要です。気をつけてください。cp はコピー先に同じ名前があると黙って上書きするので、先に確認してほしいなら -i を付けます。

mv

ファイルやフォルダーを移動したり、名前を変えたりする

mv 元 先 で項目を移動します。先が同じフォルダーの新しい名前なら、ただの名前変更になります。先がフォルダーなら、その中へ移ります。cp と違って、元は後に残りません。mv も確認なしで上書きするので、-i を付ける習慣がおすすめです。

rm

ファイルやフォルダーを完全に削除する

rm はファイルをすぐに消します。元に戻せるゴミ箱はありません。rm -r はフォルダーとその中身をすべて消し、-f はすべての確認を飛ばします。そのため rm -rf は、ふだん使うコマンドの中でいちばん危険です。まず ls で対象を確かめ、慣れるまでは -i を使いましょう。

cat

ファイルの中身をすべて表示する

cat は一つ以上のファイルの中身を全部表示します。名前は concatenate(つなげる)から来ていて、ファイルをいくつか渡すと順につなげて表示します。長いファイルなら head や tail のほうが読みやすく、cat はパイプラインの始まりとしてもよく使われます。

head

ファイルの最初の数行を表示する

head はファイルの先頭を表示します。-n で指定しなければ最初の 10 行です。大きなファイルや、データファイルの見出しの行を、全部表示せずにさっと見るのに便利です。

tail

ファイルの最後の数行を表示する

tail はファイルの末尾を表示します。ふつうは最後の 10 行で、-n で数を指定できます。-f を付けるとファイルを見張り続け、行が加わるたびに表示します。プログラムを動かしながらログを追うときの方法です。止めるには Ctrl+C を押します。

printf

決まった書式どおりに文字を表示する

printf は書式文字列に従って文字を表示します。%s は文字、%d は整数、%.2f は小数第 2 位までの数を入れ、\n で改行します。printf は自分では改行を付けないからです。出力の桁をそろえたり、見た目を正確に整えたりしたいときは、echo の代わりに使います。

if

条件が真のときだけコマンドを実行する

if は条件のコマンドを実行して、その終了コードを確かめます。0 なら真なので、then の後のコマンドが動きます。elif で確かめる条件を増やし、else でそれ以外をすべて受け、fi でブロックを閉じます。条件はたいてい二重の角かっこのテストで、数なら [[ $n -gt 5 ]]、ファイルがあるかどうかなら [[ -f file ]] のように書きます。

for

一覧の項目ごとにコマンドを繰り返す

for 名前 in 一覧; do …; done は、項目ごとに本体を一回ずつ実行し、今の項目を変数に入れます。一覧には、言葉、{1..5} や seq で作った数、*.txt のようなパターンで得たファイル名、コマンドの出力などが使えます。in という言葉は必ず残しましょう。

while

条件が真である間、コマンドを繰り返す

while 条件; do …; done は、条件が成功し続ける限りループします。だから中の何かが、いつかは条件を失敗させなければなりません。そうでないと永遠に回り続けます(Ctrl+C で止まります)。until はその逆で、条件が真になるまで繰り返します。while read -r line は、ファイルを一行ずつたどる定番の書き方です。

case

値をパターンと照らし合わせて、分岐を一つ選ぶ

case 値 in パターン) コマンド ;; … esac は、一つの値をいくつかのパターンと比べ、最初に一致した分岐を実行します。パターンには *.jpg のようなワイルドカードが使え、| で候補を並べ、最後の *) がそれ以外をすべて受け止めます。長い if と elif の連なりより読みやすくなります。

seq

連続した数を表示する

seq は数を一行に一つずつ表示します。seq 5 は 1 から 5、seq 2 5 は 2 から始まり、seq 0 10 50 は 10 ずつ数えます。主な役目は for ループに数を渡すことで、for i in $(seq 1 20) のように使います。波かっこの {1..20} でも、別のコマンドなしで同じことができます。

chmod

ファイルを読み・書き・実行できる人を変える

chmod はファイルの権限を変えます。いちばんよく使うのは chmod +x script.sh で、スクリプトを実行できるようにして ./script.sh で動かせるようにします。これがないと Permission denied になります。755 や 644 のような数字は、持ち主・グループ・その他の人の読み・書き・実行を一度に決めます。

source

スクリプトを今のシェルの中で実行する

source ファイル、または短い形の . ファイル は、ファイルのコマンドを新しいシェルではなく今のシェルで実行します。だから、そこで定義した変数・関数・PATH の変更が、その後も使えます。~/.bashrc や ~/.zshrc を直した後に、設定を読み込み直す方法でもあります。

getopts

スクリプトで -v や -o name のような短いオプションを読む

getopts は while ループの中で、スクリプトの短いオプションを一つずつ読みます。オプション文字列には受け付ける文字を並べ、文字の後ろのコロンは、そのオプションが値を取ることを表します。値は $OPTARG に入ります。$1 や $2 を手で分解する手間が省けます。

grep

言葉やパターンを含む行を探す

grep パターン ファイル は、一致する行だけを表示します。-i は大文字と小文字を無視し、-n は行番号を表示し、-r はフォルダーの中のすべてのファイルを探し、-v は一致しない行を表示し、-c はその数を数えます。パターンには正規表現が使えます。一致するものがなければ grep は何も表示しません。

sed

流れてくる文字やファイルの中を探して置き換える

sed はストリームエディターで、文字を一行ずつ編集します。s/old/new/ は各行で最初に一致したものを、s/old/new/g は一致したものすべてを置き換えます。-n と p を組み合わせると選んだ行だけを表示し、-i はファイルそのものを書き換えます。-i.bak ならバックアップを残し、macOS でも動きます。まずは -i なしで試しましょう。

awk

文字を列として処理する、表のための小さな言語

awk は各行をフィールドに分けます。$1 は 1 列目、$2 は 2 列目、$0 は行全体、NF はフィールドの数、NR は行番号です。プログラムは パターン { 動作 } の形で、BEGIN と END は最初の行の前と最後の行の後に動くので、合計や平均が一行で書けます。プログラムは必ずシングルクォートで囲みましょう。

sort

行を文字の順や数の順に並べ替える

sort は、何も指定しなければ行を文字の順に並べます。-n は数を値の大きさで並べるので、10 は 9 の後に来ます。-r は順番を逆にし、-u は重複を取り除き、-k は並べ替えに使う列を選びます。パイプラインで uniq や head と組み合わせてよく使います。

uniq

隣り合って繰り返す行を一つにまとめる

uniq は重複した行を取り除きますが、隣り合っているときだけです。そのため、ほとんどいつも sort の後に使います。-c は各行の前に繰り返した回数を付けるので、sort | uniq -c で手軽に数を数えられます。

wc

行・単語・文字を数える

wc は word count の略です。そのまま使うと、ファイルの行数・単語数・バイト数を表示します。-l は行だけ、-w は単語だけ、-c はバイトだけを数えます。別のコマンドの後にパイプでつなぐと、wc -l が「いくつ?」に答えてくれます。ファイルがいくつあるか、一致した行がいくつあるか、といった具合です。

cut

各行から列や文字を切り出す

cut は各行のうち、指定した部分だけを残します。-d で区切り文字を決め、-f でフィールドの番号を選びます。CSV ファイルの 2 列目なら cut -d, -f2 です。-c を使うと、代わりに文字の位置で選びます。もっと複雑な表なら awk のほうが柔軟です。

xargs

入力の行を別のコマンドの引数に変える

rm や mkdir のように、標準入力を読まず引数を必要とするコマンドがあります。xargs はパイプから項目を読み、それを引数としてコマンドに渡します。-n 1 は項目ごとにコマンドを一回ずつ実行します。-0 は、名前に空白があるときに find -print0 と安全に組み合わせられます。

find

名前・種類・サイズ・日付でファイルやフォルダーを探す

find は出発点のフォルダーとその下のすべてのフォルダーをたどり、条件に合うファイルやフォルダーのパスを一行に一つずつ表示します。基本の形は find 場所 条件 動作 です。-name "*.txt" は名前で選び(パターンは引用符で囲みます)、-type f はファイル、-type d はフォルダーを選び、-size と -mtime はサイズと最終更新日時で選びます。-exec コマンド {} \; は見つけたものごとにコマンドを実行します。ファイルの中の文字を探す grep と違い、find はファイルそのものを探します。

rg

ripgrep — grep に似た速い検索ツール

rg は何も指定しなくてもフォルダー全体を探し、.gitignore に書かれたファイルは飛ばすので、大きなプロジェクトでも速く動きます。基本の rg パターン は grep -r のように働きますが、違うオプションもあるので、まず grep を覚えましょう。このページの実習ターミナルにはないので、自分のパソコンにインストールして使います。

tee

出力を画面に見せながら、同時にファイルにも保存する

tee はパイプの途中に入ります。流れてくるものをすべて画面や次のコマンドへ渡しながら、その写しをファイルにも書き込みます。ふつうはファイルを上書きし、-a を付けると追記します。結果を見ながらログも残したいときに便利です。

cron

決まった予定どおりにコマンドを自動で実行する

cron は決めた時刻にコマンドを実行します。crontab -e で自分の予定表を開くと、各行に五つの時刻の欄(分・時・日・月・曜日)とその後ろにコマンドがあり、* は「毎」を意味します。cron は別のフォルダーで、最小限の PATH で始まるので、絶対パスを使いましょう。

trap

スクリプトが終わるときや中断されたときに後片付けを実行する

trap 'コマンド' シグナル は、スクリプトがそのシグナルを受け取ったときにコマンドを実行します。trap … EXIT はエラーの後でも、スクリプトが終わるときに必ず動くので、一時ファイルがいつも消えます。INT は Ctrl+C を受け止めます。

set

シェルの安全オプションをオン・オフする

set はシェルの動き方を変えます。-e は最初に失敗したコマンドでスクリプトを止め、-u は定義されていない変数をエラーとして扱い、-o pipefail はパイプラインのどこかの段が失敗したら全体を失敗にします。だからスクリプトの先頭に set -euo pipefail と書けば、三つともオンになります。-x は各コマンドを実行する前に表示するので、デバッグに役立ちます。

node

ブラウザーの外で JavaScript を実行する

node は Node.js のコマンドです。node -v はインストールされているバージョンを表示し、node app.js はファイルを実行し、node -e は一行のプログラムを実行します。引数なしで実行すると対話モードが開くので、.exit と打って抜けます。command not found と出たら、Node.js がインストールされていないか、PATH に入っていません。

npm

Node.js プロジェクトのパッケージを入れ、スクリプトを実行する

npm は Node.js と一緒に入ります。npm install は package.json を読んで依存関係を node_modules にダウンロードし、npm install 名前 は新しいパッケージを加え、npm run 名前 は package.json にあるスクリプトを実行します。-g はツールをグローバルにインストールして、どこでも使えるようにします。これが権限エラーで失敗したら、sudo ではなく nvm で直しましょう。

npx

パッケージのコマンドを、インストールせずに一度だけ実行する

npx は npm パッケージに入っているコマンドを実行します。プロジェクトにすでにそのパッケージがあればそれを使い、なければ一時的にダウンロードします。グローバルにインストールしたくない、一度きりのツールや、新しいプロジェクトのひな形作りにぴったりです。

nvm

Node.js のバージョンをインストールし、切り替える

nvm(Node Version Manager)は Node.js をホームフォルダーの中にインストールするので、npm のグローバルインストールに sudo が要りません。nvm install --lts は長期サポート版をインストールし、nvm use は今のターミナルをあるバージョンに切り替え、nvm ls はインストール済みのものを一覧にします。

curl

ターミナルからウェブにリクエストを送る

curl は URL にアクセスして、返ってきた応答を表示します。-o はファイルに保存し、-I はヘッダーだけを表示し、-L は転送先をたどり、-fsSL はインストール用のコマンドでよく使う静かな組み合わせです。curl … | bash はダウンロードしたスクリプトをすぐに実行するので、公式の信頼できるアドレスでだけ使いましょう。

python3

シェルから Python のプログラムを実行する

python3 file.py は Python のファイルを実行し、python3 -c "code" は一行を実行します。python3 - <<'PY' と書くと、ヒアドキュメントで複数行のプログラムを標準入力から Python に渡せます。python3 だけを打つと対話モードが開き、exit() で抜けます。いつ Python を呼ぶかはシェルが決め、計算やデータの処理は Python が受け持ちます。

もっと学ぶ

jq

JSON データから値を取り出す

jq は JSON を読み、小さなフィルター言語でその一部を取り出したり形を変えたりします。. は入力全体、.name はフィールド、.[] は配列のすべての項目、-r は引用符なしのただの文字で表示します。API の応答を読むのに curl と組み合わせるとぴったりです。

shellcheck

シェルスクリプトのバグを、実行する前に見つける

shellcheck はスクリプトを読み、よくある間違いを警告します。引用符の抜け、使われていない変数、テストの書き方の誤りなど、ほかにもたくさんあります。警告には SC2086 のようなコードが付いていて、直し方を説明したページがあります。すべてのスクリプトにかけるのは、いちばんよい安全の習慣の一つです。

firebase

プロジェクトを公開するための Firebase のコマンドラインツール

Firebase CLI は npm install -g firebase-tools でインストールし、firebase コマンドが使えるようになります。firebase login でアカウントにつなぎ、firebase init でプロジェクトのフォルダーを準備し、firebase deploy で公開します。インストールできたかは firebase --version で確かめます。

mkfifo

名前付きパイプ(FIFO)を作る

mkfifo は、名前の付いたパイプのように働く特別なファイルを作ります。一つのコマンドが書き込み、別のコマンドが先に入ったものから順に読み出します。ディスクには何も保存されません。Webサーバーの例では、これを使って nc と応答を作る関数の間でデータを受け渡します。

nc

netcat — ネットワークの接続をそのまま開く

nc はネットワークの接続を通してデータを読み書きします。nc -l 8084 は 8084 番ポートで待ち受けて、訪問者を待ちます。Webサーバーの例がブラウザーのリクエストを受け取るのはこの方法です。nc ホスト ポート は別の機械につなぎます。オプションの細かい点はバージョンによって違います。

sudo

コマンドを一つだけ管理者として実行する

sudo はパスワードを尋ねた後、コマンドを一つだけ管理者(root)の権限で実行します。システム全体を変えるときに必要ですが、安全の確認も飛ばしてしまうので、エラーを黙らせるためだけに付けてはいけません。たとえば npm のグローバルインストールは、sudo より nvm で直すほうがよい方法です。

declare

変数に型や決まりを付ける

declare は、性質を加えた変数を作ります。-i は整数にするので += が計算になり、-a は配列、-A は連想配列、-u と -l はいつも大文字・小文字にし、-r(または readonly コマンド)は変えられない定数にします。関数の中では、declare も local も、その変数を関数の中だけに置きます。

bc

小数も計算できる電卓

bash の算術 $(( )) は整数しか扱えません。$(( 10 / 3 )) は 3 になります。bc は、入力から式を読み取って答えを表示する電卓プログラムで、scale= で小数点以下を何桁残すかを決めます。echo とパイプで式を渡します。

basename

パスからファイル名だけを取り出す(dirname はフォルダーの部分)

basename /usr/local/bin/run.sh は run.sh を表示し、basename run.sh .sh は拡張子も取り除きます。相棒の dirname はフォルダーの部分、/usr/local/bin を表示します。bash の中では、パラメーター展開の ${path##*/} と ${path%/*} が、コマンドを起動せずに同じことをします。

shopt

bash の追加オプションをオンとオフにする

shopt -s は bash のオプションをオンにし、shopt -u はオフにします。globstar は ** をどの深さのフォルダーにも一致させ、nullglob は何にも一致しないパターンを文字のまま残さずに消し、nocaseglob はファイル名を照合するときに大文字と小文字を区別しません。shopt だけを打つと、すべてのオプションがオン・オフと一緒に表示されます。

perl

Perl のコードを実行する — 行ごとに正規表現を使うのに便利

perl は Perl 言語のプログラムを実行するコマンドで、macOS とほとんどの Linux に最初から入っています。perl -ne や perl -pe を使えば、macOS のように grep -P がない環境でも、行ごとに Perl風の正規表現(\d \w \s、最短マッチの .*?)が使えます。-i はファイルをその場で書き換えます。

findstr

Windows のコマンドプロンプトでテキストを探す

findstr はコマンドプロンプトの検索コマンドで、grep に似ています。/R を付けると簡単な正規表現が使えます。. * ^ $ と [ ] は使えますが、+ ? | と ( ) グループは使えません。/I は大文字と小文字を区別せず、/N は行番号を表示します。Windows で本格的な正規表現を使うなら、PowerShell の Select-String を使いましょう。

Select-String

PowerShell でパターンに一致する行を探す

Select-String は PowerShell の grep です。ファイルやパイプから受け取ったテキストのうち、.NET の正規表現に一致する行を表示するので、\d \w \s がそのまま使えます。標準では大文字と小文字を区別しません。区別したいときは -CaseSensitive を付けます。-AllMatches は 1 行の中の一致をすべて探します。

lsblk

ディスクとそのパーティションを一覧表示する

lsblk(list block devices)は、すべてのディスクとパーティションを木の形で、大きさ・種類・そしてマウントされていればつながっているフォルダーといっしょに見せます。何も変えないので、パーティション分け・フォーマット・マウントの前の安全な最初の一歩です。

parted

ディスクのパーティションを作ったり変えたりする

parted はディスクのパーティションテーブルを書きます。mklabel は新しい空のテーブル(msdos か gpt)を作り、mkpart は 1MiB から 100% のように、ある位置から別の位置までのパーティションを加えます。-s を付けると質問なしで動きます。ディスクをすぐに変えるので、先に lsblk でデバイス名を確かめましょう。

mkfs

パーティションをファイルシステムでフォーマットする

mkfs はパーティションに空のファイルシステムを作ります。ドットの後ろの部分で種類を選びます。Linux 用なら mkfs.ext4、Windows や macOS でも読めるUSBメモリー用なら mkfs.vfat です。フォーマットすると、そのパーティションにあったものはすべて消えます。

mount

ディスクをフォルダーにつなぐ

mount はパーティションのファイルシステムをフォルダー(マウントポイント)につなぎます。するとそのフォルダーに保存したファイルは、そのディスクに入ります。引数なしだと、マウントされているものを一覧表示します。umount で外しますが、先にそのフォルダーから出ないと target is busy と答えます。

df

各ディスクの空き容量を見せる

df(disk free)は、マウントされたファイルシステムを、大きさ・使用量・空き容量・マウントされた場所といっしょに一覧表示します。-h を付けると 105M や 2.3G のように人が読みやすい大きさで表示し、フォルダーを指定するとそのフォルダーがあるディスクだけを見せます。

apk

Alpine Linux のパッケージマネージャー

apk は Alpine Linux でプログラムをインストール・更新・削除します。プログラムとそれに必要なものを Alpine のパッケージストアから取ってきます。apk add でインストール、apk del で削除、apk search で検索します。ほかのシステムにはそれぞれ自分のものがあります。Ubuntu と Debian は apt、Fedora は dnf、macOS は brew です。

pip

Python のパッケージインストーラー

pip は PyPI から Python のライブラリーをダウンロードしてインストールします。最近の Linux はシステム自身の Python を守っているので、仮想環境の外では pip install が externally-managed-environment で失敗するか、pip そのものがありません。先に venv を作り、その中の pip を使いましょう。

gsub

行の中で一致したものをすべて置き換える awk の関数

gsub(/パターン/, "新しい文字") は、今の行のうち正規表現に一致する部分をすべて置き換えます。三つ目の引数を付けると、$3 のような一つのフィールドだけに限れます。姉妹の sub は最初に一致したものだけを置き換えます。変えたあとで print すると新しい行が出ます。gsub 自身は何も表示しません。

もっと学ぶ

caddy reload

動いている Caddy に、止めずに変えた設定を読ませること

caddy reload は、すでに動いている Caddy サーバーに Caddyfile をもう一度読ませ、新しい設定に切り替えさせます。Caddy は設定を入れ替える間も配信を続けるので、訪問者の接続は切れません。新しいファイルにまちがいがあると、Caddy はそれを断って古い設定のままにするので、先に caddy validate を実行しましょう。

もっと学ぶ

kill

動いているプロセスにシグナルを送ること。たいていは止めるため

kill は、番号(PID)で選んだプロセスにシグナルを送ります。オプションなしでは TERM を送り、これは終わってほしいというていねいなお願いです。kill -9 は KILL を送り、後片づけをさせずにすぐにプロセスを終わらせるので、TERM が効かないときだけ使います。番号は jobs、ps、または & で始めたコマンドの出力で調べます。

npm run

package.json に書いたスクリプトを実行すること

npm run <名前> は、package.json の "scripts" の部分にその名前で保存したコマンドを実行します。そのため、チーム全員が同じやり方でプロジェクトを起動し、ビルドし、テストできます。npm run dev はふつう開発用サーバーを起動し、npm run build は完成したファイルを作ります。npm run だけを打つと、プロジェクトにあるスクリプトを一覧にします。

rsync

変わったものだけを送って、ファイルを別の場所やコンピューターにコピーすること

rsync は、フォルダーを別のフォルダーに、または SSH 越しに別のコンピューターにコピーします。二回目からは両側を比べて変わったファイルだけを送るので、Web サイトの更新が速くなります。コピー元のパスの最後のスラッシュが大事です。site/ はフォルダーの中身をコピーし、site はフォルダーそのものをコピーします。

もっと学ぶ

sleep

決めた秒数だけ待ってから先に進むこと

sleep は、渡した時間だけ何もせずに終わるので、次のコマンドがあとで動きます。スクリプトでは、やり直しの間に待ったり、(printf ...; sleep 1) | nc のように接続を少しの間開けておいたりするのに使います。数は秒です。Linux の GNU sleep は 2m のような単位も受け付けます。

tr

流れてくる文字の中の一文字ずつを取り替えたり消したりすること

tr は標準入力から文字を読み、一文字ずつ変えます。ある組の文字を別の組の対応する文字に置き換えたり、-d で消したりします。単語ではなく文字を扱うので、単語全体には sed を使います。tr -d '\r' は、Windows のファイルや HTTP の行に付いてくるキャリッジリターンを取り除くよくある方法です。

もっと学ぶ

docker compose up

compose.yaml に書いたすべてのコンテナを起動すること

docker compose up は今のフォルダーの compose.yaml を読み、足りないイメージをダウンロードし、コンテナ・ネットワーク・ボリュームを作って起動します。-d を付けるとバックグラウンドで動かし、プロンプトを返してくれます。compose.yaml を変えたあとや新しいイメージを取ってきたあとにもう一度実行すると、変わったコンテナだけを作り直します。

もっと学ぶ

docker compose down

compose のプロジェクトのコンテナを止めて取り除くこと

docker compose down は、docker compose up で起動したコンテナを止め、そのネットワークといっしょに取り除きます。データベースや証明書のようなデータを入れておく名前付きボリュームは、-v を付けない限り残ります。だからサーバーで down -v を使うのは危険です。保存したデータまで消してしまいます。

もっと学ぶ

docker run

イメージからコンテナを作って起動すること

docker run はイメージから新しいコンテナを作って動かします。イメージがなければ先にダウンロードします。オプションで動かし方を決めます。-d はバックグラウンドで動かし、-p は自分のコンピューターのポートをコンテナのポートにつなぎ、-v はフォルダーやボリュームをつなぎます。オプションが長くなったら、compose.yaml に一度書いて、代わりに docker compose up を使います。

もっと学ぶ

/init

AI の道具にプロジェクトを読ませ、指示ファイルの下書きを作らせること

/init は、コーディングエージェントにプロジェクトを読ませ、最初の指示ファイルを書かせます。Claude Code なら CLAUDE.md、Codex なら AGENTS.md です。このファイルはセッションを始めるたびに読まれるので、プロジェクトの目的、ビルドとテストのコマンド、自分のルールをくり返さずにすみます。下書きを読んで直しましょう。完成したルールブックではなく、出発点です。

もっと学ぶ

/goal

ゴールラインを決めて、エージェント(Codex・Claude Code)をそこまで働き続けさせるコマンド

CodexとClaude Codeでは、/goal のあとに結果を書くとゴールが決まり、エージェントは進み具合を確かめながら条件を満たすまで働き続けます。/goal だけでいまのゴールを表示し、/goal clear で消します(Codexには pause・resume もあります)。Claude Codeでは、ターンごとに小さなモデルが会話を読んでゴールに届いたかを判定します。「すべてのテストが通り、READMEに実行方法がある」のように確かめられるゴールでないと、うまく働きません。

もっと学ぶ

claude

ターミナルで Claude Code を起動するコマンド

プロジェクトのフォルダーで claude と打つと、そこで Claude Code が起動し、そのフォルダーのファイルを読んだり編集したりできます。オプションで動き方が変わります。-p はチャット画面なしで一回だけ答え、-c は最後の会話を続けます。ターミナルに「claude: command not found」と出たら、まだインストールされていないか、そのフォルダーが PATH に入っていません。

もっと学ぶ

agy

ターミナルで Google の Antigravity CLI を起動するコマンド

agy は、Google のターミナル用コーディングエージェントである Antigravity CLI を今のフォルダーで起動します。公式ページのスクリプトでインストールし、最初に Google アカウントでサインインします。claude や codex と同じように、プロジェクトを読み、ファイルを編集してコマンドを実行できるので、同じ仕事を二つのエージェントにたのんで計画を比べると、まちがいが見つかります。

もっと学ぶ

gh

GitHub 自身のコマンドラインの道具

gh(GitHub CLI)は、GitHub の仕事をターミナルからします。サインインし、プルリクエストを開いてレビューし、イシューを作り、プロジェクトボードを管理します。git はコミットをコンピューターの間で動かし、gh は GitHub の Web サイトにだけあるものを扱います。gh auth login に Git の設定もまかせれば、git push も同じサインインを使うので、ターミナルにトークンを貼り付けずにすみます。

もっと学ぶ

flutter build

ストアに出す Flutter アプリのリリース用ファイルを作ること

flutter build は、Flutter のプロジェクトを一つのプラットフォーム向けの完成した最適化済みのファイルにします。flutter build appbundle は Google Play が受け取る .aab を作り、flutter build ipa は App Store 用の iOS のアーカイブを作ります(Xcode の入った Mac が必要です)。ストアにアップロードするものには署名が必要なので、リリースビルドの前に署名の設定をすませておきます。

もっと学ぶ

rm -rf

フォルダーとその中身すべてを、たずねずに消すこと

rm -r はフォルダーを中身ごと消し、-f を足すと、たずねたり文句を言ったりしなくなります。ゴミ箱はないので、パスが一つまちがっているだけで(余分な空白や、rm -rf "$DIR"/* の空の変数)、プロジェクト全体かそれ以上が消えることがあります。こうしたコマンドは読み、まず同じパスで ls を実行し、理解できない AI エージェントの提案は決して承認しないでください。

もっと学ぶ

skills CLI

エージェントのスキルをインストール・更新・削除するコマンドラインの道具

skills CLI(npx skills で実行)は、sonub.com や GitHub のリポジトリのような元からスキルを .agents/skills にコピーし、Claude Code のために .claude/skills にリンクを作ります。この方法で入れたスキルは、同じ道具で一覧・更新・削除できます。誰かが手でコピーしたフォルダーは local と表示され、更新されません。-g は今のプロジェクトではなく、すべてのプロジェクトに入れます。

もっと学ぶ

skills-ref

スキルの SKILL.md が形式のルールに合うかを確かめる参照用の道具

skills-ref は、公開された Agent Skills 形式の本拠地である agentskills リポジトリにある参照用の道具です。skills-ref validate はスキルのフォルダーを読み、名前や説明がないなど、SKILL.md の頭の部分のルールに反しているものを報告します。お手本として作られたものなので、リポジトリをクローンし、pip install -e . でインストールしてから使います。

もっと学ぶ

winget

Windows にプログラムをインストールするパッケージマネージャー

winget(WinGet)は Windows のパッケージマネージャーで、PowerShell やコマンドプロンプトのコマンドラインからプログラムをインストール・更新・削除します。macOS の brew、Ubuntu の apt にあたるものです。winget で入れた道具の中には、Claude Code のように自分では更新しないものがあるので、ときどき winget upgrade を実行します。

brew

macOS でいちばん使われているパッケージマネージャー、Homebrew

brew は Homebrew のコマンドで、macOS(Linux でも)にコマンドラインの道具やアプリを、たいていは sudo なしでインストールします。brew install でプログラムを足し、brew upgrade で入れたものを更新し、brew search で名前を探します。Claude Code のように brew で入れた道具は、自分でではなく brew upgrade で更新します。

pnpm

ディスクを節約する、速い Node.js のパッケージマネージャー

pnpm は npm と同じ仕事(package.json のパッケージを入れ、スクリプトを実行する)をしますが、パッケージのバージョンごとに一つのコピーだけをディスクに置き、それを各プロジェクトにリンクします。そのため、プロジェクトがたくさんあるとインストールが速く、場所も節約できます。ロックファイルは pnpm-lock.yaml です。ロックファイルどうしがぶつからないよう、一つのプロジェクトには一つのパッケージマネージャーを使いましょう。

ln

リンクを作ること — ファイルを指す二つ目の名前

ln -s はシンボリックリンクを作ります。別のファイルやフォルダーを指す小さなファイルなので、コピーせずに同じ中身に二つの場所から届きます。本物の指す先を先に、新しいリンクの名前をあとに書きます。-s なしの ln はハードリンクを作り、一つのファイルシステムの中でしか使えません。Windows はシンボリックリンクの扱いが違うので、Windows の人と共有するプロジェクトでは避けることがよくあります。

nohup

ターミナルを閉じたあともコマンドを動かし続けること

ふつうはターミナルを閉じると、そのコマンドにハングアップのシグナルが送られて止まります。nohup はコマンドにそのシグナルを無視させ、出力先を変えない限り出力を nohup.out に書きます。& を付けるとバックグラウンドで動きます。タブといっしょに消えるブラウザーのターミナルでは役に立たず、サーバーでの長い作業には、あとで戻りやすい tmux のほうが簡単です。

micro

ターミナルの中で動く、かんたんなコードエディター

micro はターミナルの中でそのまま使うコードエディターです。Python などのコードに色を付け、行番号を表示し、Enter を押すと字下げを次の行に引き継ぎます。一般のプログラムと同じく Ctrl+S で保存、Ctrl+Q で閉じ、Ctrl+F で検索します。SONUB の実習 Linux にあらかじめ入っています。

nano

ターミナルの中で動く、かんたんなテキストエディター

nano はターミナルの中でそのままファイルを開いて編集します。ショートカットは画面の下に並んでいて、^ は Ctrl の意味です。Ctrl+O を押して Enter で保存、Ctrl+X で閉じ、Ctrl+W で検索します。-m なしでコミットすると Git が nano(または Vim)を開くことがあるので、抜け方を知っておくと役に立ちます。

vim

キーボードだけで使う、強力なターミナルのテキストエディター

Vim はターミナルの中でファイルを編集し、ほとんどのサーバーに入っています。モードがあり、最初はキーがコマンドになるノーマルモードで始まります。i で文字を打つ挿入モードに切り替え、Esc で戻ります。抜けるには Esc を押してから、:wq で保存して終了、:q! で保存せずに終了、ZZ で保存して終了します。

clear

ターミナルの画面をきれいにすること

clear はターミナルの窓を空にしてプロンプトをいちばん上に戻すので、次の出力が読みやすくなります。Ctrl+L も同じです。画面を片づけるだけで、ファイル・変数・コマンドの履歴はそのままです。

exit

シェルを終えること、または終了コード付きでスクリプトを終えること

プロンプトで exit と打つと、シェルのセッションが閉じます。ターミナルのタブか、ssh でサーバーにログインしているならその接続です。スクリプトの中では、exit 0 は成功として、exit 1(またはほかの数)は失敗として終わるので、スクリプトを実行した側が $? で確かめられます。Claude Code のような AI の道具の中では、代わりに /exit で抜けます。

sh

シェルスクリプトを実行するのに使う、基本のシェル

sh は、Unix に似たどのシステムにもある標準の POSIX シェルです。Alpine では BusyBox の ash、Ubuntu では dash です。sh script.sh でスクリプトを実行し、インストールの案内では、ダウンロードしたスクリプトをパイプでこれに渡すことがよくあります(curl … | sh)。配列や [[ ]] のような bash の機能はないので、それを使うスクリプトは bash で実行しなければなりません。

alias

コマンドに自分だけの短い名前を付けること

alias は、シェルが長いコマンドに置き換える短い名前を作ります。たとえば ll を ls -la にします。alias だけを打つと今の一覧を表示し、unalias で一つ取り除きます。エイリアスは今のセッションの間だけ続きます。残すには、その行を ~/.bashrc か ~/.zshrc に書きます。

apt

Ubuntu と Debian のパッケージマネージャー

apt は、Ubuntu、Debian、それらをもとにしたシステム(WSL で入る Ubuntu など)で、プログラムをインストール・更新・削除します。システム全体を変えるので、sudo で実行します。まず sudo apt update で使えるバージョンの一覧を新しくしてから、インストールします。

blkid

パーティションごとのファイルシステムの種類と ID を表示すること

blkid は、ディスクのパーティションごとに、UUID(ほかと重ならない ID)、ext4 や vfat のようなファイルシステムの TYPE、あれば LABEL を表示します。lsblk はディスクの並び方を見せ、blkid はそれぞれの部分の中身を教えてくれます。/etc/fstab は、sda1 のような名前が変わってもディスクを見つけられるように、この UUID を使います。

break

ループを途中で抜けること

break は、自分がいる for、while、until のループを止め、スクリプトは done のあとから続きます。待っていたことが起きたら、終わりのない while true のループから抜けるふつうの方法です。break 2 は、入れ子になった二つのループを一度に抜けます。

continue

ループのこの回の残りを飛ばして、次の回を始めること

continue は、その場所からすぐにループの次の回へ飛び、下にあるコマンドを飛ばします。空のファイルや一致しなかった名前のように、無視したい項目があるときにループをシンプルに保てます。break と違って、ループそのものは続きます。

chown

ファイルやフォルダーの持ち主を変えること

chown は、ファイルとフォルダーの所有者(コロンのあとにはグループも)を決めます。ファイルをほかの人に渡せるのは管理者だけなので、ふつうは sudo で実行します。新しいディスクをマウントしたあとによく使います。そのフォルダーは最初 root のものだからです。-R はフォルダーの中のすべても変えます。

comm

並べ替えた二つのファイルを比べること — 片方だけの行、もう片方だけの行、両方の行

comm は並べ替えた二つのファイルを読み、三つの列を表示します。一つ目だけにある行、二つ目だけにある行、両方にある行です。オプションで列を隠せるので、comm -12 は共通の行だけを表示します。どちらの入力も先に並べ替えておく必要があり、プロセス置換を使えばその場で並べ替えられます。

command -v

コマンドがあるかを、どのシステムでも同じやり方で確かめること

command -v 名前 は、コマンドの場所(または組み込みコマンドであること)を表示して成功し、そんなコマンドがなければ何も表示せずに失敗します。どの POSIX シェルでも同じように動くので、スクリプトは道具を使う前にこれで確かめます。答えだけが大事なら、出力は捨てます。

date

今の日付と時刻を、選んだ形で表示すること

date は今日の日付と時刻を表示します。+ で始まる書式で部分を選べます。たとえば +%Y-%m-%d なら 2026-10-21 で、バックアップやログのファイル名に便利です。-u は、自分のタイムゾーンではなく UTC で時刻を表示します。

du

フォルダーやファイルがどれだけディスクを使っているかを表示すること

du(disk usage)は、フォルダーの中のファイルの大きさを足し合わせます。-h は大きさを K、M、G で表示し、-s はサブフォルダーごとの行の代わりに合計を一つ出します。ディスクを何が埋めているかを探すには、一段だけの深さで一覧にして大きさで並べ替えます。ディスク全体の空きは、代わりに df で見ます。

env

環境変数を表示すること、または変えた環境変数でプログラムを動かすこと

env だけを打つと、すべての環境変数を表示します。env NAME=値 コマンド は、シェルを変えずに、変数を一つ足して一つのコマンドを実行します。#!/usr/bin/env bash では、env が PATH を通して bash をどこに入っていても見つけるので、多くのスクリプトがこの形で始まります。

export

このシェルが起動するプログラムに変数を渡すこと

ふつうのシェルの変数は、シェル自身にしか見えません。export はそれを環境変数として印を付けるので、このシェルから起動したすべてのプログラム(スクリプト、node、python3)にも渡ります。ターミナルを閉じるまで続きます。残すには、export の行を ~/.bashrc か ~/.zshrc に書きます。

fdisk

ディスクのパーティションテーブルを表示したり変えたりすること

fdisk -l は、ディスクとそのパーティションを大きさと種類つきで一覧にします。一つのディスクに対して実行すると、パーティションを作ったり消したりする対話式のメニューが開きます。w を押すまでは何も書き込まれず、q で変えずに抜けます。データの入ったディスクのパーティションを変えると読めなくなることがあるので、空のディスクで練習しましょう。

fg · bg

ジョブを手前に戻すこと、またはバックグラウンドで動かし続けること

fg は、バックグラウンドのジョブや一時停止したジョブをターミナルの手前に戻し、キーボードを読めるようにします。Ctrl+Z は手前で動いているジョブを一時停止し、bg はその一時停止したジョブをバックグラウンドで続けさせます。ジョブがいくつかあるときは、fg %2 のように jobs が表示する番号を付けます。

help

シェル自身の組み込みコマンドのヘルプを表示すること

help は bash の組み込みコマンドで、cd、for、read のような bash 自身のコマンドを説明します。ls や grep のような別のプログラムは知らないので、それには man か --help オプションを使います。help だけを打つと、組み込みコマンドをすべて一覧にします。

info

GNU のプログラムの、長くて詳しい説明書を読むこと

info は、多くの GNU のプログラムが持っている詳しい文書を開きます。man のページより長いことが多く、リンクでつながった節に分かれています。Space で先へ進み、n と p で次と前の節に移り、q で終わります。Alpine のような小さなシステムには入っていないことがあり、そのときは man と --help を使います。

jobs

このターミナルのバックグラウンドのジョブと一時停止したジョブを一覧にすること

jobs は、今のシェルから & で始めたジョブや Ctrl+Z で一時停止したジョブを、[1] のような番号と状態つきで表示します。その番号は fg、bg、kill、wait で fg %1 のように使います。このシェルのジョブしか知らず、ほかで始めたプログラムは知りません。それは ps で見ます。

join

同じキーを持つ二つのファイルの行をつなぎ合わせること

join は、ID のような共通の列で並べ替えた二つのファイルを読み、両方にあるキーごとに一行を出し、両方のファイルのほかの列を横に並べます。テキストファイルでする、小さなデータベースの結合のようなものです。先に両方のファイルをキーで並べ替えます。-t は区切り文字を決め、CSV なら join -t, のようにします。

less

長いファイルを一画面ずつ読むこと

less は、cat のようにすべてを一度に流し出す代わりに、ファイルを一画面ずつ見せます。Space で次の画面、b で前に戻り、/言葉 で検索し、n で次の一致に移り、q で終わります。ファイル全体を先に読み込まないので、とても大きなログファイルでもすぐに開けます。

local

関数の中だけにある変数を作ること

bash では、関数の中で設定した変数は標準ではグローバルで、スクリプトのほかの場所にある同じ名前の変数を上書きすることがあります。見つけにくいバグです。local 名前=値 は、変数をその関数だけのものにし、関数が終わると消えます。関数の中では local を標準にしましょう。

make

Makefile に書いたビルドの手順を実行すること

make は Makefile という名前のファイルを読みます。そこではターゲットごとに、必要なファイルとそれを作るコマンドが並んでいます。前回から入力ファイルが変わった手順だけをやり直すので、大きなプロジェクトで時間を節約できます。make test や make install のような短い名前に使うプロジェクトも多くあります。

mktemp

ほかと重ならない名前で一時ファイルを作ること

mktemp は、ふつうは /tmp に、でたらめな名前の空のファイルを作ってその名前を表示するので、スクリプトはそれを変数に入れておけます。名前が重ならないので、同じスクリプトが二つ同時に動いても、おたがいの一時ファイルを上書きしません。trap と組み合わせて、スクリプトが終わったらファイルが消えるようにしましょう。

openssl

暗号化・証明書・安全な乱数のための道具箱

openssl は暗号のためのコマンドラインの道具箱です。でたらめな秘密の値を作り、証明書を作ったり読んだりし、ファイルを暗号化し、HTTPS の接続を試します。パスワードや API の秘密の値には openssl rand を使いましょう。$RANDOM は予想できるので、ゲーム用にしか向きません。openssl s_client は、サイトが送ってくる証明書を見せます。

paste

ファイルの行を横に並べること

paste は、それぞれのファイルの 1 行目を一つの行にまとめ、次に 2 行目を、とつなげていき、間にはタブを入れます。-d で別の区切りを選び、-s は一つのファイルのすべての行を一行にまとめます。列をばらす cut の反対です。

ping

別のコンピューターがネットワーク越しに答えるかを確かめること

ping はコンピューターに小さなテスト用のパケットを送り、それぞれの答えにかかった時間を表示するので、届くかどうか、回線がどれだけ遅いかがわかります。-c と回数を渡さない限り、Ctrl+C を押すまで動き続けます。ping を止めているサーバーやネットワークもあり、練習用ターミナルではエミュレーターが自分で答えるので、本当の接続は curl で試しましょう。

py

Windows で Python を動かすコマンド

Windows では、Python のインストーラーが Python ランチャーの py を足します。これはインストールされた Python を一つ選び、それでプログラムを動かします。macOS と Linux では、同じ仕事を python3 でします。py -0 は見つけた Python のバージョンを一覧にし、py -3.12 は一つを選びます。

return

関数を終えて、成功か失敗かを知らせること

return はシェルの関数を抜けて、その終了ステータスを決めます。return 0 は成功、255 までのほかの数は失敗という意味で、if や && で確かめられます。Python の return と違って、文字は返しません。関数から文字を取り出すには、echo で表示して result=$(myfunc) で受け取ります。

rmdir

フォルダーが空のときだけ消すこと

rmdir は、中に何もないときだけフォルダーを取り除き、そうでなければ断ります。その断りが安全のしくみです。空のはずのフォルダーなら、rm -r のようにうっかりファイルまで消すことがありません。-p は、パスの中の空の親フォルダーも取り除きます。

ruby

Ruby の言葉で書いたプログラムを動かすこと

ruby は Ruby のプログラムを動かします。ruby file.rb はファイルを、ruby -e はコマンドラインに打った一行を実行します。python3 -c、node -e、perl -e と同じです。Ruby は読みやすいコードと、Rails という Web のフレームワークで知られています。brew や apt などで、先にインストールが必要なことがあります。

shift

スクリプトの引数を一つ左にずらすこと

shift は最初の引数を落とすので、$2 が $1 に、$3 が $2 になり、$# は一つ減ります。shift を使った while のループで、引数を一つずつ扱えます。getopts がオプションを読んだあと、shift $((OPTIND - 1)) でそれを取り除くと、$1 が最初の本当の引数になります。

test · [ ]

角かっこ一つで条件を確かめる、古いやり方

[ ... ] は test コマンドの別名です。条件を確かめて成功か失敗かになるので、if で使えます。どの POSIX シェルにもありますが、厳しいところがあります。かっこの内側には空白が必要で、変数はクォートで囲まなければなりません。空の変数がコマンドに穴をあけるからです。bash では、[[ ]] がより新しく安全な形です。

trash-cli

ファイルを消す代わりにゴミ箱に移すコマンド

rm は完全に消しますが、trash-cli はターミナルにゴミ箱を与えます。trash-put はデスクトップと同じゴミ箱にファイルを移し、trash-list で中にあるものを表示し、trash-restore でファイルを戻します。組み込みのコマンドではなく別のパッケージで、apt か pip でインストールします。まちがいから戻る道がほしいときに使いましょう。

tree

フォルダーとその下のすべてを木の形で描くこと

tree は、フォルダーの下のフォルダーとファイルを、何が何の中にあるかを示す線つきで表示します。ls を何回も使うより読みやすくなります。-L はどこまで深く行くかを限り、-a は隠しファイルも表示します。はじめから入っていないことが多いので、練習用ターミナルでは sudo apk add tree で足します。

true · false

いつも成功するコマンドと、いつも失敗するコマンド

true は何もせずに終了コード 0(成功)で終わり、false は何もせずに 1(失敗)で終わります。while true は break か Ctrl+C まで動き続けるループを作り、二つとも && と || を試すのに便利です。シェルでは、成功と失敗は true と false という言葉ではなく、終了コードです。

type

名前が組み込みコマンド・エイリアス・関数・プログラムのどれかを教えること

type 名前 は、その名前でシェルが実際に何を動かすかを教えます。cd のようなシェルの組み込みコマンド、エイリアス、自分で定義した関数、またはプログラムのファイルとそのパスです。思っていたのと違う動きをするときに役に立ちます。type -a は、シェルが試す順にすべての一致を一覧にします。

until

条件が真になるまでコマンドをくり返すこと

until は while の裏返しです。条件が偽の間は中身をくり返し、真になると止まります。「サーバーが答えるまで、一秒待つ」のように、待つときに自然に読めます。中で何かが変わるようにしておかないと、ループは終わりません。

wait

バックグラウンドのジョブが終わるまで待つこと

wait は、(& で始めた)バックグラウンドのジョブが終わるまでスクリプトを止めておくので、時間のかかる仕事をいくつか同時に始めて、全部終わってから先に進めます。プロセス ID を付けた wait は、そのジョブ一つを待ってその終了コードを返します。wait がないと、バックグラウンドのジョブより先にスクリプトが終わることがあります。

which

コマンドのプログラムファイルがどこにあるかを探すこと

which 名前 は PATH のフォルダーを探し、動くことになるプログラムのフルパスを /usr/bin/python3 のように表示します。道具をインストールしたのに「command not found」が出るときや、二つのバージョンがあるときに役に立ちます。which -a はすべてを表示します。シェルの組み込みコマンド・エイリアス・関数は見えないので、それには type を使います。

/resume

前の会話を選んで続きから再開する

Claude Code で `/resume` と入力すると過去の会話の一覧が開き、選んだ会話をその内容のまま続けられます。ターミナルでは `claude --resume` が同じ一覧を開き、`claude --continue` は今のフォルダの一番新しい会話をすぐに開きます。Codex も `codex resume` と `codex resume --last` で同じことができます。

もっと学ぶ

claude doctor

Claude Code のインストールと設定の状態を調べる

`claude doctor` は Claude Code が正しくインストールされているか、設定ファイルに誤りがないかを調べ、会話を始めずに結果をターミナルに表示します。会話の中では `/doctor` が似た点検をし、一部の問題は直すこともできます。インストールや更新のあとで Claude Code の様子がおかしいときに、まず試します。

もっと学ぶ

claude setup-token

自動実行で使う長期間有効な Claude ログイントークンを作る

`claude setup-token` は1年間使えるログイントークンを作り、GitHub Actions やスクリプトのようにブラウザでログインできない場所でも Claude Code を動かせるようにします。ブラウザで一度許可するとトークンを画面に表示するだけでどこにも保存しないので、秘密の値として保管し `CLAUDE_CODE_OAUTH_TOKEN` 環境変数に入れます。Claude のサブスクリプション(Pro・Max・Team・Enterprise)で動くため、パスワードと同じように扱います。

もっと学ぶ

該当する用語がありません。

用語辞典

知らない言葉を選んでみましょう。やさしい説明と関連用語が見られます。

その用語はまだありません。

用語を選ぶと説明が表示されます。

読書ウィンドウ