隔壁老王

Jack's Blog

使用Google开源库breakpad实现错误报告功能

Google大法好

前阵子写的微信公众号后台服务器自动崩溃重启了一次,看日志没任何头绪,看来需要core dump。 但是搜索一阵子发现,这玩意真难用,要ulimit -c unlimited后才会生成dump。又搜索一番,发现Google出品的breakpad,谷歌出品,必属精品,就它了! 按照官方教程,下载源码 git clone https://chromium.googlesource.co...

Makefile要点

那些年我们一起踩过的Makefile大坑(其实并没有,是你丫比较菜而已。。。)

Makefile 要点 不能用 ~ 表示 home 路径,可以用 $HOME $(CXX) $(LDFLAGS) -o $(EXEC) $^ $(INCLUDEDIR) $(LIBDIR) 这种写法没问题,但是把$(INCLUDEDIR) $(LIBDIR)放到 -o 前面就会出现 link 失败,wtf 检测文件是否存在并执行命令 ...

Mutable Lambda与带有状态的(Stateful)Function Object

天干物燥,小心火烛

众所周知lanmbda值捕获有2种方式:by reference, by value,前者可以对原对象进行修改,后者不能。还有一种方式,声明lambda为mutable,以by value方式捕获对象,但在这个lambda定义的函数对象内,有权利涂写传入的值。例如: int id = 0; auto f = [id]() mutable { std::cout << "id: ...

Ubuntu下部署MediaWiKi小记

海纳百川,有容乃大

Ubuntu下部署MediaWiKi小记 MediaWiki简介 MediaWiki是一款基于服务器的自由软件,并获得了 GNU 通用公共许可证 (GPL)的许可。这款软件的设计之目的是使其运行于一个每天拥有百万次点击量网站的大型服务器群组上。 MediaWiki是一款极其强大、具有极强扩展性的软件,也是实现维基(wiki)丰富多彩的功能的一个载体,其使用PHP语言来处理和显...

随机数浅谈

随机数的正确打开方式

随机数 坏例子:不要使用rand() 注:截图来自rand() Considered Harmful,youtube上也有,演讲者为Stephan T. Lavavej。 Stephan 列出了如下缺陷: 不应该使用NULL,而应该使用nullptr time()调用时钟周期为1Hz,速度慢 time()返回值为time_t,隐式转换到srand所需的unsigne...