从何时开始怕遥望星辰?

使用 Warp + Cloudflare Tunnel 在 IPv6 单栈服务器上搭建代理

由于战争的原因,俄罗斯当局对互联网的封锁日益严重(Twitter、Google News);加之包括 Dell、Microsoft、OpenAI、Cisco、Apple 等国际软硬件厂商因为制裁退出俄罗斯市场,很多网站甚至直接 ban 了整个俄罗斯地区的 IP,搭建一个合适的代理服务对于正常访问国际互联网是十分有必要的。

使用 Warp + Cloudflare Tunnel 在 IPv6 单栈服务器上搭建代理

使用CFW Parser处理订阅更新内容

无论是在国内还是俄罗斯,想要正常的访问国际互联网,都需要借助代理工具;本文中使用的是 Clash for Windows 的 MacOS 客户端。

而大多数机场提供的 Clash 订阅链接都包含了 Rules 规则 —— 这是为了方便国内用户,减少用户的配置负担;但是如果按照机场给定的 Rules 代理,很多在俄罗斯本没有必要代理的网站也会使用走代理,这不但会浪费流量,很多情况下也会减慢网速。

CFW 提供了名为 Parser 的功能用于解决这个问题。

使用CFW Parser处理订阅更新内容

任我行

失眠,随便写的东西,很乱。

任我行

快速平方根算法 - 从卡马克的魔法数字谈起

大家应该都听说过雷神之锤 3 中那段神奇的快速平方根倒数算法 —— 它因为使用了魔法数字:0x5f3759df 而闻名:

1
2
3
4
5
6
7
8
float InvSqrt(float x) {
float xhalf = 0.5f*x;
int i = *(int*)&x;
i = 0x5f3759df - (i >> 1);
x = *(float*)&i;
x = x*(1.5f - xhalf*x*x);
return x;
}

事实上,这个算法使用的方法是传统的牛顿迭代法 —— 之所以它能够在常数时间内给出结果,是因为这个魔法数字可以让迭代开始时的值就已经很接近实际根了。

下面我从牛顿迭代开始,一步步实现一个快速平方根算法,并探究这个魔法数字到底是怎么来的。

快速平方根算法 - 从卡马克的魔法数字谈起

DNSSEC 技术详解

DNS 系统最早在 1983 年的 RFC 882 就有定义与技术实现了;作为最重要的互联网基础设施之一,我们必要对它进行足够的了解;而在如今国内复杂的网络环境下,原始的 DNS 协议也经常无法正常工作,为了保证 DNS 查询结果的可信,又诞生了 DNSSEC、DNSCrypt、DoT 甚至 DoH 这类的技术。

本文将主要介绍和讨论 DNSSEC 的工作原理、复习一些较为容易混淆的 DNS 中的概念、最后将会介绍一些 DNS 新技术。

您可能需要有对传统 DNS 协议的工作流程有基本的了解;以及对 TCP/IP 协议、数字签名技术有一个大致的了解(不用十分深入)作为知识基础。

DNSSEC 技术详解

图论 - 最小生成树与 Kruskal 算法

这篇文章我们来讨论最小生成树以及一个生成最小生成树的算法 - Kruskal 算法。

图论 - 最小生成树与 Kruskal 算法

Vercel Serverless 与 Flask 体验

前段时间有个小应用要部署上线,倒也不复杂:接口收到前端请求之后返回一张动态生成的图片就行。

由于 没有服务器只能白嫖 想要体验世界上最流行、先进的 Serverless 函数计算,正好博客部署在 Vercel,所以看了看 Vercel 的官方 Documentation,发现他们也可以部署一些函数计算,支持的语言有:

  • Node.js
  • Go
  • Python
  • Ruby

我对 Python 比较熟悉,于是就顺手用 Flask 写了一个服务;部署时候遇到了一些坑,在这里记录一下。

Vercel Serverless 与 Flask 体验