海外华人的小心思

很多人出了国读书工作定居海外后,对于中国有一种复杂的心思。 一方面希望中国变得越来越好,在国际上越来越有影响力。这样作为华裔将来身板能站得更直一些。另一方面又不希望中国超越美国成为世界头号强国。那不是说明自己当初做了一个sb的决定么。 有的人就问,那能当骑墙派吗?当然可以。人的本质都是趋利避害的。资本家总是说不要把鸡蛋放在一个篮子里。所以很多人自然而然的想两头的便宜都占。这种人容易成为远程“爱国党”。将来万一中国发生什么事情,比如说台海战争了,对于这些人来说,如果中国赢了,那自然是乐见其成。如果中国输了,诶,还好老子是美国人,不用承担任何结果。真是一本万利。 所以要特别当心那些远程鼓吹极端民粹的海外华人。

舆情治国

舆情治国似乎既有民主的群众基础,又有毒菜的执行效率。是不是属于中国特色的制度创新? 当然,以上只限于舆论上允许讨论的话题。而正好规避了大方向被乌合之众带偏的风险。

又骑上了自行车

去年公司报销健身费用,用这点钱买了一个自行车。想来自从本科毕业之后,也快10年没有骑过自行车了。自行车作为国内生活的必须品,在国外居然变成了一种像滑雪一样的运动。以至于帽子手套衣服鞋子等等配件一个都不能少。不同生活习惯下的差异真是大呢。 在街道上蹬了一个小时,屁股隐隐作痛。果然是10年没骑生疏了……

朋友圈晒娃

朋友圈有一些朋友喜欢天天晒娃,对,是天天晒。今天娃说什么了,明天娃玩什么了。特别是上小学前。 自己有了娃之后,才体会到做父母的mixed feeling。在付出持续的输出之后,能获得娃成长的反馈。有的时候觉得娃的一个表现的很可爱,但是也必须承认同样的举动在陌生人看来可能屁都不是。有时候觉得我靠娃长得好美。转念一想,以我评判别人的标准来看可能最多中等甚至偏下。毕竟自己长得这样,娃能好到哪里去? 说实话除了自己家人,很少有人愿意关注别人孩子的点点滴滴吧?可能你的娃是很漂亮,是很天赋异禀。但是也要符合统计规律吧? 很想问问那些人觉得你的娃在同龄人中属于什么百分比?可能人人都觉得是top 5%。那么问题就来了,剩下的95%是不会用微信还是肿么回事?

Shitposting

个人网站反正没人看,干脆车库里放一个服务器做host。省了一年几十刀。用了10年的主题换一下,现在不是流行minimalist, material design的么。有些垃圾微博朋友圈不好发,就发这儿好了。

记录一下几个debug的问题 (2)

问题表征 我负责的功能使用了一个MAP(我们团队重写的std::map),在往MAP里添加元素的时候segv。 问题分析 这个MAP的key是个struct,里面有6个VECTOR(重写的std::vector)。先是研究了半天这个struct的lessThan函数,发现没有问题。 下一步,gdb查看了每个元素添加进MAP的过程,一共添加了3000+次,也没有问题。 后来发现,MAP本身所在的memPool和MAP中key里6个VECTOR使用的memPool不一致。进一步发现插入key前的struct使用的memPool和MAP的memPool不是一个。 MAP所在的memPool会被用来做cache,即会被保留将来使用。而struct的memPool是每次计算用的临时memPool,每次计算完会rewind。所以MAP中的key指向的位置可能已经无效了。 至于为什么在MAP加入key的时候(copy一份key在MAP中),使用的是key的memPool而不是MAP的memPool,原因在VECTOR的copy构造函数使用的是VECTOR的memPool。如果是一般对象就没有问题了。 解决方法 创建struct对象的时候,使用MAP所在的memPool。

记录一下几个debug的问题 (1)

问题表征 严重内存泄漏。 我负责的部分使用了一个第三方的库。研究发现两部分代码都没有内存问题。 我们公司的代码全是建立在mempool申请的内存上,好处是只要创建对象,不用析构,省时间而且能控制内存泄露。 第三方的库使用正常heap上分配的内存,析构函数中释放这部分内存。 所以两方配套时就出现了问题:我们的对象从来不析构,导致对象中第三方库的对象也不能正常析构,造成了内存泄漏。 解决方法 把所有第三方库的动态内存调配切换到mempool上。一劳永逸但是工作量巨大; 把所有第三方对象建立在函数stack上,用完自动释放。这样对象不能重用; 手动析构第三方对象。需要小心谨慎,稍有不慎就内存泄漏或者释放野指针。 最终解决方案:3。