python之private variable
    
            
摘要:【python之private variable】 Since there is a valid use-case for class-private members (namely to avoid name clashes of names with names defined by subclasses), there is limited support for such a mechanism, calledname mangling. Any identifier of the form__spam(at least two leading underscores, at mos.
        
阅读全文
摘要:【python实例、类方法、静态方法】 参考:http://blog.163.com/yang_jianli/blog/static/161990006201122411586729/
        
阅读全文
摘要:【python常用option】 1. -c cmd : program passed in as string (terminates option list) 解析字符串命令,不读cmd之后的option 2. -i : inspect interactively after running script; forces a prompt even if stdin does not appear to be a terminal; also PYTHONINSPECT=x 运行完输入脚本后,进入交互模式,通常用于自己检测状态 3. -m mod : run libra...
        
阅读全文
摘要:【access】 表头文件#include 定义函数int access(const char * pathname, int mode); 函数说明access()会检查真实用户是否有权限读/写某一已存在的文件。参数mode有几种情况组合, R_OK,W_OK,X_OK 和F_OK。R_OK,W_OK与X_OK用来检查文件是否具有读取、写入和执行的权限。F_OK则是用来判断该文件是否存在。参考:http://blog.sina.com.cn/s/blog_6a1837e90100uh5d.html
        
阅读全文
摘要:【FD_CLOEXEC】 通过fcntl设置FD_CLOEXEC标志有什么用? close on exec, 意为如果对描述符设置了FD_CLOEXEC,使用execl执行的程序里,此描述符被关闭,不能再使用它,但是在使用fork调用的子进程中,此描述符并不关闭,仍可使用。
        
阅读全文
摘要:【fork后父子进程文件描述问题】 一张图可以浅析的解释: 参考:http://wenku.baidu.com/view/dd51581bff00bed5b9f31d8e.html
        
阅读全文
摘要:[split]1.str.split([sep[,maxsplit]])Return a list of the words in the string, usingsepas the delimiter string. Ifmaxsplitis given, at mostmaxsplitsplits are done (thus, the list will have at mostmaxsplit+1elements). Ifmaxsplitis not specified or-1, then there is no limit on the number of splits (all
        
阅读全文
摘要:[信号] SIGTSTP和SIGSTOP的唯一区别: 将进程暂停是SIGTSTP的默认action,用户可以自定义一其handler,而将进程暂停是SIGSTOP的定死的action,用户不能修改。此外,二者没什么差别,都使用SIGCONT来讲进程重新激活。SIGKILL和SIGSTOP的区别 SIGKILL提供给管理员杀死进程的权利, SIGSTOP提供给管理员暂停进程的权利, 所以这两个信号不能被忽略和重定义。 Kill父进程后, 子进程的父进程号为1; 但是stop父进程后子进程的父进程号还是该父进程, 一个是杀死, 一个是暂停SIGINT :信号被当前进程树接收到,也就是说,不...
        
阅读全文
摘要:[kill] linux中一共有32种信号,在/usr/include/bits/signum.h 头文件中可以看到 1 #define SIGHUP 1 /* Hangup (POSIX). */ 2 #define SIGINT 2 /* Interrupt (ANSI). */ 3 #define SIGQUIT 3 /* Quit (POSIX). */ 4 #define SIGILL 4 /* Illegal instruction (ANSI). */ 5 #defi...
        
阅读全文
摘要:[进程组] 1. getpgrp(), getpgid(0) 可获取进程组id, 进程组长的pid等于pgid. 如果进程组长exit, 则进程组依旧存在, 组内其它进程的组ID仍然是之前的ID, 即不存在进程组长了. 2. fork()一个子进程后,子进程的组ID为父进程的组ID. 可以通过setpgid()来更改. 3. shell 中执行一个后台命令, 则会创建一个进程&进程组 4. shell 中执行一个前台命令, 则会创建一个进程&进程组, 如果有管道, 则所有的管道命令在同一个进程组 5. 一个终端所有的前后台进程组的进程都有一个session中, 拥有相同的ses
        
阅读全文
摘要:[查看用户终端]1、只查看当前终端的可以使用如下两个命令:tty 和 who am i其中who am i仅显示当前用户正使用的终端和登录时间如下图所示:2、查看所有终端1.命令w的功能最全面,能显示用户登录名、终端标志、星期几登录和具体登录时间、闲置时间、用户正在执行的程序、占用CPU时间、系统的运行时间和平均负载,例如:[root@AaronWong dev]# w 19:06:44 up 8:16, 2 users, load average: 0.00, 0.01, 0.05USER TTY FROM LOGIN@ IDLE J...
        
阅读全文
摘要:[linux进程的几个状态]1. Linux进程状态:R (TASK_RUNNING),可执行状态&运行状态(在run_queue队列里的状态)2. Linux进程状态:S (TASK_INTERRUPTIBLE),可中断的睡眠状态, 可处理signal3. Linux进程状态:D (TASK_UNINTERRUPTIBLE),不可中断的睡眠状态, 可处理signal, 有延迟4. Linux进程状态:T (TASK_STOPPED or TASK_TRACED),暂停状态或跟踪状态, 不可处理signal, 因为根本没有时间片运行代码5. Linux进程状态:Z (TASK_DEAD
        
阅读全文
摘要:[python中os.system()的返回值] 如果第三方程序返回的是布尔型返回值,os.system会将true转为1,false转为0进行返回。问题: /bin/xxx.py是一个返回码为1的程序。 当python 程序使用os.system(”./bin/xxx.py”) 这样调用的时...
        
阅读全文
摘要:【Hadoop Streaming:aggregate】 1、实例1 测试文件test.txt mapper程序: 运行: $hadoop streaming -input /app/test.txt -output /app/test -mapper ./mapper-reducer aggregate-file mapper -jobconf mapred.reduce.tasks=1 -jobconf mapre.job.name="test" 输出: a 142 b 20 c 30 d 16 参考:http://blog.csdn.net/yfkiss/ar...
        
阅读全文
摘要:【启动JAR Hadoop任务】 一般情况下,我们会使用下面的命令来运行一个hadoop任务: 这个命令实际上是转化成下面的命令来运行的 在RunJar中,会读取abc.jar文件,然后尝试从manifest中提取"Main-Class"作为mainClass,如果manifest中没有指定,则把abc.jar之后的下一个参数当成mainClass。 参考:http://blog.iamzsx.me/show.html?id=185002
        
阅读全文
摘要:【MapReduce Notes】 1、一个Map/Reduce 作业的输入和输出类型如下所示: 2、Shuffle & Sort &Secondary Sort Reducer的输入就是Mapper已经排好序的输出。在这个阶段,框架通过HTTP为每个Reducer获得所有Mapper输出中与之相关的分块。 框架将按照key的值对Reducer的输入进行分组 (因为不同mapper的输出中可能会有相同的key)。Shuffle和Sort两个阶段是同时进行的;map的输出也是一边被取回一边被合并的。 如果需要中间过程对key的分组规则和reduce前对key的分组规则不同,那么可
        
阅读全文
摘要:【HDFS Architecture Notes】 1、Moving Computation is Cheaper than Moving Data A computation requested by an application is much more efficient if it is executed near the data it operates on. This is especially true when the size of the data set is huge. This minimizes network congestion and increases .
        
阅读全文
摘要:[BloomFilter] Hash函数可将一个元素映射成一个位数组中一个点,为了降低碰撞率可采用多个hash函数将元素映射成多个点。这样一来,只要看看几个位点是0或1 就可以判断某个元素是否存在于集合当中。这就是Bloom filter的基本思想,不仅可大大缩减内存空间,查找速度非常快。 参考:http://www.cnblogs.com/heaad/archive/2011/01/02/1924195.html
        
阅读全文
摘要:[gpg的使用]在Linux系统中,gpg程序可以实现非对称加密。下面简单介绍gpg命令的用法:一、创建密钥:$ gpg --gen-keyPlease select what kind of key you want:(选择密钥的种类) (1) DSA and ElGamal (default) (2) DSA (sign only) (4) RSA (sign only)DSA keypair will have 1024 bits.About to generate a new ELG-E keypair. minimum keysize is 768 bits default keys
        
阅读全文
摘要:【time】 secs:统一值,无local、UTC之分。 struct_time:有local、UTC之分。 time.time():返回secs,secs为统一值,无local&utc之分。 time.localtime([secs]):secs => local struct_time。output:struct_time。 tim.gmtime([secs]):secs => utc struct_time。output:struct_time。 time.asctime():返回字符串时间, 参数为struct_time,如果无参数,则使用localtime(ti
        
阅读全文
摘要:[python之daemon线程] A thread can be flagged as a “daemon thread”. The significance of this flag is that the entire Python program exits when only daemon
        
阅读全文
摘要:[Python之ConfigParser] ConfigParser是一个读取/写入类似于windows ini的配置文件的类. 参考:http://blog.chinaunix.net/uid-25890465-id-3312861.html 官方文档:http://docs.python.org/2.7/library/configparser.html#ConfigParser.ConfigParser.get
        
阅读全文
摘要:[pdb调试] 前置技能: os.getcwd():获取当前工作目录。 os.chdir():切换工作目录。 运行 python -m pdb myscript.py (Pdb) 会自动停在第一行,等待调试,这时你可以看看 帮助 (Pdb) h 说明下这几个关键 命令 >断点设置 ...
        
阅读全文
摘要:[ps命令] man上写到,使用ax/axu来查看当前系统上所有的进程. 其中, 单独使用a意味着列出所有与terminal关联的进程, 与x组合,则意味着显示本机所有进程. this option causes ps to list all processes with a terminal (tty), or to listall processes when used together with the x option. 另外, 单独使用x意味着列出你的所有进程, 与a组合,则意味着显示本机所有进程. this option causes ps to list a...
        
阅读全文
摘要:【SVN常用命令】1、查看命令帮助: svn help xxx, 如svn help revert2、还原当前目录下所有文件: svn revert -R .3、查看当前路径下的SVN文件详细信息:svn ls -v4、只显示repo中文件的变化状态:svn st -q5、控制log长度:svn l...
        
阅读全文
摘要:[Python Modules] 1. a module is a python source file. 2. a package is a directory with a __init__.py file within it. 1) 如果目录下没有__init__.py文件, 则python不
        
阅读全文
摘要:【IR系统的基本性能】 1、访问内存数据比访问磁盘数据快得多,只需要几个时钟周期(大概 5 × 10−9 s)便可以访问内存中的一个字节,与此形成鲜明对照的是,从磁盘传输一个字节所需要的时间则长 得多(大概 2 × 10−8 s)。因此,我们会尽可能地把数据放在内存中,特别是那些访问频繁的数据。这种将频繁访问的磁盘数据放入内存的技术称为缓存技术(caching)。 2、进行磁盘读写时,磁头移到数据所在的磁道需要一段时间,该时间称为寻道时间,对典型的磁盘来说平均在 5 ms 左右。寻道期间并不进行数据的传输。于是,为使数据传输率最大,连续读取的数据块也应该在磁盘上连续存放。举
        
阅读全文
摘要:【词条归一化】 词条归一化(token normalization)就是将看起来不完全一致的多个词条归纳成一个等价类, 以便在它们之间进行匹配的过程。最常规的做法是隐式地建立等价类 2,每类可以用其中的 某个元素来命名。比如,在文档和查询中,都把词条anti-discriminatory 和 antidiscriminatory映射 成词项antidiscriminatory, 这样对两个词中的任一个进行搜索,都会返回包含其中任一词的文档。 一种建立等价类的方法是维护多个非归一化词条之间的关联关系。该方法可以进一步扩 展成同义词词表的手工构建,比如将car 和 automobile归成同义..
        
阅读全文
摘要:【总览】 构建倒排索引的几个主要步骤: (1) 收集待建索引的文档; (2) 对这些文档中的文本进行词条化; (3) 对第 2 步产生的词条进行语言学预处理,得到词项; (4) 根据词项对所有文档建立索引。 所谓词条化(tokenization)指的是将原始的字符流转换成一个个词条(token)的过程。而语言学预处理的主要目的在于建立词条的等价类,其中每个等价类对应一个词项,这些词项最终用于建立文档的索引。构建索引的过程主要在第 1 章和第 4 章介绍,本章暂不详述。本章最后讨论倒排记录【词条化】 定义好文档单位之后,词条化是将给定的字符序列拆分成一系列子序列的过程,其中每个...
        
阅读全文
摘要:[HDFS设计理念]1. 读取整个数据集的时间延迟比读取第一条记录的延迟更重要. 2. HDFS以高延迟为代价,要求低时间延迟数据访问的应用,不适合在HDFS上运行.3. namenode决定了集群的容量.4. HDFS中的文件只支持单写入者,仅支持在尾部写入.
        
阅读全文
摘要:[grep 过滤.svn文件] 问题: 在repository搜索代码时,常常会搜索到.svn的代码,如果不想搜索.svn目录下的相关代码怎么办? 1.使用管道进行双层“过滤”,其中第二次grep使用了-v选项,即逆向匹配,打印出不匹配的行grep -r 'function_name' * | gr...
        
阅读全文
摘要:[mapreduce of hadoop] 1. MapReduce作业(Job)是客户端想要执行的一个作单元, 它包括: 输入数据, MapReduce程序, 配置信息. 2. Hadoop将作业成若干个小任务来执行其中包括类任务: map任务, reduce任务. 3. tracker: 4. 输入分片 5. 数据本地化优化 6. reduce 7. 多个reduce
        
阅读全文
摘要:【词项邻近】 邻近操作符(proximity)用于指定查询中的两个词项应该在文档中互相靠近,靠近程度通常采用两者之间的词的个数或者是否同在某个结构单元(如句 子或段落)中出现来衡量。【停用词】 一些常见词在文档和用户需求进行匹配时价值并不大, 需要彻底从词汇表中去除。这些词称为停用词(stop word)。一个常用的生成停用词表的方法就是将词项按照文档集频率(collection frequency,每个词项在文档集中出现的频率)从高到低排列,然后手工选择那些语义内容与文档主题关系不大的高频词作为停用词。停用词表中的每个词将在索引过程中被忽略。图 2-5 给出了一个停用词表的片段。使用停用..
        
阅读全文
摘要:【RAII - ResourceAcquisition Is Initialization】 获得一个资源的时候,不管这个资源是对象、内存、文件句柄或者其它什么,你都要在一个对象的构造函数中获得它, 并且在该对象的析构函数中释放它。当你创建资源的时候将它放入封装类对象构造函数(new出来的指针立即放入shared_ptr析造函数里), 当该对象离开作用域时,对象析构函数会自动销毁资源。【shared_ptr】 在shard_ptr使用中经常会发现,一个对象会有两次被析构的情况。其实这种是因为那个对象指针被两次当成shard_ptr构造函数里的参数。一定要避免这种现象。考虑如下代码:1 {2..
        
阅读全文
摘要:【关于李】 某日看到一个关于李的相关事迹评价,觉得有些说的有道理。对于李的评论比较敏感,褒贬不一,只记录一条。 李2010年创办了自己的第一家公司,时年49。在其创办其公司前,到处游走各大高校、各种出书,指导大学生创业,充当创业导师,点评创业者。一个年近50从未创过业的人有足够能力指导他人创业吗?
        
阅读全文
摘要:【布尔查询的处理】 1、建立好倒排索引后如何处理查询呢?看下例: 2、对于And、Or、Not的操作,很容易想到都可以在O(N1+N2)内解决,即线性(N1、N2为文档频率,即倒排索引表长度)。 3、查询优化(Query Optimization),除了AndOrNot的算法设计外,组织与同等转换查询过程对查询的效率也有很大的帮助。一个启发式的想法是: 按照词项的文档频率(也就是倒排记录表的长度)从小到大依次进行处理,如果我们先合并两 个最短的倒排记录表,那么所有中间结果的大小都不会超过最短的倒排记录表 2,这样处理所 需要的工作量很可能最少。
        
阅读全文
摘要:【Information Retrieval】 1、信息检索/获取(Information Retrieval,简称IR)是从大规模非结构化数据(通常是文本)的集合(通常保存在计算机上)中找出满足用户信息需求的资料(通常是文档)的过程。 2、布尔检索模型 3、文档(document)是信息检索系...
        
阅读全文
摘要:【回文O(N)算法】 利用回文的对称性质,可以设计出O(N)的算法。 参考:http://blog.csdn.net/ggggiqnypgjg/article/details/6645824
        
阅读全文
摘要:【template】 1、当定义template的时候,并没有生成实例,当使用一个模板的时候才会生成一个实例。 2、模板的编译: 1)在实例化之前,先检查模板代码本身,查看是否有语法错误,如遗漏分号。 2)在实例化期间,检查模板代码,看是否所有的调用都有效,如类型匹配。 3、自定义类型会优先于参...
        
阅读全文
摘要:【maxosx】1 open /usr/include【ubuntu】 发现三个,如下: xdg-open xxxx.pdf gnome-open . nautilus . 喜欢把它alias一下 .bashrc alias openpdf='xdg-open' alias nautilus='opendir' 转自:http://dongyulong.blog.51cto.com/1451604/426694
        
阅读全文
摘要:[自定义模板类型vs模板类型自动推测] GCC在编译时,先确定看是否人工定义了模板的类型,如果定义了,则看传递的参数是否能转换成定义后的类型,如果没定义,则根据参数确定定义的类型. 1. 是否人工定义了类型.有的话到第2步,否的话到第3步. 2. 参数是不否能转换成定义的类型, 是的话到第4步,否的话第5步. 3. 根据参数推測类型,转到第2步. 4. OK,编译通过. 5. FAIL.编译失败.
        
阅读全文
摘要:[protobuffer] 1、扩展名为.proto。 2、定义一个协议: 3、定义一个Service: 4、编译器为protoc,使用protoc: 5、style:所有的类型名均CamelCase,此外: 1)message中的字段小写。 2)enum中的字段大写。 3)services中的字段CamelCase。
        
