FrostHe 技术博客FrostHe 技术博客
首页
文章
分类
标签
首页
文章
分类
标签

时间线

3/7/2026: Vibe Coding Agents 组合及比较
Author: Frost He

通过比较市面上常见的 Agents 及 LLMs 的适配度,提供一个组合选择的参考
11/21/2025: Python 学习笔记
Author: Frost He

记录了所有学习 Python 过程中的笔记
10/30/2025: uv 使用笔记
Author: Frost He

uv 是对 Python 开发环境、包和项目的管理工具,它允许用户基于项目构建虚拟环境及工具链
10/29/2025: Transformer 架构简介
Author: Frost He

本文简要介绍了 Tokenization, 词嵌入以及 Transformer 架构的原理
10/21/2025: Volta 使用笔记
Author: Frost He

Volta 是对 Nodejs 开发环境和工具涟的管理工具,它允许用户虚拟化整个工具链,让每个项目都有自己的 Node + 工具版本组合,并实现零摩擦切换
8/20/2025: 大语言模型多合一信息入口
Author: Frost He

将当前 GenAI 领域的各个工具和模型分门别类进行索引,用于快速查找
8/16/2025: RAG - 检索增强生成
Author: Frost He

以向量检索为核心的 RAG 架构已成为解决大模型获取最新外部知识,同时解决其生成幻觉问题时的主流技术框架,并且已在相当多的应用场景中落地实践
8/6/2025: GenAI 新闻收集
Author: Frost He

从各渠道收集到的 GenAI 新闻
3/7/2025: PS5 纯软件推流到 B 站的完整指南
Author: Frost He

通过 DNS 劫持和 Docker 容器实现 PS5 纯软件推流到 B 站直播平台,无需昂贵的视频采集卡
3/7/2025: Next.js 开发笔记
Author: Frost He

记录 Next.js 框架的核心概念、路由系统、组件模式和最佳实践
4/20/2022: ES6+ Cheatsheet
Author: Frost He

Cheatsheet of ES6+ features
10/14/2021: Web Front-end Notes - Bundling

Notes of Web front-end bundling
3/1/2021: Web Front-end Notes - Typescript Practice

Notes of Typescript practice
9/7/2020: Web Front-end Notes - Typescript

Basics of Typescript
8/5/2020: Web Front-end Notes - Vuejs 2 Practice

Notes of Vuejs 2 Practice
7/14/2020: Web Front-end Notes - Vuejs 2

Notes of Vuejs 2
3/10/2020: Web Front-end Basics - Nodejs

Intro of Nodejs backend development
1/2/2020: Web Front-end Notes - AngularJs

Notes of Angularjs
12/22/2019: Web Front-end Basics - Javascript API
Author: Frost He

Javascript API Handbook
11/28/2019: Web Front-end Basics - Modern Javascript

Modern Javascript Setup
11/3/2019: Web Front-end Notes - Css tricks

Notes of Css tricks
11/3/2019: Web Front-end Notes - Modern CSS Layouts
Author: Frost He

Notes of modern CSS layouts
10/21/2019: Web Front-end Basics - Responsive Design
Author: Frost He

Notes of responsive design
9/14/2019: Web Front-end Basics - Css/Css3

Fundamentals of Css/Css3
9/2/2019: Web Front-end Basics - HTML/HTML5

Notes of HTML/HTML5
8/16/2019: Web Front-end Basics - ES6

Points of ES6
8/14/2019: Web Front-end Basics - ES5

Points of ES5
5/18/2019: DIY - 自制树莓派便携游戏机

本文探索了通过树莓派加 UPS 模块的组合实现自制便携性游戏机
12/29/2018: 探寻 DDD 在 .NET 生态中的落地实现 - eShopOnContainers

参考资料:

  • Github - eShopOnContainers
  • eShopOnContainers 知多少[1]:总体概览
12/20/2018: 跨微服务实现事件驱动的异步通信
Author: Frost He

本文提取 eShopOnContainers 参考项目配套的架构设计电子书 130-157 页有关基于事件通信的章节,涵盖从高层视图到实现细节的思考和总结
11/19/2018: 实施微服务架构所面临的挑战
Author: Frost He

总结了实施微服务架构前应用程序所面临的挑战与可能的可行方案
11/17/2018: Cordova 的 Plugin 及创建自定义 Android Plugin

