idx-ubyte 文件格式

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

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

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

Windows IOCP 示例

这个示将接收到的数据原样返回给客户端:

1#include <WinSock2.h>
2#include <WS2tcpip.h>
3#include <MSWSock.h>
4#include <cstdio>
查看全文

Windows 程序添加图标

首先需要一个 ico 格式的图片,然后创建一个 .rc 的资源文件,内容如下:

1IDI_ICON1 ICON "icon.ico"

在 CMake 配置中将 .rc 资源文件添加到源码列表中:

查看全文

Windows 程序删除 CMD 窗口

需要将项目类型设为桌面程序。此时入口函数默认为 WinMainCRTStartup,它会在初始化后调用 WinMain 而不是 main。 可以将入口函数修改为 mainCRTStartup 来调研 main。

VS 的链接选项:

1:/SUBSYSTEM:windows;/ENTRY:mainCRTStartup
查看全文

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 
查看全文