0%

说明

这里放的是我觉得没有必要专门写一篇文章的内容。

2024-07-06

V75K 不同的键有点高低不一致了,怀疑是定位板被我弄的不平了。数字 5、6、7、8 这几个位置不仅突起,而且手感还偏硬,估计是下面有电池(这同时意味着这个地方不应该再使劲按下去了,可能不安全);回车的位置下陷了,我觉得是装键帽使劲按回车导致的。

2024-07-07

  1. 鲸海轴一定要对准孔位小心插入。和其他轴体清脆一声按下去就是插好了不同,鲸海轴听到清脆一声按下去了可能是方向不正,有可能针脚都跪了。我已经跪两颗了。
  2. 卫星轴是调不好的,只有放弃强迫症安心用键盘。

2024-07-10

鲸海轴还是太重了,换回阿尼亚轴了。昨天晚上把键盘里面也拆了,定位板是有一点变形,怪不得键帽高高低低的。调是调不好了。又在可乐蛙的店铺买了特氟龙和空格卫星轴,其他店铺一般都是多个 2U 和一个 6.25U 捆绑销售的,这个店铺可以单买。

2024-07-13

  1. 还是觉得因为定位板变形导致键帽高低不平看着难受,下次换钢板定位板算了。
  2. 最好选准轴体不要自己换了。
  3. 避开短行程轴体的键盘。厂家可能为了更好的效果使用短行程的卫星轴,自己换长行程的轴体时大键按下去就会有异样的感觉。我的 V75K 大概率用的就是短行程卫星轴。我试了一下用 3.5±0.4mm 的鲸海轴和 3.5mm 的卫星轴(单独买的,不知道 V75K 标配卫星轴多长键程)也会有卡涩的感觉,说明轴体应该明显小于卫星轴键程。

eval $(ssh-agent -s)
ssh-add ~/.ssh/id_ed25519 # 根据实际情况操作
ssh -A server1
scp server2:/data /data

由于 sever1 可能没有把 server2 作为主机存储,在 scp 的时候需要输入一长串的用户名、主机、端口。

启用标记(例子:大小写不敏感搜索)

- 加上其他字符。比如 -i 表示开关大小写敏感搜索(ignore case in searches)。但是,这只对全小写的输入有用,如果查询的词中包含大写字母、又想要大小写不敏感搜索,则需要使用 -I(ignore case in searches and in patterns)。

这些标记不仅可以从命令行选项中设置,还能从 LESS 环境变量中读取,当然也能像上一段所说的那样在 less 已经打开后设置。Man 手册打开的 less 分页器似乎就是带有 -i 标志的。

Tip

在我的电脑上 vim/ 默认是大小写敏感,而 less 是默认带有 -i 标志。有些老的电脑上面 less 可能需要自己加标志。

如果想要在 vim 中使用大小写不敏感搜索,需要在搜索条目中加上 \c 转义,这个标志可以加在搜索条目的任何位置,参考 https://stackoverflow.com/a/2287449/ 。还有一种方式使用命令 :set ic 开启大小写不敏感搜索。

过滤行

先按 &(而不是 /)可以将输出过滤,只显示匹配的行。

情况