本文依据 Cordova 官方文档以 Android 平台为例介绍了创建自定义 Plugin 的流程
11/14/2018: Cordova 快速开始

依据官方文档在 Windows 系统下开始 Cordova 开发
11/9/2018: 在 .NET Framework 中集成 CefSharp

参考文档:

  • General Usage
  • Display HTML in WPF and CefSharp Tutorial Part 1
7/28/2018: OAuth 2.0 和 OpenID Connect
Author: Frost He

本文介绍了 OAuth2.0,OpenID Connect 和 .NET 生态实现 IdentityServer4
7/28/2018: OAuth 2.0 和 OpenID Connect

本文介绍了 OAuth2.0,OpenID Connect 和 .NET 生态实现 IdentityServer4
7/24/2018: 向 Let's Encrypt CA 申请通配符证书
Author: Frost He

申请通配符数字证书是 Let's Encrypt 近期推出的功能,只有支持 ACME v2 协议的客户代理软件才能申请通配符证书
7/20/2018: 向 Let's Encrypt CA 申请单域名证书

Let's Encrypt 是一个免费发放 SSL 证书的 CA,本文介绍了其申请流程及推荐工具 Certbot 的使用
7/19/2018: Let's Encrypt 证书颁发机构
Author: Frost He

本文介绍了 Let's Encrypt 颁发证书的流程
6/24/2018: X.509 数字证书

本文简要整理了有关数字证书的一系列概念
6/21/2018: 加解密笔记及 .NET 实现

关于密码信息的概念及工作原理笔记,不间断更新
6/13/2018: 在树莓派上通过 Docker 搭建 Seafile 私有云服务
Author: Frost He

Seafile 是一个免费开源的私有云项目,本文介绍了如何在树莓派上搭建 Seafile
6/1/2018: 家庭数字化系统 - 准备树莓派

记录了搭建新购入的树莓派的全过程
5/30/2018: 智慧家庭 - 外网远程访问家庭服务器中的 Home Assistant 实例
Author: Frost He

本文介绍了如何通过外网穿透实现远程访问家庭服务器的 HomeAssistant 实例,或其他 Web 服务
5/28/2018: 智慧家庭 - 通过 Amazon Alexa 控制连接至 HomeAssistant 的智能设备

本文介绍两种实现 Alexa 控制 HA 的方法
5/26/2018: 智慧家庭 - 通过 Siri 控制连接至 HomeAssistant 的智能设备

本文介绍通过 HA 的 homekit 组件实现 Siri 控制智能家居的方法
5/26/2018: 智慧家庭 - 使用 HA 的 Device Tracker 组件实现「在家检测」
Author: Frost He

本文介绍了如何使用 HA 的 Device Tracker 组件追踪家庭成员的随身移动设备
5/25/2018: 智慧家庭 - 完善 HomeAssistant 的常见基础配置

本文介绍了 Home Assistant 几种常见的应用组件
5/25/2018: 智慧家庭 - 认识 Home Assistant 的配置系统

本文介绍了 Home Assistant 基于 YAML 的配置系统
5/24/2018: 智慧家庭 - 架设 HomeAssistant

HomeAssistant 是一个开源的智能家居网关项目,本文介绍了以 Docker CE 在树莓派 Raspbian 系统上架设 HA
5/23/2018: 电信宽带的正确使用姿势

本文介绍了如何正确初始化电信宽带
5/23/2018: 通过 DDNS 实现稳定内网穿透
Author: Frost He

本文介绍了如何通过 DDNS 技术现实内网穿透
5/20/2018: 路由器基础服务详解 - DHCP, DNS, NAT

本文简要介绍了家庭网关的基础服务 - DHCP,DNS 和 NAT
5/20/2018: 在树莓派上构建 NAS 存储系统
Author: Frost He

树莓派做 NAS 服务器是一个常见的应用场景
5/17/2018: 网件路由器刷 OpenWrt
Author: Frost He

本文记录了使用 OpenWrt 官方提供的 Image 刷网件路由器的全过程
2/28/2018: Mediator 模式及其 .NET 实现
Author: Frost He

本文介绍了「中间人」模式及其应用场景,以及 .NET MediatR 类库如何实现「中间人」模式
2/20/2018: 为 ASP.NET Core 应用程序添加 Docker 支持

参考资料

  • Building Docker Images for .NET Core Applications
  • Visual Studio Tools for Docker with ASP.NET Core
2/8/2018: Docker 初探 (7) - 部署

