网上冲浪指南

2020 / 10
VPS 上自建 k3s 集群如何获取真实客户端的 IP ?

大多数的云服务厂商都提供了非常时髦的 Kubernetes 服务,但是迫于没钱,所以只能用轻量应用服务器来搭建自己的轻量 k3s 集群。经过一段时间的摸索与反复的重建集群,我终于让搭建在 Tencent Cloud 轻量应用服务器上的 k3s 集群中的服务获取到了客户端的真实 IP。

2020 / 05
记一次 Silverlight 问题排查经历

5 月中旬了,简单的记一个小问题以及一些对陈年老项目的吐槽。

2020 / 03
AsciiDoc 简介

Markdown 并不支持你想要的排版,于是你只好内嵌各种 HTML 然后为这些 HTML 标签添加样式来达到你想要的效果。这个时候再回过头看你的文章,你发现自己好像变成了一个前端开发者。

F# 与 C# 对比:简单的求和问题

让我们从一个简单的“计算从 1 到 N 的平方和”问题入手,来看看真正的 F# 代码是怎样的。我们将会对比 F# 实现与 C# 实现之间的差异,看看 F# 的语法是如何胜过 C# 的。

F# 与 C# 对比:排序

我们将实现一个类快排的算法来对列表进行排序,并且对比 F# 实现与 C# 实现的差异。

姗姗来迟的 F# 4.7 新特性介绍

2019 年 9 月 23 日,F# 4.7 发布,这次更新为 F# 语法加入了更多的甜味。

如何在一台 1 核 1G 的服务器上部署 Kubernetes

经过一番折腾,我的博客站点终于运行在了 K3s 之上,VPS 总体内存占用上升了 200M,果然再轻量的 Kubernetes 都比 Swarm 要消耗资源。为什么我要在 1 核 1G 的 VPS 上折腾 Kubernetes,因为 Kubernetes 就在那里。

2020 / 02
DotNet Yes!

GNU 工具包提供了一个有意思的命令行工具 yes,它的功能非常的简单,就是无限复读 y 到标准输出直到进程被杀死。不过这个工具也有一个非常令人刮目相看的地方——它的输出速度非常快!我决定尝试使用 .Net Core 来实现同样的功能。

在 ASP.NET Core 集成测试中连接数据库

我们能够在集成测试中用上真实的数据库了,他的表现几乎跟线上的数据库行为一致,而且不存在任何 ORM 的兼容性问题,但代价是我们将需要更多的资源以及时间用来运行集成测试。这值得吗,可能只有你自己才知道。

2020 / 01
升级到 PostgreSQL12(docker 版)

PostgreSQL 实在升级得太频繁了,而且每次大版本更新就需要使用专门的工具进行数据迁移,这篇文章简要记录一下使用 docker-postgres-upgrade 升级现有的部署在 Docker Swarm 中的 PostgreSQL 数据库的一些过程。

2019 / 10
如何为 Angular 应用编写时间相关的单元测试

当业务逻辑依赖系统当前时间的时候,如何为这部分逻辑编写单元测试?当代码中使用了 setTimeout 或者 setInterval ,应该怎么去验证在一定时间后指定的代码是否会运行?当你使用了 AnimationPlayer 的动画完成时回调,你又该如何在单元测试中正确的断言这一行为?如果你面对这些问题感到一头雾水、不知所措,那么就接着读下去吧。

在 Node.js 中加载 ES 模块

众所周知,JS 的语言特性总是更新得比解释器要快,为了在 Node.js 中能够导入 esm 格式的模块,我们需要使用一些奇怪的手段,例如,hook require 函数,甚至我们可以使用 webpack 这样的打包工具。经过一番体验过后,我的选择是……

2019 / 09
在 Firefox 浏览器中模拟网络故障

在 Chrome 开发者工具中,可以使用 Network 工具下的 Offline throtting 来模拟离线的状态,这对测试网页在离线状态下的工作情况非常有帮助,但是 Firefox 却没有这样的功能 反倒是提供了一堆几乎用不上的低网速模拟选项

2019 / 08
基于 Moq 的 IoC 容器 —— AutoMocker

Moq.AutoMocker 是一款基于 Moq 实现的 IoC 容器,它可以用来全自动的使用 Moq 来创建待测试的服务的依赖。

2019 / 07
为什么我使用 Linux 开发

当我对 Linux 的印象似乎还停留在黑乎乎的命令行界面上的时候,我身边的一些朋友告诉我或者建议我使用 Linux 时,我会一脸惊讶的问他,那个怎么用(来开发或者日常使用)?

2019 / 06
使用 rsync 复制 Linux 工作环境

Linux 的影分身之术

学习 Git Rebase

rebase 也算是我比较常用的一个指令了,但是很长时间以来,对这个指令的认识还是不够深刻,于是就找了个时间认真地读了一下 git rebase 的文档。

可控函数

可控函数(Controllable Function),是指那种可以通过改变函数的参数或者简单的修改函数在执行过程中的外部依赖的而产生确定结果的一类函数,这是我根据纯函数的概念推广出来的一个新的名词(大概是新的吧?)。

Arch Linux 启用 MTU 探测

最近在家里经常遇到 ssh 超时的问题,一开始也没太当回事,感觉是网络不稳定导致的,但是后来慢慢的发现这种超时问题只会出现在跟 ssh 相关的程序中,例如 git、ssh。这成功的引起了我的注意,于是我开始尝试着去排查。

2019 / 05
DIY:从零开始写一个 SQL 构建器

我决定了自己来撸一个 SQL 构建器,看起来应该也不是什么困难的事 Flag