VS Code 下载慢的解决办法

将下载链接的域名改为 vscode.cdn.azure.cn,这是微软在国内的 CDN 地址。

例如 https://az764295.vo.msecnd.net/stable/899d46d82c4c95423fb7e10e68eba52050e30ba3/code_1.63.2-1639562499_amd64.deb
改为 https://vscode.cdn.azure.cn/stable/899d46d82c4c95423fb7e10e68eba52050e30ba3/code_1.63.2-1639562499_amd64.deb

可以使用下面的 Python 脚本进行下载:

1undefined

idx-ubyte 文件格式

idx-ubyte 是一种很简单的二进制文件格式,著名的 MNIST 使用的就是该格式。

它由一个 magic-number 和各个维度的长度组成 header,然后是主体数据。magic-number 和维度的长度都是 32 位大端无符号整数。

  • idx1-ubyte 的数据有一个维度,magic-number 的值为 0x00000801
  • idx3-ubyte 的数据有三个维度,magic-number 的值为 0x00000803
1undefined

一些常见的延迟级别

亚纳秒级

  • CPU 访问寄存器
  • CPU 时钟周期

纳秒级

  • 访问 L1/L2 缓存

找不到 config.guess 和 config.sub 文件

现象:

1configure: error: cannot find required auxiliary files: config.guess config.sub

解决办法:

软件激活功能的实现方法

常用激活方式

完全离线激活

通过某种算法规则生成激活码,软件通过该规则对激活码进行验证。用户只要将激活码填入软件即可。

规则示例:

  • 激活码由四个两数组成 AA-BB-CC-DD

DBus 自省 XML 生成 Qt 代码

各种支持 DBus 的开发框架都能够通过 XML 自动生成代码,例如 Glib 的 gdbus-codegen 和 Qt 的 qdbusxml2cpp

通过 DBus 对象 org.freedesktop.DBus.Introspectable 接口下的 Introspect 方法可以自省 XML,这样就不需要手写了。

但是 d-feet、dbus-send 等工具会给返回值加上类型标注或者换行符导致需要人工修改。因此需要自己写一个脚本来自省 DBus。

使用示例:

Python 虚拟环境与依赖导出

因为不同的项目之间可能存在依赖冲突,因此需要使用虚拟环境,避免在全局环境上安装依赖。

Python 依赖导出

通过 pipreqs 可以将当前项目依赖的所有包导出到 requirements.txt 中:

1$ pipreqs . --encoding=utf8 --force 

Python的异步IO

协程

Python 的异步 I/O 基于协程实现。使用async关键字来创建一个异步函数,对异步函数的调用不会执行该函数,而是生成一个协程对象。
对每一个协程对象,都必须等待其结束(即使是没有启动的协程),否则会产生一个RuntimeWarning

示例 :

1# 创建一个异步函数
2async def say_hello():

X11 剪切板

参考:

首先在 X11 上剪切板被称作 Selections,系统上可以有任意多个 Selections,并且有三个预定义的标准 Selections:

  • primary - 当前选中的文本,例如终端上点击鼠标中键可以立即粘贴选中的文本
  • secondary - 没有被使用
  • clipboard - 通常意义上的剪切板,不同进程间交换数据时使用它