参考资料:

  • Deploy your app
  • Use the Docker Cloud Agent
  • The Docker Cloud CLI
2/4/2018: Docker 初探 (6) - Docker Machine

参考资料:

  • Swarms
  • Docker Machine

前言

Docker GetStarted Swarm 官方文档中,为了在单机上演示如何搭建 Docker Swarm 而引入了 Docker Machine,并在其中穿插了虚拟 shell 环境的内容,个人认为这部分内容干扰了集群搭建的关键信息。

2/1/2018: Docker 初探 (5) - Stacks

参考资料:

  • Stacks

前言

一个 Stack 是一组相互作用并共享依赖的 service,并且一起协同和伸缩的单元,一个 Stack 可以能够定义包含一个系统的所有功能。之前关于 Service 的介绍中已经用到了 stack,但那只是包含单个服务的 stack,在生产环境中 stack 往往许多服务,并将它们运行在不同的主机上。

1/31/2018: Docker 初探 (4) - Swarms

参考资料:

  • Swarms
  • Create a swarm

Swarm 简介

1/30/2018: Docker 初探 (3) - Services

参考资料: Services

Docker Compose

Docker Compose 是用以定义与运行多容器 Docker 应用的工具,使用 YAML 文件配置应用的服务,之后,执行一句简单的命令行来创建和启动定义好的应用。Compose 在 Docker for Mac 和 Docker for Windows 上都已经预装了,但 Linux 系统需要手动安装。

1/29/2018: Docker 初探 (2) - Containers

参考资料:

  • Containers

以 Docker 的方式定义一个应用

Container 位于架构层次的最底层,其上是 Service,服务定义了 Container 如何在生成环境互作用。Service 之上是 Stack,其定义了所有服务之间的互作用。

1/28/2018: Docker 初探 (1) - 搭建 Docker 环境

参考资料:

  • Get Docker CE for Ubuntu
  • Post-installation steps for Linux
11/8/2017: ASP.NET Core 的出站请求客户端

参考资料:

  • 启动 Htpp 请求

本文索引:

  • 前言
  • 用法
  • 配置 HttpMessageHandler
  • 出站请求中间件
  • 基于 Polly 的 Handlers
  • HttpClient 的生存期
  • 日志记录
7/31/2017: ASP.NET Core 开发实践汇总

本文索引:

  • ASP.NET Core 的入口点在哪?
    • Startup 从何而来?
    • IStartupFilter 是什么?
  • 使用 ASP.NET Core 2.1 开发 Api Controller
    • 自动 HTTP 400 相应
    • 自动参数源推定
    • Route 特性现在是必须的
    • ApiBehaviorOptions
  • DI 的 Scoped 生存期是什么?
  • 你真的了解中间件吗?
    • 如何定义中间件?
    • IMiddleware 接口有什么用?
  • IFilter 和 Attribute,我该用哪一个?
    • 通过 Attribute 将 Filter 应用到 Controller 和 Action 级别
    • ServiceFilter 和 TypeFilters 又是什么?
    • Middleware 还是 Filters?
7/13/2017: ASP.NET Core 应用 - 验证

参考资料:

  • Model validation in ASP.NET Core MVC

本文大纲:

  • 验证特性(Attribute)
  • Required 特性和 BindRequired 特性的使用说明
  • 模型状态(Model State)
  • 手动验证
  • 自定义验证
    • 继承自 ValidationAttribute 定义自定义验证特性
    • 在类级别实现 IValidateObject 接口
7/2/2017: ASP.NET Core 应用 - Filters

参考资料:

  • Filters in ASP.NET Core

过滤器类型

每个过滤器类型都将在管道的不同阶段被执行:

  • Authorization 过滤器: 第一个运行的过滤器,决定执行请求的当前用户是否被授权。
  • Resource 过滤器: 紧随 Authorization 过滤器之后处理请求的过滤器,其代码在管道的其余部分之前或之后被执行,它们是实现缓存或因性能原因阻塞请求的最佳位置,它们在「Model Binding」之前运行,所以其代码可以影响模型绑定。
  • Action 过滤器: 在特定的 Action 之前或之后运行的过滤器,它们被用于操作传入 Action 的参数以及被其返回的结果。
  • Exception 过滤器: 用于将全局策略应用于在返回响应之前未被捕获的异常。
  • Result 过滤器: 在 Action 返回结果之前或之后执行代码,仅当 Action 方法成功之后才会运行,它们被用于处理必须围绕视图的逻辑。
