Try Toga

Toga 是一个跨平台的Python GUI库, 支持Android和iOS,有一些简单的控件。它不像kivy那么复杂,kivy要求我们去学习 一种新的脚

C++ Constexpr Static Instances

下面这个代码是无法编译通过的 class A { public: A(val) : val{val} {} static constexpr A a1{0}; private: int val; }; 不过稍加修改就可以了,参考这里 7.1.5p9 The constexpr specifier [dcl.constexpr] (n3337) A constexpr specifier used in an object declaration declares the object as const. Such an object shall have literal

Cargo Feature

cargo add 确实挺好用,但是某个crate到底有多少个feature呢,经常连文档都说得不是很清楚。 幸好我们有 cargo feature 可以列出某个crate的所有fea

Rust minimize

rust默认的release版仍然挺大的,其实还有改进空间,这里有介绍, 这里有官方文档。简单来说可以在cargo.toml中添加以下内容 strip =

Elm 的一点想法

Elm 之前在了解rust的ui时,碰巧了解到了Elm,yew和iced都说参考了它, 而它也标榜自己是 A delightful language for reliable web applications. 昨天终于还是没有忍住,在空闲的

Crypto++ Tips

编译安装 说到加密,首先想到的当然是 openssl,但是当我想用mingw64的clang++编译时,发现还需要perl,下载perl发现还是

Nsis

一般的编译成release之后,找个地方一扔就可以运行了。但是有些时候,我们需要在用户机器上执行个脚本, 然后还要创建几个快捷方式。搞一个安装

Python Watch File Changes

说到用Python监控文件夹的变化,大家都是推荐 watchdog, 但是我发现这个工具有的时候会误报,我这里误报之后会执行编译,影响比较大。 然

Qt Get Rid of Console Window

Qt程序cmake编译出来,运行时会弹出控制台窗口,有人说这样 add_executable(TargetName WIN32 main.cpp) 就不会有。但是好像没有什么作用。 这个方法是可以的, target_link_options(TargetName PRIVATE -mwindows)

Simple Http Server

调试时,简单的http服务,以前一直使用 python -m http.server 但是有些脚本需要cors头, python默认就不行了,还得自己写。不过,幸好还有rust的si

Rust Flume

“Do not communicate by sharing memory; instead, share memory by communicating.” flume 习惯了Go的channel,经常需要在不同的线程和异步任务中传数据。rust也有,同

体验 pyimgui

通过 egui 了解到了 imgui 这个库,这个库的想法是挺好的,很像我们在嵌入式系统中常用的界面显示方式, 即每隔一段时间,刷新下整个界面。没有状态同步,简单并

Python Windows Spawn and Forget Process

运行一个程序,然后忘记(Detach)它 Taken from here if 'nt' == os.name: p = subprocess.Popen( [sys.executable, '-c', cmd], close_fds=True, # close stdin/stdout/stderr on child creationflags=subprocess.DETACHED_PROCESS | subprocess.CREATE_NEW_PROCESS_GROUP | subprocess.CREATE_NO_WINDOW, )

Cargo Ssh Git

很多时候rust都依赖一些很新库,直接引用了git,这些git网址一般是https, 但是我一般都想使用ssh来连接。 Git 配置 ~/.gitcon