Recent Posts

.NET Framework 3.5 installation error

安装某软件时,它提示有对 .NET 3.5 的依赖,因为本地没有安装对应的版本。但 Windows 在自动安装 .NET 3.5 失败了,返回了错误号:0x800F081F …

Pelican 编译问题

今天遇到了一个问题:重新编译 pelican 项目时,发现编译生成的 articles 数量要比正常的少很多,而且没有任何出错信息。

经过研究,找 …

使用 Kill 发信号时误杀进程的问题

程序里会使用 Kill 发送 SIGTERM 信号,要求某进程组结束:

kill -15 -<pgid>

实际运行时发现一个问题,除了这个目标进程组之外,有时候其他 …

Python decorator 装饰器的 wrapper 问题

问题:

def log(func):
    def wrapper(*args, **kwargs):
        print('before call %s' % func.__name__)
        func(*args, **kwargs)
        print('after call %s' % func.__name__)

    return wrapper

@log
def test_func(a, b):
    print('%d + %d = %d' % (a, b, a + b))

使用 @log 的 decorator 后,以下的打印 …

Python decorator 装饰器

装饰器模式(Decorator Pattern)是设计模式中的一种,主要目的是提供了这样一种操作,可以在不需要改变函数实现代码的情况下,用来 …

运行程序时设置 timeout 超时

问题

因为有个临时的需求,所以开了服务并监听在某个公网端口上,然后忘了关了 …… 直到很久才想起 ……

解决

对于类似的使用 …

vim 里打开 file:line

0x00

Linux 里,很多工具都会按文件加行号file:line)的格式输出,比如 grep

$ grep -nr "Sanitize in progress..."
drivers/mmc/core/mmc_ops.c:1008:     pr_debug("%s: Sanitize in progress...\n", mmc_hostname(host));

又比如 Linux 动态 …

Linux Virtual Memory Split with 3.5G/0.5G

问题

项目里用到的一款开发板,配置的是 32 位 ARM 处理器。因为业务程序相关方面的实际开销,需要在用户态虚拟地址空间 …

Bitcoin (BTC) 算法

Bitcoin (BTC) 的算法,是求解(也可以说是寻找)一个整数(nonce),它被用于在区块链上产生新高度的区块。算法的输入是前一个区块的哈 …

Using RCS Keywords in Perforce

使用 svn 时,有时会把版本管理系统的信息嵌入到代码里,比如版本号、最近修改时间,等等。在软件调试时,这会很有帮助。因为 …