精选分类

课程笔记

文章列表

5.3k5 分钟

整理记录这台 MacBook Pro 的软件环境与配置,方便日后重装恢复或迁移参考。 提示:本文由 AI 整理,仅供参考 # 硬件概况 项目 信息 型号 MacBook Pro (MacBookPro18,3) 芯片 Apple M1 Pro CPU 核心 8 核(6 性能 + 2 能效) 内存 16 GB 硬盘 494 GB SSD 系统 macOS 12.7.6 Monterey # 已安装的 APP # 开发工具 Visual Studio Code Cursor Codex (CLI) Docker FileZilla Postman Mo
8.4k8 分钟

Homebrew 是 macOS 上最流行的包管理器,但随着日常使用中不断安装各种工具和库,系统中难免会积累大量不再需要的依赖包。本文将系统性地介绍如何查看依赖关系、理解包的分类与安装机制,并提供一套完整的清理策略,帮助你维护一个干净高效的开发环境。 提示:本文由 AI 根据对话历史整理,仅供参考 # 查看依赖关系的常用命令 在清理之前,首先需要理清包与包之间的依赖关系。Homebrew 提供了几个非常实用的命令来完成这项工作。 # 树状查看所有已安装包的依赖 brew deps --installed --tree 以树状图形式列出所有已安装的 Formula 及其各自的依赖,适合全局概
14k13 分钟

macOS 的家目录下总是藏着大量以 . 开头的隐藏文件和文件夹。对于长期使用 Mac 进行开发的用户来说,这些文件夹日积月累,可能占据数 GB 甚至数十 GB 的磁盘空间。本文将对家目录下常见的隐藏文件夹进行全面梳理,按来源分类说明每个文件夹的用途、占用空间以及是否可以安全删除,帮助你在系统清理或升级前做出明智的决定。 如果你正在准备 macOS 系统升级或深度清理,建议结合 macOS 系统深度清理与升级准备 一文一起阅读。 提示:本文由 AI 根据对话历史整理,仅供参考 # 为什么家目录有这么多隐藏文件夹 这源自 Unix/Linux 系统的 Dotfiles 传统。在 U
6.1k6 分钟

macOS 上的 Python 环境管理一直是令人头疼的问题:系统自带的 Python 删不掉,Homebrew 安装的 Python 被各种工具锁定,全局依赖与项目依赖纠缠不清。本文将梳理 macOS 上 Python 环境的完整治理路径——从理解系统保护机制,到清理 Homebrew 遗留依赖,最终迁移到现代化的 uv 工具链。 提示:本文由 AI 根据对话历史整理,仅供参考 # 系统 Python:SIP 保护机制解析 当你在 /usr/bin 目录下尝试删除 python3 时,终端会弹出这样一条警告: override rwxr-xr-x root/
11k10 分钟

macOS 使用久了,系统中难免积累大量不再需要的开发工具残留、过时的包管理器文件以及各类缓存。本文将系统性地介绍如何对 macOS 进行深度清理,并为系统升级做好准备。无论你是从 Monterey 升级到更新的系统版本,还是单纯想让 Mac 恢复清爽状态,这份指南都能帮到你。 关于 Homebrew 包的依赖管理与清理,可以参考 Homebrew 包管理与依赖清理指南。关于家目录下大量隐藏文件的说明,可以参考 macOS 家目录隐藏文件完全解析。 提示:本文由 AI 根据对话历史整理,仅供参考 # MacPorts 完整清理与卸载步骤 如果你已经从 MacPorts 切换到 Homebr
9.9k9 分钟

在 Mac ARM (Apple Silicon) 上搭建 Node.js 开发环境,版本管理器和包管理器的选择至关重要。本文将系统地介绍如何使用 fnm 管理 Node.js 版本、通过 Corepack 启用 pnpm,并完成从 Yarn 到 pnpm 的完整迁移流程。 提示:本文由 AI 根据对话历史整理,仅供参考 # fnm 安装方式对比:Homebrew vs 官方脚本 fnm (Fast Node Manager) 可以通过两种方式安装,它们的安装结果相同,但管理方式截然不同。 # Homebrew 安装 brew install fnm 通过 Homebrew 软件包管理器下
6.8k6 分钟

在 macOS 日常使用中,终端环境的配置问题往往令人头疼。本文将系统地介绍 Zsh 补全错误的排查与修复、Homebrew 在不同架构下的路径差异、keg-only 包的环境变量配置,以及如何维护一个干净高效的 .zshrc 配置文件。 提示:本文由 AI 根据对话历史整理,仅供参考 # compinit 错误的排查与修复 # 问题现象 打开终端时出现如下报错: compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew 这
4.9k4 分钟

# 随机梯度下降(SGD) 问题形式 考虑最小化函数的平均值: min⁡x1m∑i=1mfi(x)\min_x \frac{1}{m} \sum_{i=1}^{m} f_i(x) xmin​m1​i=1∑m​fi​(x) 由于 ∇∑i=1mfi(x)=∑i=1m∇fi(x)\nabla \sum_{i=1}^{m} f_i(x) = \sum_{i=1}^{m} \nabla f_i(x)∇∑i=1m​fi​(x)=∑i=1m​∇fi​(x),梯度下降法会重复: x(k)
6.7k6 分钟

# 次梯度 # 定义 次梯度的定义 ggg 是函数 fff(不一定凸)在点 xxx 处的次梯度(subgradient),如果对所有 yyy 都有: f(y)≥f(x)+gT(y−x)f(y) \geq f(x) + g^T(y - x) f(y)≥f(x)+gT(y−x) 几何解释: (g,−1)(g, -1)(g,−1) 在点 (x,f(x))(x, f(x))(x,f(x)) 处支撑 fff 的上图(epigraph) f(x)+gT(y−x)f(x) + g^T(y - x)f(x)+gT(y−x) 是 fff 的全局(仿射)下估计 次微分(Subdifferential)
4.5k4 分钟

# 逐次线性规划 基本思想 重复地对目标函数和约束进行线性化,通过求解一系列线性规划子问题来逼近原非线性优化问题。 实现方式: 通常涉及信赖域(trust regions),防止迭代点偏离线性近似的有效范围 一些实现使用罚函数来保持相对于真实约束的可行性 算法步骤 给定初始点 x(1)x^{(1)}x(1),迭代过程如下: 步骤 1:在当前点 x(k)x^{(k)}x(k) 处线性化目标函数和约束 步骤 2:求解线性规划子问题min⁡∇f(x(k))Txs.t.线性化约束+信赖域约束\begin{array}{l} \min \quad \nabla f(x^{(k)})^T x