跨浏览器cookie
有时候为了标识一个用户,我们需要跨浏览器的cookie,这样用户在一个浏览器的行为可以被另一个浏览器读取。当然这种行为也备受争议,对于保护用户隐私来讲,这简直是后门。所以cookie里面一定不要存任何重要数据。
不过这么做也不完全是为了用户数据跟踪。从用户体验的角度看,可以这么实现跨浏览器甚至跨域的session。具体实现上有如下几种方法:
Local Shared Objects (Flash Cookies)
Silverlight Isolated Storage
使用HTML5客户端储存数据方法。
evercookie
关于第二种有一个解释:一般装了silverlight的人都装了flas...
node_zk_browser安装时的一个问题
zookeeper基本是基于API和console进行znode的操作,并没有一个比较方便的操作界面,taobao 伯岩大神写过一个工具node_zk_browser,可以比较方便的查询zookeeper信息。地址在
https://github.com/killme2008/node-zk-browser
界面如下所示:
安装的时候遇到一个问题
Downloading zookeeper-3.4.3 from http://apache.mirrors.tds.net/zookeeper/zookeeper-3.4.3/zookeeper-3.4.3.tar.gz
这个地址是找不到的。apache的这个mirror上只有3.4.6的包了。改package.json也...
du显示只显示一层子目录/文件的大小
经常需要看当前目录下的子目录大小,比如开发机被人占满的情况,du -lh显示的是递归的所有文件大小,du -s又只统计了所有文件/文件夹合起来的大小。正常情况下需要执行:
du -lh –max-depth=1
未免太过麻烦。后来肖总提示发现这样就行了:
du -sh *
果然是学无止境啊
虚函数模板和模板类中的虚函数
自从知道了C++不支持虚函数模板之后就觉得相关的一概不支持,今天写程序的时候想把基类做成模板,然后继承基类。以为也不支持,写了一下才发现支持的,无论是非模板类继承一个特化之后的模板还是模板类继承包含虚函数的模板基类都是没问题的。从实现上看,反正使用的时候都会特化的,特化之后虚函数表指针是固定的。不存在像函数模板这种类生成的时候无法确定虚函数表的情况。
例子如下:
澄清几个关于C++继承的问题
之前讨论编码规范的时候遇到过一个问题,继承的类覆盖基类的虚函数,不写virtual关键字是否依然有覆盖(override)的效果。是个基础问题,但是大家的理解好像都不一样。验证如下:
#include
class Base
{
public:
Base (){}
virtual ~Base (){}
virtual void print() {printf("Base\n");}
};
class Middle : public Base
{
public:
Middle(){}
virtual ~Middle(){}
void print() {printf("Middle\n");}
};
class Deriv...
析构函数和成员析构的先后顺序
肖总问到这个问题,写了个程序验证:
class Member
{
public:
Member (){}
virtual ~Member (){printf(“member destruct\n”);}
};
class Base
{
public:
Base (){}
virtual ~Base (){ printf(“destruct\n”);}
private:
Member member_;
};
int main(int argc, const char *argv[])
{
Base c;
return 0;
}
结果是:
destruct
member destru...
分布式系统/NOSQL入门书单
简单记一下我看过的和觉得值得看的。主要是给@赵龙作为参考。
分布式相关
[1] 大规模分布式存储系统, http://book.douban.com/subject/25723658/
阿里日照的书,全面介绍了分布式系统的原理和实践,入门不可多得的书
[2] 分布式系统原理介绍, http://blog.sciencenet.cn/home.php?mod=attachment&id=31413
百度刘杰的,讲基本的分布式原理,有些笔误什么的。
[3] paxos算法相关, http://cxh.me/2014/08/26/paxos-study/
总结了paxos算法一些资料。
[5] 分布式数据库系统原理, htt...
自动生成ifdef标记和作者信息的插件
针对团队开发为了统一代码风格往往有比较严格的代码规范。为了自动化的生成一些不变的内容,写了如下两个插件(有的是改动):
ifdef.vim 生成ifndef标记,防止重复包含。
author_info.vim 生成更新作者信息版权声明
详见https://github.com/chenxiaohui/ifdef_generator.
495 post articles, 62 pages.