通过 Matrix-WeChat 将微信消息转发至 Beeper

Keywords: #Miscellaneous

平时不怎么用微信,原因是微信会导致我给 PowerToys 配置的快捷键映射全部失效,具体参考这个 PowerToys Issue

总之,虽然 Issue 里已经解决了这个问题,但是长期的习惯下来,我也不怎么在 Windows 上挂微信了。根本原因还是我微信上朋友很少。

莫比乌斯反演

Keywords: #Mathematics

其实就是重新整理了一下 Introductory Combinatorics Fifth Edition 容斥原理一章莫比乌斯反演一节,修正了书上错误的内容,加上了一些证明的内容。虽然我想说的和网上已有的资料大同小异——容斥原理、二项式反演和数论反演——不过本文打算从最一般、定义在偏序集上的 Möbius 反演开始。

C++ 用户定义 Ranges 算子

Keywords: #C/C++

写这篇文章只是我在奇怪为什么没人介绍怎么自定义 C++ Ranges 标准库的 View Adaptor。虽然说 C++20 标准其实还没定义要怎么实现,但是不至于连 range-v3 的都没有吧?

C++20 新引入的 Range 的必要性无需赘述,它解耦了迭代和计算的逻辑,抽象出「范围」的概念,使得相比于旧的 Algorithm 库,Range 库中的算法更容易被组合,借此可以写出更清晰、运行效率更高的代码。作为 C++20 的四大件、C++23 的顶梁柱之一,基本上就是奔着取代前 C++20 的算法库来的。

在 macOS 上用 Game Porting Toolkit 运行原神崩铁

Keywords: #Game

参考了在 Linux 上运行《原神》和《崩坏:星穹铁道》的方法,利用 macOS 14 的 Game Porting Toolkit 成功运行了 PC 版的《原神》和《崩坏:星穹铁道》。记录一下过程。

简单来说就是 Wine 没有自带 DirectX 的实现,以前都只能用第三方社区实现的 DXVK。而今苹果官方直接自己实现了一套 DirectX 接口给 Wine,叫做 D3DMetal,这样就能跑起来各种游戏了。所以这套东西的关键是苹果官网下载的 Game Porting Toolkit 中的 D3DMetal 二进制。

小球放到盒子里的排列组合问题

Keywords: #Mathematics

这也算是个讲烂的话题了,网上搜到一堆。前几天刚复习到了,本想随手水一篇文章,结果又写长了。

其实这篇文章本意是想测试一下评论功能,所以一开始只有下面这张表格。但是还没开始写评论功能就已经上线了,后面就索性补充了一堆解释和证明。

GCC 部分内建位运算函数轮子

Keywords: #C/C++

某个空虚寂寞的晚上,随便造点轮子,只是常用的二进制位运算的函数而已。实现不一定是常数最优的,可读性优先。

裸的打表、分块打表、不到 log 级别的表不写,不屑。

C++ CRTP 简介

Keywords: #C/C++

看标题就知道我打算重写一遍之前的 CRTP 文章,加上既然 C++23 快要出来了,我也研究了一下 C++23 的 CRTP 能不能有一些变化。

博客迁移

之前那个 xr1s.me 大概是 OOM 了挂了,本来就是加了 Swap 才能跑的,其实重启一下应该就好了。

但是因为工作后也不怎么写博客,服务器都直接懒得维护了,现在打算就静态简单搞搞吧。目前用的是 Hugo,没有特别的理由,因为看到了个喜欢的主题——众所周知,我喜欢衬线体,显得我好像很有文化一样。