Auto-sync: 2026-04-21 16:03
This commit is contained in:
62
wiki/concepts/AI-簡報流程.md
Normal file
62
wiki/concepts/AI-簡報流程.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# AI 簡報流程
|
||||
|
||||
## Definition
|
||||
|
||||
AI 簡報流程是一種結合大型語言模型(LLM)進行前期資料研究、知識整理,與 AI 簡報工具進行視覺設計的兩階段工作方法論。
|
||||
|
||||
## Core Principles
|
||||
|
||||
1. **先研究、後設計** — 簡報不是從版面設計開始,而是從資料研究開始
|
||||
2. **內容為王** — AI 簡報工具擅長視覺設計,不擅長前期資料研究
|
||||
3. **分工明確** — LLM 負責文字推理與內容建構,AI 設計工具負責視覺美化
|
||||
|
||||
## Workflow Stages
|
||||
|
||||
### Stage 1: Knowledge Research (ChatGPT)
|
||||
|
||||
| Stage | Duration | Purpose |
|
||||
|-------|----------|---------|
|
||||
| 資料收集 | 5 min | 上網搜尋相關資料,調閱多筆素材 |
|
||||
| 架構建立 | 1 min | 建立對比表格,整理知識結構 |
|
||||
| 大綱設計 | 1 min | 輸出文字版簡報大綱 |
|
||||
|
||||
### Stage 2: Visual Design (Canva/Gamma)
|
||||
|
||||
| Tool | Strength | Notes |
|
||||
|------|----------|-------|
|
||||
| [[Canva]] | 豐富模板、AI 問答 | 2025年9月支援中文 |
|
||||
| [[Gamma]] | 專業版面、圖文並茂 | AI 簡報效果最好 |
|
||||
|
||||
## Practical Prompts
|
||||
|
||||
### 資料收集 Prompt
|
||||
```
|
||||
你是個人知識管理專家,請跟我解釋「[主題]」。請一步一步分析:
|
||||
先「上網搜尋相關資料」,以「條列清單的格式」,用一般人也能懂的用語,
|
||||
兼顧廣度與深度細節,說明這個主題。
|
||||
```
|
||||
|
||||
### 建立架構 Prompt
|
||||
```
|
||||
整合上面所有討論資料,建立一個「[主題]方法、應用」的對比表格,
|
||||
呈現出「打破[領域]迷思」的特色。
|
||||
```
|
||||
|
||||
### 簡報大綱 Prompt
|
||||
```
|
||||
統整上方的討論,根據「[主題]」主題,簡報對象是「[目標受眾]」,
|
||||
設計出 10 頁簡報大綱。請一步一步分析,先梳理上方討論的重點,
|
||||
根據背景、解決的問題、方法與應用,拆解出最容易讓人理解的順序。
|
||||
每一頁有一個明確主題,每個主題下條列關鍵重點,並帶入更多具體的數據資料細節,
|
||||
並且最後有吸引人的結論。
|
||||
```
|
||||
|
||||
## Related Concepts
|
||||
|
||||
- [[防彈筆記法]] — 知識管理方法論
|
||||
- [[ChatGPT-應用]] — LLM 在知識工作中的應用
|
||||
- [[知識管理]] — 資料收集、整理、分析的系統方法
|
||||
|
||||
## References
|
||||
|
||||
- [[jiao-xue-chatgpt-xian-zuo-zhi-shi-zheng-li-zai-rang-canva-gamma-ai-shu-chu-jian-bao|教學:ChatGPT 先做知識整理,再讓 Canva、 Gamma AI 輸出簡報]]
|
||||
@@ -1,17 +1,38 @@
|
||||
---
|
||||
title: "API Enablement"
|
||||
type: concept
|
||||
tags: [google, api, cloud]
|
||||
sources: []
|
||||
tags: [google-cloud, oauth, api]
|
||||
---
|
||||
|
||||
## Definition
|
||||
API Enablement(API 启用)是 Google Cloud Console 中的操作,允许项目启用特定的 API 服务以进行编程访问。
|
||||
API Enablement 是在 Google Cloud Console 中为项目启用特定 API 服务的操作。即使 OAuth 认证成功,如果目标 API 未启用,调用时仍会返回 `403 accessNotConfigured` 错误。
|
||||
|
||||
## Context
|
||||
- gog CLI 调用 Google API 需要两层配置:OAuth 身份认证 + API 启用
|
||||
- 常见错误 "403 accessNotConfigured" 表示对应 API 未在项目中启用
|
||||
- 启用 API 后需要 30 秒~2 分钟生效,且需要重新授权以获取新权限
|
||||
## Two-Layer Authorization Model
|
||||
|
||||
## Connections
|
||||
- [[GOG-CLI-安装配置指南]] ← API 调用前提于 ← [[API-Enablement]]
|
||||
| 层级 | 控制内容 | 错误示例 |
|
||||
|------|---------|---------|
|
||||
| OAuth 授权 | 用户身份认证 | 未授权/权限不足 |
|
||||
| API Enablement | 是否允许调用 API | `403 accessNotConfigured` |
|
||||
|
||||
## 操作步骤
|
||||
1. 进入 **Google Cloud Console** → **APIs & Services** → **Library**
|
||||
2. 搜索目标 API(如 Gmail API、Calendar API)
|
||||
3. 点击 **Enable** 启用
|
||||
4. 等待生效(通常 30 秒 ~ 2 分钟,有延迟)
|
||||
5. 重新执行 OAuth 授权(因旧 token 不包含新权限)
|
||||
|
||||
## 典型错误
|
||||
> Gmail API has not been used in project XXX
|
||||
|
||||
表示:该 Google Cloud 项目未启用 Gmail API
|
||||
|
||||
## 相关概念
|
||||
- [[OAuth]]:第一层认证
|
||||
- [[Google-Cloud-Console]]:管理 API 启用的控制台
|
||||
- [[Gmail-API]]:Google Workspace API 示例
|
||||
- [[Calendar-API]]:日历 API
|
||||
- [[Drive-API]]:云端硬盘 API
|
||||
- [[测试用户]]:OAuth 授权配置
|
||||
|
||||
## 相关工具
|
||||
- [[gog CLI]]:一个同时需要 OAuth + API Enablement 才能正常工作的 CLI 工具
|
||||
|
||||
@@ -1,46 +1,62 @@
|
||||
---
|
||||
title: "Byox"
|
||||
type: concept
|
||||
tags: [build-your-own-x, learning, programming]
|
||||
title: Byox - Build Your Own X
|
||||
description: Learning programming by rebuilding technologies from scratch
|
||||
tags: [learning, methodology, programming, open-source]
|
||||
---
|
||||
|
||||
# Byox (Build Your Own X)
|
||||
|
||||
## Definition
|
||||
Byox(Build Your Own X)是一种学习编程的方法论,通过从零重建技术来深入理解其工作原理。核心理念是"What I cannot create, I do not understand"。
|
||||
|
||||
## Covered Topics
|
||||
该方法覆盖22个技术领域:
|
||||
- 3D Renderer(3D渲染器)
|
||||
- Augmented Reality(增强现实)
|
||||
- BitTorrent Client(BitTorrent客户端)
|
||||
- Blockchain / Cryptocurrency(区块链/加密货币)
|
||||
- Bot(机器人)
|
||||
- Command-Line Tool(命令行工具)
|
||||
- Database(数据库)
|
||||
- Docker(容器)
|
||||
- Emulator / Virtual Machine(虚拟机)
|
||||
- Front-end Framework(前端框架)
|
||||
- Game(游戏)
|
||||
- Git(版本控制)
|
||||
- Network Stack(网络协议栈)
|
||||
- Neural Network(神经网络)
|
||||
- Operating System(操作系统)
|
||||
- Physics Engine(物理引擎)
|
||||
- Programming Language(编程语言)
|
||||
- Regex Engine(正则引擎)
|
||||
- Search Engine(搜索引擎)
|
||||
- Shell(终端)
|
||||
- Template Engine(模板引擎)
|
||||
- Text Editor(文本编辑器)
|
||||
- Visual Recognition System(视觉识别系统)
|
||||
- Voxel Engine(体素引擎)
|
||||
- Web Browser(浏览器)
|
||||
- Web Server(Web服务器)
|
||||
**Byox** (Build Your Own X) is a learning methodology that advocates for mastering programming and technology understanding by **rebuilding complex systems from scratch**. The guiding principle comes from physicist Richard Feynman:
|
||||
|
||||
## Learning Approach
|
||||
- 多语言实现:同一技术可用多种语言实现(C++、Python、JavaScript、Go、Rust等)
|
||||
- 手把手教程:step-by-step 形式的学习资源
|
||||
- 原理优先:不使用现成库,从底层原理实现
|
||||
> *"What I cannot create, I do not understand."*
|
||||
|
||||
## Related Concepts
|
||||
- [[Vibe Coding]] — 与 Byox 对比,Vibe Coding 是 AI 代写,Byox 是自己手写
|
||||
- [[深度工作]] — Byox 需要深度专注,符合深度工作的理念
|
||||
## Core Philosophy
|
||||
|
||||
Instead of passively consuming knowledge about how a technology works, practitioners:
|
||||
|
||||
1. **Choose a technology** they want to understand deeply
|
||||
2. **Study existing implementations** and documentation
|
||||
3. **Rebuild it from scratch** using a chosen programming language
|
||||
4. **Gain deep insight** into how it works internally
|
||||
|
||||
## Coverage
|
||||
|
||||
The Byox methodology covers **26 technology domains**:
|
||||
|
||||
- **Systems**: Operating System, Docker, Container
|
||||
- **Languages**: Programming Language, Compiler, Interpreter, Regex Engine
|
||||
- **Data**: Database, NoSQL, Key-Value Store
|
||||
- **Web**: Web Browser, Web Server, Search Engine
|
||||
- **Tools**: Git, Shell, Command-Line Tool, Text Editor, Template Engine
|
||||
- **Graphics**: 3D Renderer, Voxel Engine, Physics Engine
|
||||
- **AI/ML**: Neural Network, Visual Recognition
|
||||
- **Networks**: Network Stack, BitTorrent Client
|
||||
- **Entertainment**: Game, Emulator/Virtual Machine
|
||||
- **Other**: Blockchain/Cryptocurrency, Augmented Reality, Bot
|
||||
|
||||
## Resources
|
||||
|
||||
Primary resource: [[codecrafters-io/build-your-own-x]] — A curated collection of 500+ step-by-step tutorials
|
||||
|
||||
Complementary platform: [[CodeCrafters]] — Interactive challenges that guide learners through building technologies step by step
|
||||
|
||||
## Notable Examples
|
||||
|
||||
| Technology | Language | Resource |
|
||||
|------------|----------|----------|
|
||||
| Database | C | [Let's Build a Simple Database](https://cstack.github.io/db_tutorial/) |
|
||||
| OS | Rust | [Writing an OS in Rust](https://os.phil-opp.com/) |
|
||||
| Programming Language | Multiple | [Crafting Interpreters](http://www.craftinginterpreters.com/) |
|
||||
| Web Browser | Python | [Browser Engineering](https://browser.engineering/) |
|
||||
| Git | Python | [Write yourself a Git](https://wyag.thb.lt/) |
|
||||
| Docker | Go | [Build Your Own Container](https://www.infoq.com/articles/build-a-container-golang) |
|
||||
|
||||
## Why Byox Works
|
||||
|
||||
1. **Active Learning**: Building forces deep engagement
|
||||
2. **Hidden Complexity**: Reveals implementation details textbooks skip
|
||||
3. **Transferable Skills**: Generalizes to understanding other systems
|
||||
4. **Portfolio Building**: Creates tangible proof of understanding
|
||||
5. **Confidence**: Only truly knowing something if you can create it
|
||||
|
||||
38
wiki/concepts/Calendar-API.md
Normal file
38
wiki/concepts/Calendar-API.md
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: "Calendar API"
|
||||
type: concept
|
||||
tags: [google-workspace, api, calendar]
|
||||
---
|
||||
|
||||
## Definition
|
||||
Calendar API 是 Google 提供的编程接口,允许第三方应用程序通过 OAuth 2.0 认证访问 Google Calendar 日历服务,实现事件查询、创建、修改和删除等功能。
|
||||
|
||||
## Key Operations
|
||||
| 操作 | 描述 |
|
||||
|------|------|
|
||||
| events.list | 列出日历事件 |
|
||||
| events.get | 获取事件详情 |
|
||||
| events.insert | 创建日历事件 |
|
||||
| events.patch | 部分更新事件 |
|
||||
| events.delete | 删除事件 |
|
||||
| colors.get | 获取颜色配置 |
|
||||
|
||||
## Prerequisites for Access
|
||||
1. **Google Cloud Console** 中启用 Calendar API
|
||||
2. 配置 **OAuth 2.0 凭证**(桌面应用类型)
|
||||
3. 用户完成 OAuth 授权流程
|
||||
4. 添加**测试用户**(未验证应用场景)
|
||||
|
||||
## Common Error
|
||||
- `403 accessNotConfigured`:API 未启用
|
||||
- `403 accessDenied`:OAuth 未授权
|
||||
|
||||
## Related Concepts
|
||||
- [[OAuth]]:认证机制
|
||||
- [[Google-Cloud-Console]]:凭证配置
|
||||
- [[测试用户]]:绕过未验证应用限制
|
||||
- [[API-Enablement]]:启用 API 的操作
|
||||
|
||||
## Related Entities
|
||||
- [[Google]]:API 提供方
|
||||
- [[gog CLI]]:使用 Calendar API 的命令行工具
|
||||
@@ -1,33 +1,139 @@
|
||||
---
|
||||
title: "Docker Image"
|
||||
title: Docker Image
|
||||
type: concept
|
||||
tags: [docker, container, image]
|
||||
sources: [docker-images-transfer-guide, 如何传输Docker-images-并且在另一个Docker安装]
|
||||
last_updated: 2026-04-17
|
||||
tags: [docker, container, virtualization]
|
||||
last_updated: 2026-04-21
|
||||
---
|
||||
|
||||
## Summary
|
||||
Docker Image(Docker 镜像)是容器化平台的核心概念,是一个只读模板,包含应用程序及其运行时所需的全部依赖(代码、运行时、库、环境变量、配置文件等)。
|
||||
# Docker Image
|
||||
|
||||
## Definition
|
||||
用于创建 Docker 容器的只读模板,通过分层存储实现高效复用和传输。
|
||||
|
||||
## Key Attributes
|
||||
- **格式**:分层文件系统
|
||||
- **存储方式**:可导出为 tar 归档文件
|
||||
- **复用机制**:分层存储,多个镜像可共享基础层
|
||||
Docker Image(镜像)是一个轻量级、可执行的独立软件包,包含运行某个软件所需的所有内容:代码、运行时、系统工具、系统库和设置。镜像是 Docker 容器的基础模板。
|
||||
|
||||
## Use Cases
|
||||
- 应用程序打包和分发
|
||||
- 跨环境部署(开发、测试、生产)
|
||||
- 离线环境镜像迁移
|
||||
## Key Characteristics
|
||||
|
||||
### 不可变性(Immutable)
|
||||
|
||||
- 镜像一旦创建就不能修改
|
||||
- 对容器的修改只存在于容器层
|
||||
- 新修改通过创建新镜像实现
|
||||
|
||||
### 分层结构(Layered)
|
||||
|
||||
- 由多个只读层组成
|
||||
- 层可以复用,多个镜像共享基础层
|
||||
- 节省存储空间和传输带宽
|
||||
|
||||
### 可堆叠性(Stackable)
|
||||
|
||||
- 基于已有镜像构建新镜像
|
||||
- 使用 Dockerfile 描述构建过程
|
||||
- 每条指令创建新层
|
||||
|
||||
## Image 结构
|
||||
|
||||
```
|
||||
Dockerfile
|
||||
↓
|
||||
Image = [Layer 3: Application Code]
|
||||
[Layer 2: Dependencies]
|
||||
[Layer 1: Base OS]
|
||||
[Layer 0: BootFS]
|
||||
```
|
||||
|
||||
## Common Operations
|
||||
|
||||
### 查看镜像
|
||||
|
||||
```bash
|
||||
docker images
|
||||
docker image ls
|
||||
```
|
||||
|
||||
### 拉取镜像
|
||||
|
||||
```bash
|
||||
docker pull nginx:latest
|
||||
docker pull ubuntu:22.04
|
||||
```
|
||||
|
||||
### 删除镜像
|
||||
|
||||
```bash
|
||||
docker rmi nginx:latest
|
||||
docker image prune -a # 删除所有未使用镜像
|
||||
```
|
||||
|
||||
### 标签管理
|
||||
|
||||
```bash
|
||||
docker tag nginx:latest myregistry/nginx:v1.0
|
||||
```
|
||||
|
||||
## Image vs Container
|
||||
|
||||
| 特性 | Image | Container |
|
||||
|------|-------|-----------|
|
||||
| 状态 | 只读模板 | 可读写实例 |
|
||||
| 生命周期 | 持久 | 临时 |
|
||||
| 数量 | 可复用 | 可多实例 |
|
||||
| 修改 | 不可变 | 写入容器层 |
|
||||
|
||||
## Image Transfer
|
||||
|
||||
Docker 镜像可以在不同主机之间传输,常见方法:
|
||||
|
||||
### docker save/load(推荐)
|
||||
|
||||
```bash
|
||||
# 导出
|
||||
docker save -o image.tar nginx:latest
|
||||
|
||||
# 导入
|
||||
docker load < image.tar
|
||||
```
|
||||
|
||||
### docker export/import
|
||||
|
||||
```bash
|
||||
# 导出容器
|
||||
docker export -o container.tar container_id
|
||||
|
||||
# 导入为镜像
|
||||
docker import container.tar new_image:latest
|
||||
```
|
||||
|
||||
### Registry(云端)
|
||||
|
||||
```bash
|
||||
# 推送
|
||||
docker push myregistry/image:tag
|
||||
|
||||
# 拉取
|
||||
docker pull myregistry/image:tag
|
||||
```
|
||||
|
||||
## Related Concepts
|
||||
- [[Docker]]:容器化平台
|
||||
- [[Docker-Save]]:镜像导出命令
|
||||
- [[Docker-Load]]:镜像导入命令
|
||||
|
||||
## Connections
|
||||
- [[Docker]] ← 包含 ← [[Docker-Image]]
|
||||
- [[Docker-Image]] ← 可导出为 ← [[Docker-Save]]
|
||||
- [[Docker-Image]] ← 可导入为 ← [[Docker-Load]]
|
||||
- [[Docker-Save]]:镜像导出方法
|
||||
- [[Docker-Load]]:镜像导入方法
|
||||
- [[Docker-Container]]:镜像的运行实例
|
||||
- [[Dockerfile]]:镜像构建文件
|
||||
|
||||
## Relationships
|
||||
|
||||
- [[Docker-Image]] ← 构建 ← [[Dockerfile]]
|
||||
- [[Docker-Image]] ← 实例化 ← [[Docker-Container]]
|
||||
- [[Docker-Image]] ← transferred_via ← [[Docker-Save]]
|
||||
- [[Docker-Image]] ← transferred_via ← [[Docker-Load]]
|
||||
|
||||
## Related Entities
|
||||
|
||||
- [[entities/Docker.md]]
|
||||
|
||||
## Notes
|
||||
|
||||
- 镜像大小取决于基础系统和应用依赖
|
||||
- 多架构镜像可通过 manifest list 支持不同平台
|
||||
- 定期清理未使用镜像可释放存储空间
|
||||
|
||||
@@ -1,42 +1,96 @@
|
||||
---
|
||||
title: "Docker Load"
|
||||
title: Docker Load
|
||||
type: concept
|
||||
tags: [docker, image, import]
|
||||
sources: [docker-images-transfer-guide, 如何传输Docker-images-并且在另一个Docker安装]
|
||||
last_updated: 2026-04-17
|
||||
tags: [docker, container, image-transfer]
|
||||
last_updated: 2026-04-21
|
||||
---
|
||||
|
||||
## Summary
|
||||
Docker Load 是 Docker 命令行工具的导入命令,用于从 tar 归档文件还原 Docker 镜像。
|
||||
# Docker Load
|
||||
|
||||
## Definition
|
||||
从 tar 格式归档文件导入并还原 Docker 镜像的命令。
|
||||
|
||||
## Command Syntax
|
||||
`docker load` 是 Docker CLI 命令,用于从 tar 归档文件加载镜像到本地 Docker 镜像存储。与 `docker save` 配合使用,实现镜像的离线迁移。
|
||||
|
||||
## Syntax
|
||||
|
||||
```bash
|
||||
docker load < <input_file.tar>
|
||||
# 或
|
||||
docker load -i <input_file.tar>
|
||||
docker load [OPTIONS]
|
||||
```
|
||||
|
||||
## Examples
|
||||
### Options
|
||||
|
||||
| Option | Description |
|
||||
|--------|-------------|
|
||||
| `-i, --input` | 指定输入的 tar 文件(默认从 stdin 读取) |
|
||||
| `-q, --quiet` | 静默模式,减少输出 |
|
||||
|
||||
## Usage Examples
|
||||
|
||||
### 基本用法
|
||||
|
||||
```bash
|
||||
# 从 tar 文件导入镜像
|
||||
# 从文件加载
|
||||
docker load < nginx.tar
|
||||
|
||||
# 指定文件
|
||||
docker load -i images.tar
|
||||
|
||||
# 静默模式
|
||||
docker load -i images.tar -q
|
||||
```
|
||||
|
||||
### 典型工作流:从开发机接收镜像到 NAS
|
||||
|
||||
```bash
|
||||
# 在开发机上
|
||||
docker save -o xiaoya.tar xiaoyaliu/alist:latest
|
||||
|
||||
# 将 xiaoya.tar 复制到 NAS
|
||||
scp xiaoya.tar nas:/volume1/docker/images/
|
||||
|
||||
# 在 NAS 上加载
|
||||
docker load < xiaoya.tar
|
||||
|
||||
# 使用 -i 参数
|
||||
docker load -i xiaoya.tar
|
||||
# 验证
|
||||
docker images | grep xiaoya
|
||||
```
|
||||
|
||||
## Use Cases
|
||||
- 离线环境镜像导入
|
||||
- 镜像备份恢复
|
||||
- 跨主机镜像迁移
|
||||
### 使用 SSH 管道直接传输
|
||||
|
||||
```bash
|
||||
# 在目标机器上执行(镜像从远程机器流式传输)
|
||||
ssh user@source-host 'docker save nginx:latest' | docker load
|
||||
```
|
||||
|
||||
## Related Concepts
|
||||
- [[Docker-Image]]:被导入的镜像对象
|
||||
- [[Docker-Save]]:对应的导出命令
|
||||
|
||||
## Connections
|
||||
- [[Docker-Save]]:对应的导出命令
|
||||
- [[Docker-Image]]:被导入的目标
|
||||
- [[Docker-TAR-Archive]]:输入的归档文件格式
|
||||
|
||||
## Relationships
|
||||
|
||||
- [[Docker-Image]] ← 导入为 ← [[Docker-Load]]
|
||||
- [[Docker-Load]] ← 依赖 ← [[Docker-Save]]
|
||||
|
||||
## Key Points
|
||||
|
||||
1. **完整还原**:从 tar 文件完整恢复镜像,包括所有层和元数据
|
||||
2. **自动识别**:自动识别 tar 文件中的镜像名称和标签
|
||||
3. **可重复导入**:同一镜像可多次导入(会创建重复条目,需配合 `docker rmi`)
|
||||
4. **ID 匹配**:如果镜像 ID 已存在,会分配新的 ID
|
||||
|
||||
## Comparison with Alternatives
|
||||
|
||||
| 特性 | docker load | docker import |
|
||||
|------|-------------|---------------|
|
||||
| 数据源 | docker save 输出 | docker export 输出 |
|
||||
| 内容 | 完整镜像(含层) | 容器文件系统快照 |
|
||||
| 元数据 | 完整保留 | 不保留 |
|
||||
| 适用场景 | 镜像迁移 | 容器基础创建 |
|
||||
|
||||
## Notes
|
||||
|
||||
- 导入后的镜像默认标签可能为 `<none>:<none>`,需要手动 tag
|
||||
- 使用 `docker tag` 命令为导入的镜像设置标签
|
||||
- 大镜像加载可能需要较长时间,显示进度条
|
||||
|
||||
@@ -1,39 +1,76 @@
|
||||
---
|
||||
title: "Docker Save"
|
||||
title: Docker Save
|
||||
type: concept
|
||||
tags: [docker, image, export]
|
||||
sources: [docker-images-transfer-guide, 如何传输Docker-images-并且在另一个Docker安装]
|
||||
last_updated: 2026-04-17
|
||||
tags: [docker, container, image-transfer]
|
||||
last_updated: 2026-04-21
|
||||
---
|
||||
|
||||
## Summary
|
||||
Docker Save 是 Docker 命令行工具的导出命令,用于将一个或多个镜像打包成 tar 归档文件,便于离线传输和备份。
|
||||
# Docker Save
|
||||
|
||||
## Definition
|
||||
将 Docker 镜像导出为 tar 格式归档文件的命令。
|
||||
|
||||
## Command Syntax
|
||||
`docker save` 是 Docker CLI 命令,用于将一个或多个镜像导出为 tar 归档文件(`.tar`),实现镜像的离线存储和传输。
|
||||
|
||||
## Syntax
|
||||
|
||||
```bash
|
||||
docker save -o <output_file.tar> <image_name>[:<tag>]
|
||||
docker save [OPTIONS] IMAGE [IMAGE...]
|
||||
```
|
||||
|
||||
## Examples
|
||||
### Options
|
||||
|
||||
| Option | Description |
|
||||
|--------|-------------|
|
||||
| `-o, --output` | 指定输出文件名(默认输出到 stdout) |
|
||||
|
||||
## Usage Examples
|
||||
|
||||
### 基本用法
|
||||
|
||||
```bash
|
||||
# 导出单个镜像
|
||||
docker save -o xiaoya.tar xiaoyaliu/alist
|
||||
docker save -o nginx.tar nginx:latest
|
||||
|
||||
# 导出多个镜像
|
||||
docker save -o images.tar image1:image2
|
||||
docker save -o images.tar nginx:latest redis:alpine postgres:15
|
||||
|
||||
# 使用管道传输
|
||||
docker save nginx:latest | ssh user@remote-host 'docker load'
|
||||
```
|
||||
|
||||
## Use Cases
|
||||
- 离线环境镜像迁移
|
||||
- 镜像备份和归档
|
||||
- 跨网络隔离环境传输
|
||||
### 典型工作流:将镜像从开发机传输到 NAS
|
||||
|
||||
```bash
|
||||
# 在开发机上
|
||||
docker save -o xiaoya.tar xiaoyaliu/alist:latest
|
||||
|
||||
# 将 xiaoya.tar 复制到 NAS(通过 SMB/SCP)
|
||||
scp xiaoya.tar nas:/volume1/docker/images/
|
||||
|
||||
# 在 NAS 上
|
||||
docker load < xiaoya.tar
|
||||
```
|
||||
|
||||
## Related Concepts
|
||||
- [[Docker-Image]]:被导出的镜像对象
|
||||
- [[Docker-Load]]:对应的导入命令
|
||||
|
||||
## Connections
|
||||
- [[Docker-Load]]:对应的导入命令
|
||||
- [[Docker-Image]]:被导出的对象
|
||||
- [[Docker-TAR-Archive]]:生成的归档文件格式
|
||||
|
||||
## Relationships
|
||||
|
||||
- [[Docker-Image]] ← 导出为 ← [[Docker-Save]]
|
||||
- [[Docker-Save]] → 输出 → [[Docker-TAR-Archive]]
|
||||
|
||||
## Key Points
|
||||
|
||||
1. **保留镜像层**:完整保留镜像的分层结构
|
||||
2. **保留元数据**:包括 CMD、ENTRYPOINT、ENV、LABEL 等
|
||||
3. **可移植性**:生成的 tar 文件可在任何 Docker 环境中导入
|
||||
4. **适用场景**:离线环境迁移、备份、镜像分发
|
||||
|
||||
## Notes
|
||||
|
||||
- 文件大小可能较大(包含所有镜像层)
|
||||
- 多次 save 同一镜像会重复包含所有层
|
||||
- 可配合 `docker load` 实现完整的镜像迁移闭环
|
||||
|
||||
37
wiki/concepts/Docker-TAR-Archive.md
Normal file
37
wiki/concepts/Docker-TAR-Archive.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# Docker TAR Archive
|
||||
|
||||
## Definition
|
||||
|
||||
Docker TAR Archive (`.tar`) 是 Docker 镜像的离线分发格式,通过 `docker save` 命令将镜像及其所有层打包成单个 TAR 文件。
|
||||
|
||||
## Source References
|
||||
|
||||
- [[sources/如何传输Docker-images-并且在另一个Docker安装.md]]
|
||||
|
||||
## Related Concepts
|
||||
|
||||
- [[concepts/Docker-Image.md]] — TAR 文件中包含的 Docker 镜像
|
||||
|
||||
## Usage
|
||||
|
||||
### 打包镜像
|
||||
|
||||
```bash
|
||||
docker save -o <output.tar> <image_name>:<tag>
|
||||
```
|
||||
|
||||
### 导入镜像
|
||||
|
||||
```bash
|
||||
docker load < <input.tar>
|
||||
```
|
||||
|
||||
## 适用场景
|
||||
|
||||
- **离线环境**:无法访问 Docker Hub 的私有网络
|
||||
- **跨设备迁移**:在不同 Docker 环境之间传输镜像
|
||||
- **备份恢复**:保存镜像的离线副本
|
||||
|
||||
## 标签
|
||||
|
||||
#docker #offline #migration
|
||||
38
wiki/concepts/Drive-API.md
Normal file
38
wiki/concepts/Drive-API.md
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: "Drive API"
|
||||
type: concept
|
||||
tags: [google-workspace, api, cloud-storage]
|
||||
---
|
||||
|
||||
## Definition
|
||||
Drive API 是 Google 提供的编程接口,允许第三方应用程序通过 OAuth 2.0 认证访问 Google Drive 云端硬盘服务,实现文件搜索、下载、上传和管理等功能。
|
||||
|
||||
## Key Operations
|
||||
| 操作 | 描述 |
|
||||
|------|------|
|
||||
| files.list | 列出文件 |
|
||||
| files.get | 获取文件元数据 |
|
||||
| files.create | 上传文件 |
|
||||
| files.update | 更新文件 |
|
||||
| files.delete | 删除文件 |
|
||||
| drive.search | 搜索文件 |
|
||||
|
||||
## Prerequisites for Access
|
||||
1. **Google Cloud Console** 中启用 Drive API
|
||||
2. 配置 **OAuth 2.0 凭证**(桌面应用类型)
|
||||
3. 用户完成 OAuth 授权流程
|
||||
4. 添加**测试用户**(未验证应用场景)
|
||||
|
||||
## Common Error
|
||||
- `403 accessNotConfigured`:API 未启用
|
||||
- `403 accessDenied`:OAuth 未授权
|
||||
|
||||
## Related Concepts
|
||||
- [[OAuth]]:认证机制
|
||||
- [[Google-Cloud-Console]]:凭证配置
|
||||
- [[测试用户]]:绕过未验证应用限制
|
||||
- [[API-Enablement]]:启用 API 的操作
|
||||
|
||||
## Related Entities
|
||||
- [[Google]]:API 提供方
|
||||
- [[gog CLI]]:使用 Drive API 的命令行工具
|
||||
26
wiki/concepts/Event-Sourcing.md
Normal file
26
wiki/concepts/Event-Sourcing.md
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
title: "Event Sourcing"
|
||||
type: concept
|
||||
tags: [architecture, event-driven, state-management]
|
||||
---
|
||||
|
||||
## Summary
|
||||
Event Sourcing(事件溯源)是一种软件架构模式,通过存储所有状态变更事件而非仅存储当前状态来重建系统历史。
|
||||
|
||||
## Definition
|
||||
事件溯源将应用状态的所有变更存储为一系列不可变的事件对象。通过重放这些事件,可以重建任意时间点的系统状态。
|
||||
|
||||
## Key Principles
|
||||
- **事件即事实**:状态变更以事件形式持久化,而非覆盖最终状态
|
||||
- **完整审计日志**:天然具备完整的审计追踪能力
|
||||
- **时间旅行调试**:可以重放事件序列重现历史状态
|
||||
- **解耦读写**:写操作存储事件,读操作通过事件投影计算状态
|
||||
|
||||
## Relationship to Project State Management
|
||||
Project State Management 系统将 Event Sourcing 模式应用于项目管理:
|
||||
- 每个项目事件(progress、blocker、decision、pivot)作为不可变事件存储
|
||||
- 项目当前状态通过事件投影计算
|
||||
- 决策上下文通过查询事件历史恢复
|
||||
|
||||
## External Links
|
||||
- [Event Sourcing Pattern - Martin Fowler](https://martinfowler.com/eaaDev/EventSourcing.html)
|
||||
27
wiki/concepts/Git-集成.md
Normal file
27
wiki/concepts/Git-集成.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: "Git 集成"
|
||||
type: concept
|
||||
tags: [git, automation, project-management]
|
||||
---
|
||||
|
||||
## Summary
|
||||
Git 集成是指将代码提交自动关联到项目事件和任务的机制。
|
||||
|
||||
## Definition
|
||||
通过扫描 Git 提交历史,基于分支名称或提交信息自动将代码变更关联到对应项目,实现代码变更与项目进度的可追溯性。
|
||||
|
||||
## Key Capabilities
|
||||
- **自动提交扫描**:定期扫描 Git 提交日志
|
||||
- **项目关联**:基于分支名或提交消息关联到项目
|
||||
- **变更追踪**:记录代码变更与项目事件的对应关系
|
||||
- **可追溯性**:支持从代码变更追溯到业务决策
|
||||
|
||||
## Implementation
|
||||
Project State Management 系统通过 GitHub CLI (gh) 实现:
|
||||
```bash
|
||||
gh run list --limit 50 --since "24 hours ago"
|
||||
gh api repos/{owner}/{repo}/commits
|
||||
```
|
||||
|
||||
## Relationship to Project State Management
|
||||
Git 集成是 Project State Management 的核心功能之一,通过代码变更与项目事件的双向关联实现端到端可追溯性。
|
||||
38
wiki/concepts/Gmail-API.md
Normal file
38
wiki/concepts/Gmail-API.md
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: "Gmail API"
|
||||
type: concept
|
||||
tags: [google-workspace, api, email]
|
||||
---
|
||||
|
||||
## Definition
|
||||
Gmail API 是 Google 提供的编程接口,允许第三方应用程序通过 OAuth 2.0 认证访问 Gmail 邮件服务,实现搜索、读取、发送、管理邮件等功能。
|
||||
|
||||
## Key Operations
|
||||
| 操作 | 描述 |
|
||||
|------|------|
|
||||
| messages.list | 列出邮件列表 |
|
||||
| messages.get | 获取邮件详情 |
|
||||
| messages.send | 发送邮件 |
|
||||
| messages.modify | 修改邮件标签 |
|
||||
| drafts.create | 创建草稿 |
|
||||
| drafts.send | 发送草稿 |
|
||||
|
||||
## Prerequisites for Access
|
||||
1. **Google Cloud Console** 中启用 Gmail API
|
||||
2. 配置 **OAuth 2.0 凭证**(桌面应用类型)
|
||||
3. 用户完成 OAuth 授权流程
|
||||
4. 添加**测试用户**(未验证应用场景)
|
||||
|
||||
## Common Error
|
||||
- `403 accessNotConfigured`:API 未在 Google Cloud Console 中启用
|
||||
- `403 accessDenied`:用户未完成 OAuth 授权
|
||||
|
||||
## Related Concepts
|
||||
- [[OAuth]]:认证机制
|
||||
- [[Google-Cloud-Console]]:凭证配置
|
||||
- [[测试用户]]:绕过未验证应用限制
|
||||
- [[API-Enablement]]:启用 API 的操作
|
||||
|
||||
## Related Entities
|
||||
- [[Google]]:API 提供方
|
||||
- [[gog CLI]]:使用 Gmail API 的命令行工具
|
||||
28
wiki/concepts/每日站会摘要.md
Normal file
28
wiki/concepts/每日站会摘要.md
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: "每日站会摘要"
|
||||
type: concept
|
||||
tags: [project-management, automation, standup]
|
||||
---
|
||||
|
||||
## Summary
|
||||
每日站会摘要是由 AI Agent 自动生成的每日项目进展报告,基于项目事件和 Git 提交记录。
|
||||
|
||||
## Definition
|
||||
传统站会需要手动汇报,AI 驱动的每日站会摘要系统自动从项目状态数据库和 Git 提交日志中提取信息,生成结构化报告。
|
||||
|
||||
## Key Components
|
||||
- **昨日进展**:从事件日志中提取完成的任务
|
||||
- **今日计划**:基于当前阶段和近期对话
|
||||
- **当前阻碍**:列出所有 open 状态的阻碍项
|
||||
- **Git 提交摘要**:过去 24 小时的代码提交记录
|
||||
|
||||
## Automation Trigger
|
||||
通过 Cron Jobs 在每日固定时间自动执行:
|
||||
1. 扫描过去 24 小时的 Git 提交
|
||||
2. 关联提交到对应项目
|
||||
3. 查询事件日志获取进展
|
||||
4. 查询阻碍项状态
|
||||
5. 生成并发送摘要到协作频道
|
||||
|
||||
## Relationship to Project State Management
|
||||
每日站会是 Project State Management 系统的重要输出,通过保留事件历史和 Git 集成实现自动化。
|
||||
41
wiki/concepts/测试用户.md
Normal file
41
wiki/concepts/测试用户.md
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
title: "测试用户"
|
||||
type: concept
|
||||
tags: [google-oauth, security, testing]
|
||||
---
|
||||
|
||||
## Definition
|
||||
测试用户(Test User)是 Google OAuth 中允许未经验证(unverified)应用进行测试的 Google 账号。通过在 Google Cloud Console 的 OAuth 客户端配置中添加测试用户,可以绕过"此应用未经 Google 验证"的安全限制。
|
||||
|
||||
## 问题背景
|
||||
|
||||
首次授权未验证应用时,Google 会显示:
|
||||
|
||||
> 此应用未经 Google 验证
|
||||
> 此应用请求访问您 Google 账号中的敏感信息。在开发者让该应用通过 Google 验证之前,请勿使用该应用。
|
||||
|
||||
## 添加测试用户步骤
|
||||
1. 打开 [Google Cloud Console - Credentials](https://console.cloud.google.com/apis/credentials)
|
||||
2. 找到目标 OAuth 客户端 ID,点击进入详情
|
||||
3. 找到 **「目标对象」** → **「测试用户」** 部分
|
||||
4. 点击 **「添加用户」**
|
||||
5. 输入测试用 Google 邮箱地址
|
||||
6. 保存
|
||||
|
||||
## 限制
|
||||
- 仅限添加的测试用户可授权
|
||||
- 仅用于开发/测试用途
|
||||
- 生产环境需通过 Google 验证流程
|
||||
|
||||
## 典型应用场景
|
||||
- **gog CLI** 配置:首次配置时需要添加测试用户才能完成 OAuth 授权
|
||||
- 其他第三方 Google Workspace CLI 工具
|
||||
|
||||
## 相关概念
|
||||
- [[OAuth]]:开放授权协议
|
||||
- [[Google-Cloud-Console]]:管理测试用户的控制台
|
||||
- [[API-Enablement]]:另一层授权配置
|
||||
|
||||
## 相关实体
|
||||
- [[Google]]:OAuth 服务提供方
|
||||
- [[gog CLI]]:需要测试用户配置的 CLI 工具
|
||||
@@ -1,28 +1,114 @@
|
||||
---
|
||||
title: "防彈筆記法"
|
||||
type: concept
|
||||
tags: [knowledge-management, pkm, output-driven]
|
||||
---
|
||||
# 防彈筆記法
|
||||
|
||||
## Definition
|
||||
任务导向的笔记方法,强调为输出而设计,让每张笔记都能回答"下一步是什么"。
|
||||
|
||||
防彈筆記法(Bullet-proof Notes)是一種任務導向的個人知識管理系統,由電腦玩物 esor 提出。其核心理念是:**每個任務一則筆記(SSOT)**,把目標、行動、決策、依據、變更都寫回同一張筆記。
|
||||
|
||||
## Core Principles
|
||||
- **任务导向**:每个任务一则笔记(SSOT)
|
||||
- **动态演化**:笔记随任务推进持续更新
|
||||
- **简单精准**:把目标、行动、决策、依据、变更都写回同一张
|
||||
|
||||
## 5-Layer Structure(从杂到精)
|
||||
1. **任務導向** — 筆記是為了產出,不是為了收藏
|
||||
2. **動態演化** — 筆記隨任務推進持續更新
|
||||
3. **簡單精準** — 用最少的結構承載最大的價值
|
||||
4. **SSOT(Single Source of Truth)** — 每個任務的完整資訊在一張筆記
|
||||
|
||||
1. **收件匣**:先丟进来,不分类;每日或隔日批次清空
|
||||
2. **暂时笔记**:把素材改写成"问题/关键资讯/下一步"
|
||||
3. **专案目标笔记**:一个任务一则,聚焦目标、下一步、决策记录
|
||||
4. **资源/经验笔记**:将踩雷与做法沉淀成可重用清单
|
||||
5. **永久任务笔记(SOP)**:把重复流程标准化
|
||||
## System Architecture
|
||||
|
||||
## Success Criteria
|
||||
- 打开任务笔记就知道现在要做哪一步
|
||||
- 周检视只需翻看"那些任务笔记",不用重找来源
|
||||
### 5-Layer Structure
|
||||
|
||||
## Source
|
||||
- 本文作为 [[AI-简报工作流]] 的示例主题出现
|
||||
```
|
||||
┌─────────────────────────────────────────────┐
|
||||
│ Layer 5: 永久任務筆記(SOP) │
|
||||
│ → 把重複流程標準化 │
|
||||
├─────────────────────────────────────────────┤
|
||||
│ Layer 4: 資源/經驗筆記 │
|
||||
│ → 將過程踩雷與做法沉澱成可重用清單 │
|
||||
├─────────────────────────────────────────────┤
|
||||
│ Layer 3: 專案目標筆記(任務一則) │
|
||||
│ → 聚焦目標、下一步、決策紀錄 │
|
||||
├─────────────────────────────────────────────┤
|
||||
│ Layer 2: 暫時筆記 │
|
||||
│ → 把素材改寫成「問題/關鍵資訊/下一步」 │
|
||||
├─────────────────────────────────────────────┤
|
||||
│ Layer 1: 收件匣 │
|
||||
│ → 先丟進來,不分類;每日或隔日批次清空 │
|
||||
└─────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## Task Note Template
|
||||
|
||||
### Header
|
||||
- 任務名稱(動詞開頭)
|
||||
- 完成條件(可驗收)
|
||||
- 截止日
|
||||
|
||||
### Body (3 Columns)
|
||||
|
||||
| 欄位 | 內容 |
|
||||
|------|------|
|
||||
| 決策紀錄 | [YYYY-MM-DD] 結論+依據連結 |
|
||||
| 下一步×3 | 動詞+產出|Owner|Deadline |
|
||||
| 參考片段 | 只留「可直接引用的 3 點」 |
|
||||
|
||||
### Footer
|
||||
- 變更/風險:本週狀況、阻礙與備案(各 1–2 行)
|
||||
- 復盤區:本次做法摘要、成效與失誤、下次改進
|
||||
|
||||
## Key Practices
|
||||
|
||||
### 收集:輸出導向的收法
|
||||
- 每個高亮配**「我怎麼用」1 句**
|
||||
- 每篇文章只留下可用片段×3
|
||||
- 作業節奏:看到就「一鍵收件匣」→每日或隔日批次清空
|
||||
|
||||
### 會議記錄:只保留「會帶來動作」的東西
|
||||
- 決策表:議題|結論|依據連結|備案
|
||||
- 行動表:Action|Owner|驗收標準|Deadline|所屬專案連結
|
||||
- 24 小時分流規則:行動嵌回各自專案筆記
|
||||
|
||||
### 復盤:把「心得」改寫成「下一次會做的事」
|
||||
- 本次做法摘要(≤3 句)
|
||||
- 成效&失誤(各 1–2 點)
|
||||
- 下次改進×1–3(動詞+驗收條件)
|
||||
- 可複用規則(1 句)
|
||||
|
||||
## Success Metrics
|
||||
|
||||
| 指標 | 目標 |
|
||||
|------|------|
|
||||
| 找資料時間 | 逐步減少 |
|
||||
| 下一步明確率 | 每個任務都有「下一步×1」 |
|
||||
| 會議落地率 | 7 天內完成比例 > 70% |
|
||||
| 行動卡 24h 歸位率 | > 90% |
|
||||
|
||||
## 7-Day Action Plan
|
||||
|
||||
| Day | 任務 |
|
||||
|-----|------|
|
||||
| D1-D2 | 選 3 個進行中的任務 → 各建任務筆記 |
|
||||
| D3-D4 | 把最近的 1 場會議,改用「決策表+行動表」並在 24h 分流 |
|
||||
| D5 | 清空收件匣,為 3 篇文章各寫「可用片段×3+我怎麼用」 |
|
||||
| D6 | 每日 3 分鐘微復盤,週末 20 分鐘沉澱 1 份 SOP |
|
||||
| D7 | 檢視三個數字:找資料時間、下一步明確率、會議落地率 |
|
||||
|
||||
## Tools & AI Integration
|
||||
|
||||
防彈筆記法可用任何工具實現:
|
||||
- Notion
|
||||
- Google 文件
|
||||
- Obsidian
|
||||
- Evernote
|
||||
|
||||
### AI 三招
|
||||
1. 把零散片段改寫成「下一步×3」
|
||||
2. 把會議討論萃成決策表+行動表
|
||||
3. 把經驗重構成 SOP/模板並附上原連結
|
||||
|
||||
## Related Concepts
|
||||
|
||||
- [[知識管理]] — 筆記法的上位概念
|
||||
- [[AI-簡報流程]] — 結合防彈筆記製作簡報
|
||||
- [[任務管理]] — 任務追蹤與執行
|
||||
|
||||
## References
|
||||
|
||||
- [[jiao-xue-chatgpt-xian-zuo-zhi-shi-zheng-li-zai-rang-canva-gamma-ai-shu-chu-jian-bao|教學:ChatGPT 先做知識整理,再讓 Canva、 Gamma AI 輸出簡報]] — 防彈筆記法作為案例貫穿全文
|
||||
|
||||
Reference in New Issue
Block a user