ws_toy_story_30th
Chrome on linux 初始化
Docker daemon 使用代理
目前Dockerhub无法从中国大陆互联网直接访问,需要设置docker daemon代理才能从Dockerhub拉取镜像。
给docker daemon设置代理是个老大难问题。根据官方文档的说法,修改daemon.json即可。但是该方法在实践时可能失效。
根据网络上的博客,为docker daemon设置启动时环境变量是有效的。其中系统与用户的docker daemon的systemd设置文件需要放在不同的位置(第一次需要手动创建)。
- 系统systemd:
/etc/systemd/system/docker.service.d/proxy.conf - 用户systemd:
~/.config/systemd/user/docker.service.d/proxy.conf
一般的设置如下:
1 | [Service] |
重启docker daemon使设置生效:
1 | # Restart system docker daemon |
Windows与UNIX之间的按键映射
问题阐述
配置nvim快捷键时遇到了如下问题。动机是设置<C-`>作为唤起终端(ToggleTerm)的快捷键。最初的设置如下:
1 | require("toggleterm").setup({ |
这个设置在Debian系统中工作良好,无论是本地还是远程连接。但是用windows终端(无论是自带的cmd窗口终端,windows terminal还是wezterm)远程连接linux服务器时,这个快捷键永远是失效的。
原因说明
排查后发现原因是控制键(Ctrl)的组合键在Windows和UNIX系统下遵守的协议是不同的。区别可以参考Wikipedia。其区别体现在<C-Key>的组合键输入给系统的字符是不一样的。可以在终端输入<C-v><C-Key>来测试<C-Key>输入的对应字符。
幸运的是,windows terminal可以设置Ctrl组合键的行为,其中包含输入特定字符的接口。因此绝大部分UNIX的Ctrl组合键可以通过绑定来实现。Emac的快捷键和Ctrl控制键绑定很深,因此社区中有对该设置的讨论,例如issue。
不幸的是,UNIX系统中的<C-`>打出的字符是^@,对应的是NULL(\u0000)。因此通过windows terminal的设置来绑定是无效的(fuck me)。
解决方案
将windows中输入的<C-`>在UNIX终端中输出的字符也绑定为ToggleTerm的快捷键。测试得到输出的字符串是<C-Space>,因此以下设置可以实现目标:
1 | require("toggleterm").setup({ |
这个设置的代价是<C-Space>不能再绑定其他动作。注意'<C-\\><C-n>:ToggleTerm<CR>'的设置,在终端模式下需要先退出让nvim接管输入再调用命令。
Final
除非vscode中毒,用windows终端时推荐不要配置<C-`>作为快捷键,<C-b>之类都是更好的选择。
python文件路径处理
总是忘记需要现查,记录一下。
os.path.exists(path_str):检查路径字符串path_str指示的路径是否存在。os.getcwd():获取当前工作目录。os.makedirs(path_str):根据path_str创建目录。os.path.dirname(file_path_str):获得文件所在路径。
实例:在写文件/home/baldlee/data/x1/settings.json前,补全缺失的目录。(直接调用open会提示路径不存在错误)
1 | import os |
conda解析加速
conda install用原生的solver速度很慢,anaconda为了解决该问题开发了conda-libmamba-solver。
使用方法参考教程
Cuda新特性学习
Cuda cluster
自cuda9.0后,cuda的并行抽象多了一层cuda cluster。原来只有thread-block-grid的分层,如图:
加入cluster抽象后,变成了thread-block-cluster-grid,如图:
cluster的好处是,一个cluster内所有block可以互相共享shared memory,即一个block可以“远程”访问同cluster下的另一个block的shared memory。代价是block之间需要同步,因为shared memory的寿命周期从block共享变成了全cluster。如果隔壁有block还没用完本block的shared memory,那么本block就不能结束。
使用教程可见文档
































































































































