如何:不借助第三方服务粗略检测访客是否来自中国大陆
作为一个平时基本不怎么碰前端代码的开发者,以前偶尔遇到需要折腾前端的需求时,我总有一种「摸着石头过河」的感觉。
最近我就碰到了这样一个棘手的场景:我的某个网站上需要调用的一些服务,在中国大陆的网络环境下访问时经常会出现加载失败或极度缓慢的问题。为了保证用户的浏览体验,比较理想的做法是:检测到访客来自中国大陆时,默认将他们重定向到支持大陆访问的同类型备用服务上。
共 125 篇文章。
作为一个平时基本不怎么碰前端代码的开发者,以前偶尔遇到需要折腾前端的需求时,我总有一种「摸着石头过河」的感觉。
最近我就碰到了这样一个棘手的场景:我的某个网站上需要调用的一些服务,在中国大陆的网络环境下访问时经常会出现加载失败或极度缓慢的问题。为了保证用户的浏览体验,比较理想的做法是:检测到访客来自中国大陆时,默认将他们重定向到支持大陆访问的同类型备用服务上。
借着 Vibe Coding 的东风,我为 blog 重新设计了一套模板,希望解决一些此前用的基于 ink 模板中存在的一些问题,并彻底清理掉一些历史包袱。
这件事还要从 Search Console 的 Core Web Vitals 报告说起。报告显示,旧主题使用的 Noto Serif SC 网页字体加载缓慢,并在渲染过程中导致了显著的累积布局偏移(CLS)问题。
在调整网站 CSS 的过程中,我逐渐意识到原有主题模板存在不少结构性问题;与其零碎修补,倒不如直接推倒重来。我的想法是,首先用 Hugo 新建一个最新版的最小模板,然后逐渐在上面添加我需要的功能,于是我列了一个需求 wishlist 清单:
有时,我们会希望分发包含大量重复文件的 tarball。绝大多数情况下,tarball 都会进行压缩,进行适当的预处理有助于显著地提高压缩效率。
数据压缩的基本原理是利用数据中的冗余,通过更短的编码或规则表示重复或可预测的内容,从而减少存储或传输所需的空间。简单的例子中,比如连续重复的字符「AAAAAA」可以表达为「6A」,然而,当重复数据分布在较长范围内时,压缩算法很难直接发现和利用这些远距离的关联,因为需要额外记录位置或匹配信息,这种匹配开销很大,做的话会严重影响压缩速度并且可能收益不高。对于文本文件来说,其中的许多内容会高频率地出现,而如果一个 tarball中包括数个内容一样的大型二进制文件,压缩算法很难有效地检测并对他们进行正确的处理。
最近从张师傅那里获得了一台来自政府换新时拍卖的二手 Dell VxRail E560,这是 Dell/EMC 「超融合」概念的机器,实际硬件和 Dell PowerEdge R640 是一样的。
由于我并不需要使用 VxRail E560 系列增加的一系列 VMWare 功能,将其变回 PowerEdge R640 可以让管理员获得更多的对于固件的控制。这里记录一下过程。
新的 C++ 标准中 不允许给 main 指定 linkage-specification 了。
当然,考虑到原本 main() 也是 C 运行环境在开始运行程序的时候调用的,而 C 运行环境自然也预期 C linkage,即不按照 C++ 的习惯对符号根据参数增加名字前缀,因此大部分编译器在遇到 C++ 程序定义全局 main() 的时候也会按照习惯采取 C linkage方式去翻译。这一规则首先被 GCC 采纳,随后 LLVM 也跟进了。
根据洛杉矶时报报道,骇客可能窃取了全部美国人的社会安全号。
社会安全号码(Social Security Number, SSN)是依据 42 U.S.C. § 405(c)(2) 发给一部分美国纳税人(包括公民、永久居民,以及有工作许可的临时居住在美国的人员)的一个九位数字。目前,这个号码是由社会保障署(Social Security Administration)发给这些纳税人的,尽管社会安全号码的设计本意是帮助社会保障署区分这些纳税人的,但由于它是由联邦机构签发的终生不变的数字,因此它成了事实上的美国全国身份证识别代码,并且在税务以及许多其他地方都有使用。
上周末抽时间把服务器升级到了 FreeBSD 14.0-RELEASE。软件的发布中存在许多的工序,大致上,在 releng/ 分支上的代码树会正式命名为 -RELEASE,同时由一位 Release Engineer 开始最终的 build(对应的文件会发布到 FTP 上,并在 网站 上提供链接),并在适当的时候将 releng/ 分支上的代码tag 成 release。此后, Security Team 需要将 Release Engineer 签名的 -RELEASE
放到 freebsd-update builder 上再次 build、签名,并生成二进制更新所需的文件。
由于安装用的 ISO 映像文件都比较大,传统上将这些映像文件分发到全球的镜像站点上需要一些时间。现时,云服务提供商往往还有自己的 QA 步骤,因此最终宣布 -RELEASE 的时间往往会比 FTP上出现的时间晚上一周左右。技术上这段时间这个 build 依然只是一个发布候选版本(Release Candidate),因此普通用户不应使用这些版本,因为在这一周的时间如果遇到一些突发状况的话可能会需要将这个版本撤回(例如原本应发布为 FreeBSD 4.6.1 的 FreeBSD 4.6.2 就是这样的情况)。
上次做重贷款时利率还很低,彼时设立托管(escrow)账户来代缴地产税相当于一个年化利率为 2% (加州 FIN § 50202 (d) )的零存整取账户,而现时的存款利率普遍已经超过了3%,因此在去年我就已经产生了取消托管账户的想法。
很久以前在 macOS 上配置了一次,然后具体怎么配给忘了一个干净,所以这次写一个作弊条。