6/5/2017: ASP.NET Core 框架基础 - 管道与中间件

参考资料:

  • 采用管道处理请求
  • 管道如何处理请求
  • 管道如何创建
  • 中间件究竟是什么
6/2/2017: ASP.NET Core 框架基础 - 日志系统

参考资料:

  • Logging in ASP.NET Core
  • Logging with Logger Message
  • .NET Core 的日志
6/1/2017: ASP.NET Core 框架基础 - 配置系统 Options 模式

参考资料:

  • Options pattern in ASP.NET Core
  • http://www.cnblogs.com/artech/p/new-config-system-01.html
  • Options Github Source
6/1/2017: ASP.NET Core 框架基础 - 配置系统

参考资料:

  • Configuration in ASP.NET Core
  • http://www.cnblogs.com/artech/p/new-config-system-01.html
5/28/2017: ASP.NET Core 框架基础 - 文件系统

参考资料:

  • ASP.NET Core 的文件系统
  • File Providers in ASP.NET Core
3/24/2017: CRQS - 命令与查询职责分离
Author: Frost He

本文介绍了 CQRS 的由来以及应用 CQRS 所带来的好处
3/18/2017: Repository 模式和工作单元
Author: Frost He

本文介绍了 Repository 模式及其应用场景,以及在 .NET 中是如何实现 Repository 模式的
3/9/2017: 《实现领域驱动设计》读书笔记(6) - 战术建模之领域服务
Author: Frost He

当某个操作不适合放在实体和值对象上时,最好的方式便是使用领域服务
3/6/2017: 《实现领域驱动设计》读书笔记(5) - 战术建模之值对象
Author: Frost He

值对象用于度量和描述事物,即便一个领域概念必须建模成实体,在设计时也应该更偏向于将其作为值对象的容器,而不是子实体的容器
3/1/2017: 《实现领域驱动设计》读书笔记(4) - 战术建模之实体
Author: Frost He

当我们需要考虑一个对象的个性特征,或需要区分不同的对象时,我们引入实体这个领域概念。一个实体是一个唯一的东西,并且可以在相当长的时间内持续地变化
2/28/2017: 《实现领域驱动设计》读书笔记(3) - 战略建模之架构

系列大纲: 《实现领域驱动设计》读书笔记

本文大纲:

  • 分层架构
  • 六边形架构(端口与适配器架构,洋葱架构)
    • 依赖倒置原则
  • 面向服务架构(Service-Oriented Architecture, SOA)
  • REST(Representational State Transfer)
    • RESTful HTTP 服务端的关键方面
    • REST 和 DDD
  • 命令与查询职责分离 - CQRS
    • 客户端和查询处理器
  • 事件驱动架构
    • 长时处理过程(Saga)
    • 事件源(EventSource)
2/25/2017: 《实现领域驱动设计》读书笔记(2) - 战略建模

系列大纲: 《实现领域驱动设计》读书笔记

本文大纲:

  • 通用语言(Ubiquitous Language)
  • 领域和子域
    • 核心域
    • 支撑子域
    • 通用子域
    • 问题空间(Problem Space)和解决方案空间(Solution Space)
  • 有界上下文(Bounded Context)
  • 上下文映射图
2/18/2017: 《实现领域驱动设计》读书笔记(1) - 总览

系列大纲: 《实现领域驱动设计》读书笔记

本文大纲:

  • 前言
  • 领域模型
    • 什么是领域模型?
5/11/2016: 搭建 Ubuntu 16.04 LTS

最近租用了一台预装 ubuntu 操作系统(这里选择 ubuntu 是因为笔者对其预装的工具集比较熟悉)的服务器之后,还要为这台服务器做一些额外的配置以使其能够在互联网环境中正常运行。很多云服务提供商都提供了适配不同需求的预装环境,但为了对服务器的搭建过程有一个直观的感觉和更多的控制权,决定亲手过一遍这个过程。

本篇文章涉及的所有指令细节可参考Linux 基础 - 用户管理

5/10/2016: 为 Linux 系统配置 CSF
Author: Frost He

本文介绍了基于 Linux 系统配置 csf 防火墙的注意事项
5/1/2016: Linux 基础 - 指令与档案的搜索(which/whereis/locate/updatedb/find)
Author: Frost He