项目是由 CMake 构建的动态库,用 CPack 我们打包得到了一个 deb 包版本和一个 tar.gz 的压缩包版本。前者安装之后 demo 能够正常编译运行,但是在换用压缩包安装共享库后编译 demo 则出现了找不到库的错误(这里讨论的是非标准路径的情况,即安装路径不在 //usr/usr/local 下)。

测试 demo 是用 Makefile 写的,设置了 INCLUDE 环境变量为要包含的头文件路径,并且新增了 /etc/ld.so.conf.d/xxx.conf 和重做了 ldconfig 的 cache。但是 gcc 还是无法识别这个库。

Tip

这是因为 ldconfig 只是管理一个库在运行时可以去哪些路径搜索,静态链接的时候链接器不会去看这个配置。INCLUDE 环境变量可能是我记错了,我现在没有找到什么工具是认识这个环境变量的。CMake 认识的环境变量可以参考链接 https://cmake.org/cmake/help/latest/manual/cmake-env-variables.7.html 。Make 也认识一些环境变量,但是 INCLUDE 不在其列。

我想要真正把共享库安装在系统里面,所以不想在 Makefile 中手动去加头文件包含路径和库路径(那样的话需要修改每个 Makefile)。

解决 gcc 找不到头文件的问题

设置 INCLUDE 环境变量,但是 gcc 不认。如果认的话理应输出 ignoring nonexistent directory "/aaaa"

操作起来感觉 apt 和 dpkg 在安装和卸载软件上是可以混用的,其一安装的包可以由另外一者去卸载。

安装软件(-i | --install

dpkg -i localpackage.deb

经过测试,不必像 apt 一样需要加上 ./ 前缀以安装本地的软件包。

卸载软件(-r | --remove

dpkg -r packagename

必须要使用包名才能卸载,使用 dpkg -r localpackage.deb 这样的文件路径是无效的。查看报名的方式是:

狼蛛 M75 在 618 首发会送 80 颗鲸海轴,把鲸海轴的价格打下来了,全新在咸鱼上是 75~80 元。而且是刚好 80 颗!和我的 V75K 的按键数一样,所以头脑一热就入了。我前几天也把极光冰淇淋轴和静音轴都出了:静音轴体用着还是有点憋屈,而冰淇淋轴对于我来说始发压力(30 gf)太轻了,在滑键的时候会发出声音,我不喜欢。

🤔 是不是对我来说选择始发压力 35 gf 以上的轴体会比较合适呢?

外观:轴体本身是蓝色的,没有导光柱,和极光冰淇淋其实蛮像的,也就懒得拍了。

手感:按压力度上鲸海轴比较适中,参数和红轴很相近,但是它有一种液压感,快速重复按压会觉得压力很大(比如连续按 backspace),但是慢慢打字又觉得压力比较合适。和我之前使用的阿尼亚轴比起来肯定是要费力一些。因为有防尘壁,轴体实装后按键的稳定性相当不错。

声音:很不错,比极光冰淇淋好很多。声音也是比较闷的,音量上比阿尼亚小一点。

TL;DR

如果想要写一些 traits,而且涉及到了函数和变量(而不是类型),则需要同时加上 __device____host__ 以确保它在 device 侧和 host 侧都可见。否则会因为 SFINAE 不报错(实际上可能是在 device 侧找不到函数或变量),而且不知道为什么结果不对。

描述

项目用的语言标准是 C++17,atomicAdd 是 CUDA 中的一族函数,能对支持类型进行原子操作,其参数为一个地址和一个值,我想要判断 atomicAdd 是否有某个基本数据类型对应的重载版本。

template <typename T, typename U = std::decay_t<T>>
__device__ __host__ auto atomicAddTest(T&&)
    -> std::void_t<decltype(atomicAdd((U*)(nullptr), std::declval<U>()))>;

__device__ __host__ auto atomicAddTest(...) -> int;

template <typename T>
__device__ __host__ static inline constexpr auto atomicAddable =
    std::is_same_v<decltype(atomicAddTest(std::declval<T>())), void>;

static_assert(atomicAddable<float>);
static_assert(atomicAddable<unsigned>);

看起来很正常对不对?但是如果想要同时在 host 侧和 device 侧来使用 atomicAddable 变量,但是又忘记给这些函数加 __device__ __host__,就会有 calling device function from host 的错误,然后因为 SFINAE 不报错,下面的程序实际使用时总是走了不一样的分支,半天不知道原因在哪里!后来加了 static_assert,同时暂时性地将 SFINAE 保护的部分放到函数体里面去,才通过 LSP 了解到具体的出错原因。

接下来编译又出现一个问题:

极光冰淇淋轴是我从咸鱼上买的,本来买完有点后悔,因为我看到了有人出我更想要的蓝莓冰淇淋,而且价格相当好,但是这倒也没什么。比较难受的是:卖家说自己是到手拆,但是我拿到的轴针脚歪歪扭扭的,特别是有一个轴的金色针脚都快从中间一分二了。如果平时都没怎么用过,我都不敢想装货的时候有多暴力。而且这个卖家卖了特别多键设,原来大家的容忍度都这么高吗?

我个人觉得有棉花塞棉花,没有棉花塞卫生纸,不要在罐子中留下空隙,不然即使没有外力压迫,罐子在运输过程中不断摇晃也是可能损伤到针脚的。

吐槽完交易来说体验,我觉得极光冰淇淋有点对不起它拆机 1.4、1.5 元的价格。先看外观图,粉色的是阿尼亚,紫色的是极光冰淇淋,极光冰淇淋的颜值还是很高的,我很喜欢这种圆形防尘壁的设计:

外观是好看的,没什么说的。但是声音不好听。按键感觉也不够顺滑,有的好按有的不好按,和更便宜的阿尼亚轴完全没法比(2024 年 6 月 29 日:听说极光冰淇淋需要自润)。虽然平均压力是 40 gf,但是比 42 gf 为平均压力的阿尼亚轴体感要费力很多,是因为公差比较大吗?

C++ 中两数相除(假设被除数和除数都不是 0),同号则结果为正,异号则结果为负。模除运算则定义为:

If $a~/~b$ is representable in the result type, $(a~/~b)*b + a~\%~b == a$.(来自 https://en.cppreference.com/w/cpp/language/operator_arithmetic

实践起来则是:在被除数不是 0 的情况下,模除运算的结果总是和除数同正负。