JavaScript 入门教程
1. JavaScript 是什么?能用来做什么
JavaScript(简称 JS)是一门运行在浏览器和**服务器(Node.js)**上的编程语言。
常见用途:
Web 前端交互:按钮点击、表单校验、动画、与后端接口通信
Node.js 后端:写 API 服务、脚本工具、自动化任务
桌面与跨端:Electron、Tauri 等
2. 准备环境:浏览器控制台 / Node.js
2.1 浏览器控制台
打开任意网页,按 F12 → Console,就能直接运行 JS。
试试:
console.log('Hello JavaScript');
2.2 Node.js
安装 Node.js 后,在终端运行:
node -v
然后进入交互式 REPL:
node
在里面输入:
console.log('Hello from Node');
3. 第一个 JS 程序
创建文件 hello.js:
const message = 'Hello JavaScript';
console.log(message);
运行:
node hello.js
4. 基础语法: ...
Claude 教程:Claude Office Visualizer(Claude Code 办公室可视化)安装与使用指南
1. Claude Office Visualizer 是什么?适用场景
Claude Office Visualizer(下文简称 Office Visualizer)是一个实时像素风“办公室”可视化界面,用来把 Claude Code 的执行过程可视化:
“Boss” 角色:主 Claude agent
“Employee” 角色:Claude Code 生成/派发的 subagent
通过实时事件流,你可以看到:接收指令、执行任务、工具调用、后台任务、上下文压缩(compaction)等状态变化
典型用途:
直播/录屏展示 Claude Code 的多 agent 工作流
调试:快速感知 agent 是否在工作、是否卡在某一步
团队演示:把抽象的 agent 行为变成“看得见”的进度与节奏
上游项目:https://github.com/paulrobello/claude-office
2. 工作原理(30 秒理解)
Office Visualizer 由三部分组成:
Claude Code:你日常运行的 claude ... 命令
...
Ollama 工具使用教程:本地部署大模型、模型推荐、与 OpenAI/Claude 混用、模型库位置自定义
1. Ollama 是什么?适合谁用
Ollama 是一个用于**在本地拉取、运行和管理大语言模型(LLM)**的工具。它把模型下载、量化文件管理、推理服务(HTTP API)、命令行交互整合到一个工作流里。
适合:
需要离线/内网使用模型(隐私数据、本地知识库、代码仓库等)
想要低成本多模型切换、做对比评测
想在本地给 IDE、脚本、自动化工具提供一个可用的 LLM 服务
不适合/需要注意:
Ollama 主要聚焦 LLM / 多模态理解模型(如看图问答)。
图片生成(扩散模型)、**语音生成(TTS)**通常不直接由 Ollama 承载;更常见做法是“LLM 负责写提示词/脚本 + 专用生成工具负责出图/出声”。本文会给出组合方案。
2. 安装与基本命令
2.1 安装
macOS:官网下载或用 Homebrew(以官方文档为准)
Linux:官网下载或用官方安装脚本(以官方文档为准)
Windows:官网下载 MSI 安装
安装后确认版本:
ollama -v
2.2 拉取与运行
拉取模型:
ollama pull llama3 ...
Lua 教程 - 第十二章:最佳实践与优化
第十二章:最佳实践与优化
写出“能运行”的代码只是第一步,写出“高效、易读、易维护”的代码才是我们的目标。在本章,我们将总结 Lua 编程中的一些最佳实践和性能优化技巧。
12.1 代码风格与规范
良好的代码风格有助于团队协作和后期维护。
1. 局部变量优先
始终使用 local 声明变量,除非你确实需要全局变量。
性能:局部变量的访问速度比全局变量快得多。
安全:避免污染全局命名空间,减少变量冲突。
GC:局部变量的作用域结束时,引用解除,有利于垃圾回收。
-- Bad
count = 0
function inc() count = count + 1 end
-- Good
local count = 0
local function inc() count = count + 1 end
2. 命名约定
变量/函数:小写字母开头,驼峰命名 (e.g., userName, calculateTotal) 或下划线分隔 (e.g., user_name, calculate_total)。保持一致即可。
常量:全大写,下划线分隔 (e.g., ...
Lua 教程 - 第十一章:Lua 实战项目
第十一章:Lua 实战项目
纸上得来终觉浅,绝知此事要躬行。学习了这么多理论知识,是时候通过一些实战项目来巩固我们的 Lua 技能了。
本章将通过三个难度递增的小项目,带领大家综合运用前面学到的知识:
命令行计算器:练习字符串解析和基本的数学运算。
文本统计工具:练习文件 I/O、字符串匹配和表的操作。
简单的配置文件解析器:练习表的结构化数据处理。
11.1 项目一:命令行计算器
功能描述
用户在命令行输入简单的四则运算表达式(如 10 + 20 * 3),程序计算并输出结果。为了简化,我们暂时只支持两个操作数和一个运算符。
代码实现
-- calculator.lua
function calculate(n1, op, n2)
if op == "+" then
return n1 + n2
elseif op == "-" then
return n1 - n2
elseif op == "*" then
return n1 * n2
elseif op == "/" th ...
Rust 最佳实践
概述
本教程总结了 Rust 编程的最佳实践,帮助你编写更安全、高效、可维护的 Rust 代码。
代码风格
命名规范
// 变量和函数使用蛇形命名法(snake_case)
let user_name = "Alice";
fn calculate_sum(a: i32, b: i32) -> i32 {
a + b
}
// 类型使用帕斯卡命名法(PascalCase)
struct UserAccount {
name: String,
age: u32,
}
enum Color {
Red,
Green,
Blue,
}
// 常量使用全大写蛇形命名法(SCREAMING_SNAKE_CASE)
const MAX_CONNECTIONS: usize = 100;
// 特质使用帕斯卡命名法
trait Drawable {
fn draw(&self);
}
代码格式化
# 使用 rustfmt 格式化代码
carg ...
Lua 教程 - 第十章:Lua 与 C 交互
第十章:Lua 与 C 交互
Lua 的设计目标之一就是作为一种嵌入式语言,方便地与 C/C++ 等宿主语言进行交互。Lua 提供了丰富的 C API,允许我们在 C 代码中操作 Lua 状态机、调用 Lua 函数、读写 Lua 变量,反之亦然。
本章将介绍 Lua C API 的基础知识,包括栈操作、调用 Lua 函数以及在 C 中编写可供 Lua 调用的函数。
10.1 Lua C API 基础:虚拟栈
Lua 与 C 之间的数据交换是通过一个抽象的栈(Stack)来进行的。
Lua 将数据压入栈中,C 从栈中取出数据。
C 将数据压入栈中,Lua 从栈中取出数据。
栈索引
栈中的每个元素都有一个索引。
正索引:从栈底开始,1 表示栈底第一个元素,2 表示第二个,依此类推。
负索引:从栈顶开始,-1 表示栈顶元素,-2 表示栈顶下面的那个,依此类推。
常用栈操作 API
lua_pushnil(L): 压入 nil。
lua_pushboolean(L, b): 压入布尔值。
lua_pushnumber(L, n): 压入数字。
l ...
Rust 项目实战
概述
本教程将通过一个完整的实战项目,综合运用前面学到的 Rust 知识。我们将构建一个简单的命令行工具——任务管理器(Todo 应用)。
项目规划
功能需求
添加任务
列出所有任务
标记任务完成
删除任务
将任务保存到文件
从文件加载任务
项目结构
todo_app/
├── Cargo.toml
├── src/
│ ├── main.rs
│ ├── task.rs
│ ├── storage.rs
│ └── cli.rs
└── tasks.json
创建项目
初始化项目
cargo new todo_app
cd todo_app
配置 Cargo.toml
[package]
name = "todo_app"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
clap = { ...