本文简要介绍了 Linux 下搜索指令与档案相关的指令
4/30/2016: Linux 基础 - 档案内容查阅(cat/tac/nl/more/less/head/tail/od/touch)
Author: Frost He

本文介绍了 Linux 系统与档案内容查阅相关的指令
4/29/2016: Linux 基础 - 档案与目录管理(ls/cp/rm/mv/basename/dirname)
Author: Frost He

本文介绍了 Linux 系统与档案与目录管理相关的指令
4/28/2016: Linux 基础 - 目录操作与 $PATH
Author: Frost He

本文介绍了 Linux 系统有关目录的常用指令和 $PATH 变量的意义
4/27/2016: Linux 基础 - 目录配置

参考资料: http://linux.vbird.org/linux_basic/0210filepermission.php#dir

本文大纲:

  • Linux 目录配置
    • 根目录
    • /usr 的意义与内容
    • /var 的意义与内容
4/26/2016: Linux 基础 - 预设权限(umask),隐藏权限(chattr/lsattr)和特殊权限(SUID/SGID/SBIT)

umask

umask 表示当前用户建立档案和目录时的预设权限。

$ umask
0022 
4/25/2016: Linux 基础 - 档案与权限(chgrp/chown/chmod)

参考资料: http://linux.vbird.org/linux_basic/0210filepermission.php#filepermission_perm

本文大纲:

  • 修改档案属性及权限
    • 更改群组
    • 更改档案拥有者
    • 更改权限
  • 权限的意义
4/21/2016: Linux 基础 - 用户和群组

参考资料:

  • http://linux.vbird.org/linux_basic/0410accountmanager.php

本文大纲:

  • 用户帐号管理
    • 新建用户帐号 - useradd
    • 设置帐号密码 - passwd
    • 管理帐号密码策略 - chage
    • 修改用户帐号信息 - usermod
    • 删除用户帐号 - userdel
    • 用户端指令 - id, finger, chfn, chsh
  • 群组管理
    • 新增群组 - groupadd
    • 修改群组 - groupmod
    • 删除群组 - groupdel
    • 群组管理员 - gpasswd
    • 初始群组,次要群组和有效群组

Linux 使用文件及配置相应的权限来存储用户帐号和群组信息,在成功创建好用户帐号之后,以下几处文件会发生相应的改变

  • /etc/passwd: Linux 管理用户帐号的数据库
  • /etc/shadow: Linux 管理用户帐号密码配置的数据库
  • /etc/group: Linux 管理群组的数据库
  • /etc/gshadow: Linux 管理群组密码配置的数据库
4/18/2016: Linux 基础 - 磁盘分区(df/du/lsblk/blkid/gdisk/mkfs/mount/umount)
Author: Frost He

本文简要介绍了 Linux 系统关于磁盘分区的基础知识
9/13/2015: Git Module 与嵌套 Repository

本文大纲:

  • 添加一个 Submodule
  • 获取子项目更新
  • Git Module

Git 可将一个 Git repository 作为另外一个 Git repository 的子目录,这允许在你的项目中引用另一个项目,并将两个项目分开维护。假设我们希望将一个现有的 Git repository 作为一个 submodule 添加到当前工作项目上,执行 git submodule add 并跟上绝对或相对 url 作为参数来添加 submodule。

7/3/2015: Git - 推送至远程仓库

生成仓库目录

mkdir -p development/hobby-project/my-first-git-repository
cd development/hobby-project/my-first-git-repository
6/27/2015: Hexo 及 NexT 定制

本文索引:

  • 前言
  • 配置搜索引擎优化
    • 安装站点地图插件
    • 向谷歌提交站点地图
    • 向百度站长平台提交站点地图
    • 百度站长平台自动提交及主动提交
      • 自动提交
      • 手动提交
  • 与站点配置相关的定制
    • 设置页面文章的篇数
  • 与主题配置相关的定制
    • 修改主题文字的显示文本
    • 设置 Copyright 声明
    • 开启博文打赏功能
      • 为指定文章添加打赏功能
    • 添加「Fork me on Github」
    • 添加置顶文件标识
  • 修改文章底部标签的图标
5/7/2015: 搭建 Hexo 轻博客

本文索引:

  • 前言
  • 环境准备
  • 初始化
  • 配置 _config.yml
    • 网站(site)
    • 网址(url)
  • 本地测试
  • 部署到 Github Pages
    • 为 Github Pages 指定自定义域名