作者: 启鑫

  • 从 Windows 到 Linux:Node.js 项目迁移实战与避坑指南

    在 Windows 上开发 Node.js 项目非常方便,但将项目打包上传到 Linux 服务器后运行时,常常会遇到各种错误,比如 Permission denied、模块找不到或路径错误。

    因为 Windows 和 Linux 的文件系统、依赖管理以及路径规则存在差异。跨平台迁移 Node.js 项目时核心逻辑其实非常简单:丢弃 Windows 产物,在 Linux 原生构建。

    迁移操作步骤

    项目已经从 Windows 上传到 Linux按以下步骤操作:

    # 彻底清理 Windows 残留的依赖和锁文件
    rm -rf node_modules package-lock.json
    
    # 重新安装依赖
    npm install
    
    # 启动开发模式,验证运行
    npm run dev
  • 常用网速测试网站推荐

    平时折腾网络环境,测速是必不可少的环节。分享我最常用的在线测速工具。

    1. Google Fiber Speedtest

    • 特点: Google 一贯的极简主义,只保留最核心的“下载、上传、Ping”三个数值。
    • 适用: 快速看一眼下载/上传速度,没有各种花哨图表
    • 地址: https://fiber.google.com/speedtest/

    2. Speedtest by Ookla

    • 特点: 全球公认的标杆工具,服务器节点全球最全。
    • 适用: 能够自动匹配离你最近的运营商服务器,测出物理链路的理论最大值。
    • 地址: https://www.speedtest.net

    3. Cloudflare Speed Test

    • 特点: Cloudflare 作为全球最大的 CDN 厂商之一,其测速不仅仅关注带宽。
    • 优势: 除了速度,还测试抖动(Jitter)和丢包率(Packet Loss),这对于在线会议和电竞至关重要。
    • 地址: https://speed.cloudflare.com

    4. Fast.com (by Netflix)

    • 特点:打开网页即测,无需点击任何按钮。
    • 优势: 走的是 Netflix 的服务器,能真实反映你看流媒体时的网络性能。
    • 地址: https://fast.com

  • Hugo 快速上手:从零搭建极速静态网站

    Hugo 是基于 Go 语言的高性能静态网站生成器,特点是构建速度极快、单文件可执行、无需额外依赖,适合快速搭建博客、文档或个人网站。

    安装环境

    请确保你的电脑已安装以下工具:

    1. Hugo(Extended/Deploy 版本)
    2. Git:用于主题管理和版本控制。
    3. 终端选择:Windows 推荐 PowerShell,macOS/Linux 使用原生终端。

    创建站点

    快速初始化站点结构并配置基础主题:

    # 1. 创建项目目录
    hugo new site qixinlee
    cd qixinlee
    
    # 2. 初始化 Git 仓库
    git init
    
    # 3. 添加 Ananke 主题为子模块
    git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
    
    # 4. 配置主题
    echo "theme = 'ananke'" >> hugo.toml

    创建文章

    Hugo 使用 Markdown 编写内容。执行 hugo new 命令会自动根据模板生成带有 Front Matter(元数据)的文件。

    hugo new content content/posts/my-first-post.md

    使用编辑器(如 VS Code)打开该文件,编辑内容:

    +++
    date = '2026-01-18T14:18:17+08:00'
    draft = true
    title = '我的第一篇文章'
    +++
    
    ## Hello World
    
    这是我的 Hugo 站点首篇文章。
    
    * 个人站点:[启鑫的黑板报](https://www.qixinlee.com)

    draft = true 表示草稿状态,默认不会生成到静态站点。

    本地预览

    hugo server -D
    • -D:渲染包含 draft: true 的草稿文件。
    • 默认访问地址:http://localhost:1313/
    • 在本地预览模式下,修改文件保存后,浏览器会自动刷新。

    配置你的站点

    打开根目录下的 hugo.toml 文件修改基本信息:

    配置项说明示例
    baseURL你的正式域名https://www.qixinlee.com/
    languageCode网站语言zh-cn
    title网站标题启鑫的黑板报
    theme当前使用的主题ananke

    构建与发布

    当内容确认无误后,执行静态化编译:

    1. 将文章头部的 draft = true 改为 draft = false
    2. 在项目根目录运行构建命令:
    hugo
    • 构建完成后,根目录下会生成 public/ 文件夹。
    • 该文件夹包含纯静态的 HTML、CSS 和 JS 资源。
    • 直接将 public/ 目录内容上传至 GitHub Pages、Vercel、Netlify 或私有 Nginx 即可完成上线。
  • 写代码,也写生活:我的 Vibe Coding 日常

    最近,我的生活里出现了一个高频词:Vibe Coding。

    在这个 AI 重新定义生产力的时代,编程的门槛正在消失,而创造力的边界正在扩大。

    毕竟,写得开心,比写得正确更重要。

    很多人问我:到底什么是 Vibe Coding ,是某种高级的编程架构吗?

    对我来说,它更像是一种代码的艺术。它不再是那种苦大仇深地对着屏幕 Debug,而是当你的灵感、音乐、环境与 AI 的协作达到一种奇妙的共振时,代码被AI写出来的过程。

    什么是 Vibe Coding

    简单来说,Vibe Coding 是一种由人工智能驱动的新型编程范式。
    在传统编程中,你需要精通语法、逻辑和框架,一行行地敲出代码。而在 Vibe Coding 中,你更像是一个导演或指挥家。你向 AI 描述你想要的功能、风格和感觉,由 AI 负责完成底层的逻辑实现。

    Vibe Coding 让编程不再是一项沉重的技术活,而变成了一种表达自我、释放创意的生活方式。它让“写代码”这件事变得有温度、有呼吸感。

    • 传统编程:需要精通语法、逻辑和框架,一行行敲出代码,常伴随 Debug 焦虑与文档查找的琐碎。
    • Vibe Coding: 在舒适的环境下,听着音乐,保持一种松弛感。当你的感觉对了,你与 AI 的对话会变得极其高效

    它让编程从技术劳动转化为表达自我、释放创意的生活方式。
    在 Vibe Coding 中,“写代码”有温度、有呼吸感,充满个人化的创作体验。

    我如何进行Vibe Coding

    我不喜欢在压抑的办公室进行 Vibe Coding,那里的环境属于“任务”,而非“创作”。我更倾向于将编码融入日常生活的舒适空间:

    极客的浪漫

    深夜,灯光调暗,音响里放着 Lo-fi 或 Ambient Music。在那种极度安静且温暖的室内,代码的逻辑似乎也变得温柔了起来,不再是冰冷的 0 和 1。

    星巴克的午后:

    点一杯手冲咖啡找一个靠窗的位置的大桌子,室内音乐反而成了一层白噪音,打开电脑 进入 Vibe Coding 状态。

    Vibe Coding 的核心是情绪:环境、音乐和心境共同作用,确保你与 AI 的对话顺畅而高效。

    教朋友进行Vibe Coding

    在这一波 Vibe Coding 的浪潮中,我一直带着朋友在使用 Antigravity 平台上的 Gemini 3

    带朋友入门的过程非常有趣,我做的第一件事往往是让他们 我告诉他们:“不要急着去写第一行代码,先去构建你的 Vibe。”

    选一张喜欢的壁纸,换一个顺眼的终端配色,挑一份合适的歌单。当你觉得“状态对了”,再开口对 Gemini 说:“嘿,我们来做一个很有趣的东西吧。”

    这种从“执行者”到“导演”或“艺术家”的切换,是 Vibe Coding 最迷人的地方。它让编程成为生活体验的一部分,而不仅是技术任务。

  • 2026:我还在写博客

    关于持续写博客的一些想法

    • Blog 是写给自己的记录工具
    • 写作不追求好坏,只追求持续。
    • AI 的出现没有替代个人记录的意义。
    • 只要不中断,时间本身就会赋予内容价值。

    Blog、写作与持续

    Blog
    是一个可以反复回看的地方,用来存放当下的想法、状态和判断。

    写作
    不是表达能力的证明,而是把生活留下痕迹的方式。

    持续
    不是高频更新,而是愿意在空窗之后继续写下去。

    写博客,其实不需要方法

    写博客这件事,本身不需要复杂的方法。

    • 有想法就写一点
    • 没有完整观点也可以记录
    • 不要求逻辑严密,也不要求语言漂亮

    真正起作用的不是“怎么写”,而是写了没有

    当写作对象明确是“自己”,很多负担会自然消失:

    • 不再纠结有没有人看
    • 不再反复修改到满意
    • 不再为停更感到愧疚

    写什么,并不重要

    日常可以写的内容很简单:

    • 今天在想什么
    • 最近在犹豫的事情
    • 做了某个决定的原因
    • 一段时间后的反思

    这些内容当下看起来很普通,但在几年后再读,往往非常清楚地呈现出一个人的变化。

    为什么还要继续写

    很多博客停下来了,并不是因为写博客没意义,而是因为他们把写作交给了外部标准。

    当写作是为了表现,就很难长期坚持。
    当写作只是为了记录,反而可以走得很远。

    AI 可以生成文字,但它无法替你保留当时的状态。
    别人也无法替你回忆你正在经历的这一段生活。

    Blog 的意义不在于写得好不好,
    而在于你有没有持续把自己留在那里。

    只要你还在写,这件事就一直成立。

  • VeraCrypt 个人隐私加密的最佳实践

    选择 VeraCrypt 就是选择将隐私控制权完全握在自己手中。即便付出便利性和操作成本,也能避免平台、厂商或组织默认拥有访问权。

    • 开源、跨平台磁盘加密软件:支持 Windows、macOS 和 Linux,提供强加密、实时透明加密(On‑The‑Fly Encryption)及启动前认证(Pre-Boot Authentication)。
    • 隐私优先:核心价值在于防止数据在未授权情况下被访问,而非单纯防止破解。
    • 隐藏卷功能(Hidden Volume):提供合理否认性(Plausible Deniability),在被迫交出密码时保护敏感信息。
    • 完全自持密钥:使用 VeraCrypt 意味着用户必须承担密钥管理与使用行为的责任。

    隐私保护与威胁模型

    隐私保护关注的不是破解难度,而是 数据在未授权情况下被访问的风险

    主要威胁:

    • 设备丢失、被盗或被扣押
    • 被迫交出密码
    • 厂商、操作系统或云平台可能访问密钥

    不直接防护的威胁:

    • 已挂载卷上的恶意软件
    • 内存或侧信道攻击
    • 系统缓存、日志或索引产生的残留

    信任的唯一对象是用户本人,而非平台或第三方。

    官方功能概览

    • 实时透明加密:文件写入前自动加密、读取时自动解密,无需手动操作。
    • 跨平台支持:Windows、macOS、Linux。
    • 加密对象类型:文件容器、分区、整个磁盘、系统盘。
    • 隐私特性:隐藏卷提供合理否认性。
    • 开源可审查:源代码公开,可验证加密实现与安全性。

    密钥与加密机制

    维度实现方式隐私意义
    加密算法AES / Serpent / Twofish,可级联抵御暴力破解
    密钥派生PBKDF2 / Argon2,大量迭代延缓密码猜测攻击
    密钥来源用户密码 / Keyfile完全自持,无第三方访问
    解密时机启动前认证或挂载卷时阻断操作系统或平台干预
    平台依赖无 TPM / 无云恢复消除第三方可接管风险

    启动前认证(Pre-Boot Authentication)

    • 自定义 Bootloader 在操作系统加载前完成解密验证
    • 避免 OS 收集凭证或记录解锁行为
    • 平台无法证明加密卷曾被挂载

    隐藏卷(Hidden Volume)

    • 外层卷存放可公开内容,隐藏卷存放敏感信息
    • 使用不同密码访问不同卷
    • 磁盘结构无法证明隐藏卷存在
    • 为被迫交出密码提供合理否认性

    为什么使用 VeraCrypt

    1. 用户完全掌控密钥
    • 不依赖 TPM、平台或云
    • 避免厂商或组织默认访问
    1. 防止被迫暴露
    • 隐藏卷机制保护敏感信息
    1. 跨平台灵活性
    • Windows、macOS、Linux 均可使用
    1. 防止离线数据泄露
    • 实时透明加密确保静态数据安全
    1. 开源可验证
    • 代码公开,可审查与验证实现
    1. 隐私上限高
    • 用户是唯一信任根,平台无法接管
    • 使用成本和责任较高

    简单来说:VeraCrypt 是为不愿让任何第三方访问数据的人设计的工具。

    适用与不适用场景

    场景隐私收益
    携带敏感数据避免云服务或平台访问
    技术取证抵御取证压力
    高敏感个人资料用户完全控制密钥
    跨平台移动存储Windows / macOS / Linux 可访问

    不适用场景:

    • 企业需要集中密钥管理
    • 用户无法承担密钥丢失后果
    • 日常办公需无感使用

    使用最佳实践

    • 密码长度 >20 字符,Keyfile 与卷分离存储
    • 禁用休眠(Hibernate),控制 Swap / Pagefile
    • 注意缓存、日志、索引产生的残留
    • 挂载卷时尽量在可信环境操作

    VeraCrypt 只保护静态数据,无法自动清理使用痕迹