Skip to content

Instantly share code, notes, and snippets.

@elfplz
elfplz / cpp.std.coroutines.draft.md
Created October 21, 2022 09:41 — forked from MattPD/cpp.std.coroutines.draft.md
C++ links: Coroutines (WIP draft)
@elfplz
elfplz / bFLT.md
Last active January 10, 2020 01:35
bFLT

生成 bFLT 格式的文件

# 0. 生成一个只有 .text, .data, .bss 段的 elf 文件
#  所有的段都放到一个从 0 开始的连续的 memory 中
# 修改对应的 .ld 文件
# 1. 生成 ELF 文件的时候,保留 relocation 信息
ld ... --emit-relocs -o out.elf
# 2. 使用 elf2flt 转换
elf2flt -a out.elf -o out.flt
@elfplz
elfplz / example.cc
Created November 11, 2019 09:23
boost context
class Runner {
std::function<void(void)> m_func;
boost::posix_time::ptime m_nextFireTime;
ctx::continuation m_cont;
public:
Runner() { init(); }
void init() {
m_cont = ctx::callcc(
@elfplz
elfplz / readme.md
Last active November 5, 2019 02:51
Linux AppImage

AppImage 使用例子

Qt 程序的 AppImage

# 1. 获取 linuxdeployqt
cd /tmp/
wget -c https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage
chmod a+x linuxdeployqt-continuous-x86_64.AppImage 
@elfplz
elfplz / 错误.md
Created March 8, 2019 01:19
WindowsDriver

Error Code 52

有时候安装提示成功,但是不能驱动仍然不能正常工作。提示windows不能校验证书。其错误代号是52。解决方式:https://appuals.com/how-to-fix-usb-error-digital-signature-code-52-error/。

找到注册表中HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\的对应的驱动设备的CLASSID,然后删除里面的UpperFilter以及LowerFilters

一种出现的情况是,先安装了驱动,然后再安装了bushoud。

@elfplz
elfplz / qmake.pro.md
Last active December 19, 2019 09:29
QT

设置debug和release不同参数

win32:CONFIG(release, debug|release): QMAKE_POST_LINK += $$PWD/upx -1 $(DESTDIR_TARGET)

win32:QMAKE_LFLAGS += /MANIFESTUAC:"level='requireAdministrator' uiAccess='false'"

设置输出目录

DESTDIR = $$PWD/build-out-bin

@elfplz
elfplz / README.md
Last active April 27, 2019 07:41
UMDF

TraceEvents

  • 首先生成对应的 *.pdb 文件
  • 使用tracepdb -f some.pdb生成对应*.tmf文件
  • 使用visual studio生成的UMDF模板中,internal.h中,找到TraceGuid
  • 打开 traceview.exe,然后选择File->Create New Log Session->Add Provider->Manual Entered Control GUID->选择TMF文件

参考

注册表信息

@elfplz
elfplz / README.md
Created August 22, 2018 06:46
Let's Encrypt证书

Let's Encrypt的证书签发的时候,通过一个叫做certbot的东西来实现的。这个东西的原理是,在本地执行,然后生成一个随机的文件放置到特定的目录下,然后,Let's Encrypt的颁发服务器访问这个文件,如果能够正常地获取,则表明我们对于本地的机器有控制权。然后就可以签发了。

首先,需要配置nginx,设置对应的url访问规则

        location ^~ /.well-known/acme-challenge {
                default_type "text/plain";
                alias /webapps/myapp/.well-known/acme-challenge/;
                autoindex off;
 }
@elfplz
elfplz / README.md
Created August 21, 2018 07:18
动态链接

有时候、程序执行的时候,找不到动态链接库,这是因为找不大,不在标准的位置。可以考虑通过LD_LIBRARY_PATH来设定位置。如:

LD_LIBRARY_PATH="/opt/boost/lib:${LD_LIBRARY_PATH}" ./program
@elfplz
elfplz / README.md
Created August 20, 2018 08:19
Docker 私有仓库

1. 安装 Harbor

详见github上的官方文档

假设已经装好,配置到 http://192.168.8.211:8880

2. 配置 docker client

修改 /etc/docker/daemon.json,添加