阅读全文
摘要:[多重继承&虚继承] 1、对于下面左图的类层次,Bottom的内存结构如中间的图,当把Bottom*转换为Right*时,如下右图。 2、对于虚继承,类层次图如下左,内存结构图如下右. 3、普通继承,基类被放置在类内存的前端;虚继承,基类被放在类的后端,另外在类的头上放置一个vbptr,指向一个vtable,该vtable内含基类到当前点的偏移、当前点到整个对象原点的偏移、本对象的类型。 更多请参考:http://blog.csdn.net/littlehedgehog/article/details/5442430
        
阅读全文
摘要:[What I'm Researching] 1、C++11 2、NLP 3、android dev 4、warm up 5、PageRank
        
阅读全文
摘要:[JobTracker和TaskTracker] 1、JobTracker 对应于 NameNode,TaskTracker 对应于 DataNode。 2、JobTracker是一个master服务,软件启动之后JobTracker接收Job,负责调度Job的每一个子任务task运行于TaskTracker上,并监控它们,如果发现有失败的task就重新运行它。一般情况应该把JobTracker部署在单独的机器上。 参考:http://blog.sina.com.cn/s/blog_4fb88d6c0100z25m.html
        
阅读全文
摘要:[MapReduce] 1、Google三宝:分别是03年SOSP的GFS,04年OSDI的MapReduce,和06年OSDI的BigTable 2、Hadoop实际上就是谷歌三宝的开源实现,Hadoop MapReduce对应Google MapReduce,HBase对应BigTable,HDFS对应GFS。HDFS(或GFS)为上层提供高效的非结构化存储服务,HBase(或BigTable)是提供结构化数据服务的分布式数据库,Hadoop MapReduce(或Google MapReduce)是一种并行计算的编程模型,用于作业调度。 3、什么是MapReduce? 如果我想统计下过.
        
阅读全文
摘要:[How To Use Google Flags] 1、Commandline flags are flags that users specify on the command line when they run an executable. In the command -l and -f /
        
阅读全文
摘要:【Common Use Shell Commands】 1、ps aux:查看当前所有进程 ,以用户名为主键。可以查看到 USER、PID、COMMAND(binary所有位置) 2、netstat -an:查看当前所有socket连接。可以查看到 Proto(tcp4/udp4)、LocalAdd...
        
阅读全文
摘要:【The Process of Google Hiring】 1、keynote 1: The Google hiring process is designed to hire the most talented, creative, and articulate people in the world who will be thebest fitfor Google. So if you're refused by google, it doesn't mean you are a failer, it exactly mean you're not fit fo
        
阅读全文