C 语言内联汇编
虽然C++ 是C 语言的超集,但是二者并不能做到无缝衔接。这里记一下C 和C++是如何以静态链接库的形式调用彼此的。
虽然C++ 是C 语言的超集,但是二者并不能做到无缝衔接。这里记一下C 和C++是如何以静态链接库的形式调用彼此的。
因为使用Python 开发信号发生器需要一个精度较高的定时器,而Python 自带的
time.sleep
函数的最小精度为1ms,且不太稳定。于是有了这篇笔记。
仅记录对N-api
的使用方法以及函数签名。在Windows
平台下,如果我们安装的是32 位的Nodejs,N-api
应该是生成32
位的.node
文件,而且并没有启用UNICODE
的支持,即所有_WIN64, UNICODE
下的宏定义都是无效的。所以在Winodws 版本下的API 函数最好都调用A
结尾的。
关于容器技术的原理,可以参考造轮子系列-手写docker。通过容器技术,可以将我们不同服务的运行环境隔离开来,避免不必要的不兼容问题。
容器在Linux 可以理解为一个独立的、具有隔离的运行环境的进程。
不出意外的话,在百度上搜索GitHub Actions 自动部署
,大概率会得到阮一峰老师的GitHub Actions 入门教程。然正如费曼先生所言:凡我不能创造,我就不能理解。这里记录一下在尽量不采用外部Actions 的情况下如何一步一步搭建本仓库的。
处于跨平台考虑,仅记录multiprocessing 库的用法
因为Python 中的多线程在CPU 密集型的任务中会变成线性的,并不能充分发挥多核处理器的优势。所以我们可以通过多进程来进行并行任务,并且我们还可以通过管道、共享内存、进程锁等机制来实现进程间的数据共享。
在网络上看到一个神经网络将图片转动漫风格的库,但是作者并没有公布最新版的源码。下载试用后发现软件功能挺好,但是在图片转换时会卡死主界面。看Issues 时,网友提到可以通过逆向工程提取*.onxx.zip
文件的解压密码。在提取密码的同时,发现也能看到部分源码,于是想着也许可以自己动手修复一下。
在编写Python 代码时,有时我们会遇到请求管理员权限的情况,比如修改hosts 文件、打开某些端口等等。我们可以在打包Python 成可执行文件时附上UAC 相关的信息。然而更一般的,我们可以在代码中判断当前进程是否以管理员权限运行,如果不是,则调用系统的runas
命令,通过管理员权限重新启动一个进程。