- 博客(72)
- 资源 (1)
- 收藏
- 关注
转载 腾讯VS百度
送给那些即将找工作的人1 文化百度提倡“简单,可依赖”,我的理解是做出来的产品要靠谱,要有很好的用户体验。以搜索起家的百度,对产品质量相当看中,因为当用户认定你做得不好,没口碑后可立马更换搜索引擎。公司设有专门的质量部门,各个产品都会配备有QA人员,负责产品质量。从每年校招也能看出来,做测试的比例大概是研发的二分之一。而腾讯提倡“拿来主义”、“微创新”。腾讯很多产品都是抄袭别人的,然后
2012-01-09 20:05:40
1162
转载 堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两
2012-01-09 19:55:14
640
原创 广播
1. 广播在传输层只能是UDP协议,显然是不能用Tcp协议的。2.广播在子网内进行;3.广播地址是:子网号+全1的主机号(如子网为192.168.1.0,则广播地址为192.168.1.255)
2012-01-04 13:05:31
662
原创 抽象基类的构造函数和析构函数
一直以为抽象函数由于不能创建对象,所以不应该有构造函数和析构函数。今天才知道不是这样的。 抽象基类只是不生成对象实例,但派生类仍然需要其构造函数来构造抽象类的数据部分,所以需要有构造函数,如果没有,会生成一个默认的。 析构函数仍然是释放对象的作用,如果不用多态,不显式声明也可以; 只不过很多抽象基类没有过多的成员函数来声明为纯虚函数,所以就用析构函数比较
2011-12-30 21:35:48
3140
原创 与代码无关
一直很委屈……原本相信爱情,原本以为一心一意的对别人好,就应该扛下所有的委屈与难过……直到有一天,发现她变了;她的回忆里原来的影子不是我,而是别人……她把爱情当成了游戏,而我太认真……她只是想找个人帮帮她,永远都是以她为中心,别人没有什么感受。她要的不是爱情,不是相互的关心彼此,她只是在想着每天都有人追她,每天都是别人的付出……或许她曾经喜欢过我,或许是我认为她曾经喜欢过我而已
2011-12-21 13:40:47
754
转载 do{}while(false)
看代码时,发现奇怪的写法。do{}while(false);觉得有点奇怪,网上查了一下,做个记录。多向高手学习。 // setup int status = 0; do { // preconditions status = doSomething(); if (status) break; status = doSomethingElse(); if
2011-12-16 15:16:55
979
原创 DOMtree简介
很早就听过大名鼎鼎的DOMTree,但一直不知道这是何物。今天查了下wiki,这里对它做个小说明。算是读书笔记吧。 1.重点1 The Document Object Model (DOM) is across-platform andlanguage-independent convention for representing and intera
2011-12-01 22:14:17
2593
原创 写Spider中遇到的问题
1.静态成员变量定义问题: 在类中声明了静态成员变量,必须在相应的Cpp中定义。因为一般成员变量是在定义类的时候分配空间的,而静态成员变量在没有定义类之前,即可以使用;所以要找个地方分配空间给他。 2. 模板函数声明和定义(.h和.cpp)要放在一起(一个.h)问题 如果分开写,编译器会在链接的时候出错。这是因为在编译模板类的定义.obj时候,还不知道模板元素T的类型,所
2011-11-30 20:18:41
858
原创 int的取值范围
以前习惯了看书,然后发现int的取值范围应该是-32768到32767,unsigned int的取值0到65535。 今天写larbin,突然发现他居然用了size_t存储64000000/8,写程序测试,发现居然能通过。 原来上面那个数据是16位机的范围,书过时了,知识也过时了。。。。勉励一下。 unsigned int是一个字节,在32位机上位0x0-----0x
2011-11-18 10:18:24
14370
原创 [linux程序设计笔记]第7章:数据管理(省略了后面的数据库那个)
数据管理A 内存: 1. 内存的分配: (void *) malloc(size_t size) size_t在32位机上被解释为unsiged int,size是分配的内存大小(按字节算)。 返回的是空指针。你可以用任意方式操作这段内存。接收变量会记录其首地址,并规定操作方式。 如: char * s; s=(ch
2011-11-08 10:22:12
849
原创 [Linux程序设计笔记]第12章:管道
管道:完成两个进程间的通讯(数据流)。 如shell中的: cmd1 | cmd21. 程序与shell(或其他程序)之间通讯:[命令可以是启动其他进程的命令] #include FILE * popen(const char * comand, const char *open_mode); int pclose(FILE * str
2011-11-08 10:19:23
674
原创 [Linux程序设计笔记]14章:套接字Socket
A 套接字:socket用于本机的两个程序通讯或者两个在不同机器上的进程通讯。 1.创建套接字 int socket(int domian, int type, int protocol); 头文件:#include #include domian : 域,包括AF_
2011-11-08 10:15:53
1079
原创 关于程序可移植性的问题
《linux程序设计》最后一部分提到了关于程序的可移植性问题,这里做一下总结。 可移植性是针对编译器、操作系统和硬件三个层次来说的。一般如果一个工程有特定依赖于某种系统的代码,则应该设计为独立的部分。 1.从程序的角度看,主要是注意limits.h里面设置的最大值。 2. 从硬件的角度看,主要是注意数据长度,字节顺
2011-11-03 22:03:43
1888
原创 [笔试题]struct内存对齐
结构体的内存对齐实际上是硬件工程师的事,但是由于笔试经常考,而且我们在实际项目中由于设置的对齐方式不对曾经导致过在不同机器上不能移植的问题。所以有必要了解一下。 1.为什么需要内存对齐:因为计算机一次处理数据的单元不是字节,而是块。(即1 2 4 8 16字节) 2.struct是怎样进行内存布局的; 总体来说就是,某一中类型要在其尺寸
2011-11-03 21:21:21
1239
原创 [笔试题] 如何判断主机是大端还是小端(字节序)
今天看《linux程序设计》中关于跨平台需要注意的事项,看到了大端小端的问题。突然想起实验室一同学的笔试题,如何判断主机的大端还是小端。 所谓大端就是指高位值在内存中放低位地址,所谓小端是指低位值在内存中放低位地址。比如0x12345678在大端机上是12345678,在小端机上是78564312,而一个主机是大端还是小端要看cpu类型以及运行在上面的操作系统。同一款cpu在不同
2011-11-03 20:32:51
13178
1
原创 Larbin: Webserver
花了一个月,没有搞完Larbin,实在不应该。检讨一下。尽快搞完吧!Webserver: 在主程序中,以线程的方式启动,得到爬虫的运行状态。 startWebserver : 线程入口程序,完成socket的相关工作,并且监听80端口。 当有数据包到来的时候,调用manageAns进行响应。 readR
2011-11-02 11:26:53
1233
原创 傻宝宝论坛:头文件和cpp文件
一个工程往往有头文件和cpp文件。那么什么是头文件,什么是include函数呢,我这里解释一下。 先看一段代码: #includeusing namespace std;void main(){ printA(); printB();}void printA(){ print('A');}void printB()
2011-10-28 10:52:13
1310
原创 Larbin:hashDup
hashDup: 功能:对于内容判重。hashTable是对URL判重。即文件内容相同的同一html,并不爬取两次,即便他们的url不同。 实现: hashDup :构造函数,建立hash表;包括建立空表和导入已建立的表。 ~hashDup : 析构函数,删除表。 testSet : 测试某个文件是否已经在hashTable中。
2011-10-27 16:49:19
728
原创 Larbin中涉及的HTML知识,以及强烈推荐的一个网站
:链接一个外部样式表。 样式表:用来进行网页风格设计的。比如,如果想让链接字未点击时是蓝色的,当鼠标移上去后字变成红色的且有下划线,这就是一种风格。 参数: href : 定义被链接文档的位置。 rel : 定义当前文档与被链接文档之间的关系。 type :
2011-10-21 18:16:15
1070
转载 HTML标签详解
-- HTML标签详解HTML指令详解结构<html><head><title>标题<title></head><body>..........文件内容..........</body></html>1.文件标题<title>..........</title>2.文件更新--<meta>【1】10秒后自动更新一次<meta http-equ
2011-10-21 10:50:55
773
1
原创 Larbin:Vector
Vector: 自己提供一个vector模板。 Vector (uint size):构造函数,初始化参数,并产生实际的空间。 ~Vector () :析构函数,删除每个节点的元素,删除表。 recycle ():循环,删除每个节点的元素,不删除表,将pos设置为0; addElement (T *elt):添加元素,数组动态扩展 operator
2011-10-21 10:49:40
546
原创 Larbin:checker
1.check: 功能:测试url是否已经在hashTable中,不在则加入相应的队列。 实现:如果不在,则hash数量加1。 如果是SpecificSearch,则判断文件是否是感兴趣的类型 是的话则加入URLsPriority这个同步队列中; 不是的话,则加入URLsDisk这个持久化的队
2011-10-21 10:48:10
702
转载 Larbin[1]hashtable checker 源代码分析
昨天看Larbin源代码,觉得Larbin根本没有用bloom filter算法,他只hash了一次。不过他的按位保存的那段代码还是蛮精辟的。今天上网,发现了这位仁兄的博客,他也觉得Larbin没有用bloom Filter算法,而且他的blog对Larbin的重要之处都做了解释。现在转载过来。 原文出处是:http://quweiprotoss.blog.163.com/blog/static
2011-10-20 09:50:10
1062
原创 Larbin:hashTable
hashTable:尽可能不爬两次同一url,判重。 size:尺寸。 table:char* 类型,实际存值的地方。 hashTable:建立hash表,并初始化。如果标志显示从文件中载入,则初始的hashTable从文件中载入,否则hashTable初值为0.hashTable的类型是char型。 ~hashTable:删除hash表。 sav
2011-10-19 22:17:53
840
原创 Larbin:String.cc和String.h
1.成员变量: chaine:保存字符串本身; size:当前字符串允许的长度(动态扩展) pos:当前字符串的实际长度2.成员函数: LarbinString():新建长度为默认长度的字符串,内容为空。 ~LarbinStr
2011-10-17 15:19:49
1303
原创 Larbin:text.cc和text.h
LowerCase: 统一转为小写字母;StartWith:字符串b是否是以字符串a开头。startWithIgnoreCase:字符串b是否是以字符串a开头,忽略大小写。robotsMatch:字符串b是否被模式a禁止。robots.txt在服务器端的根目录下,其声
2011-10-17 14:45:23
1032
转载 robots.txt的格式
在国内,网站管理者似乎对robots.txt并没有引起多大重视,应一些朋友之请求,今天想通过这篇文章来简单谈一下robots.txt的写作。robots.txt基本介绍robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访
2011-10-17 10:07:47
827
原创 Larbin源码分析:Url.cc
Url.cc主要功能是对url进行分析,提取出相应的host、port、file,并对file进行规格化。这里还涉及了Cookies的机制,关于Cookies,我还不是很熟。所以要继续努力。 fileNormalize: 将从url中提取出来的文件名规格化:
2011-10-17 09:28:18
2572
原创 Larbin小技巧:将字符变为小写,如果本身是小写字母,则保持不变。
看Larbin写代码,总是能学到很多蛮有意思的东西。Larbin中区分大小写的比较是StartWith,不区分大小写的比较式StartWithIgnoCase。这里他用了一个统一的方法,将一个字符变为小写。由于A=65,a=97;所以 b[i] | 32 一定会是小写字母,不
2011-10-16 21:07:02
696
转载 Cookies说明
由于Larbin中用到了Cookies的访问模式(开始看代码的时候觉得有点奇怪,后来才知道是用了cookies),这里查了下Cookies的资料。 Cookies是Web服务端与客户端(典型的是浏览器)交互时彼此传递的一部分内容,内容可以是任意的,但要在允许的长度范
2011-10-16 20:56:43
833
原创 URL格式
URL的标准格式为: 协议://用户名@密码:主机名:端口号/目录/文件名.文件后缀?参数#标志 其中:用户名@密码和端口号(80)以及标志通常被省略。主机名由子域名.域名.顶级域名构成。 所以简化之后的格式是: 协议://主机名/目录/文
2011-10-15 18:54:15
942
原创 Larbin源码赏析:connexion.h 和connexion.cc
connexion在法语中是连线的意思,在global.h中定义了connexion结构体。而connexion.cc和connexio.h则主要是处理文件的写入的问题,主要利用的是write函数这个系统调用来完成的。他不是普通的write,因为他对里面出现的异常做了很好的处理。
2011-10-15 18:21:10
1199
转载 larbin源码分析(一) gloabl文件 Connexion结构
http://www.cppblog.com/jake1036/archive/2011/06/11/148492.html一 本系列主要是分析larbin开源爬虫的源代码,主要思路是先从global文件中的各个重要的结构开始。 1 Connexion
2011-10-15 10:57:48
1060
转载 PageRank
PageRank,网页排名,又称网页级别、Google左侧排名或佩奇排名,是一种由搜索引擎根据网页之间相互的超链接计算的网页排名技术,以Google公司创办人拉里•佩奇(Larry Page)之姓来命名。此技术通常和搜索引擎优化有关,Google用它来体现网页的相关性和重要性
2011-10-15 10:01:19
833
原创 腾讯面试:Linux下如何扫描目录
问题:在linux下,输出某个文件夹下的文件即其子目录,以及子目录下的文件和文件夹。代码如下:#include#include#include#include#include#include#include/*值得注意的是: struct
2011-10-13 09:52:15
786
原创 乔布斯斯坦福演讲
Jobs has gone, and story will continue. In this speech, he told me three stories about his life.The first one he tells me about connecting t
2011-10-10 17:31:30
1925
原创 数据挖掘的基本问题与基本方法
英语不太好,但是还是尽量用英语表达观点。重点地方,加中文注释。(一)数据挖掘基本问题:Data mining is just a research about how to mining the information from huge data. Four kinds
2011-10-10 11:25:49
1035
转载 提取文件夹下的所有文件
问题:如何提取一个文件夹下的所有文件(的名字)解决:系统提供了DIR、dirent 变量, opendir: 函数原型:direct * opendir ( DIR* dir );作用:打开一个目录 cl
2011-10-09 20:53:25
708
原创 Larbin:Fifo.h 的学习
Fifo.h 作用:建立一个非同步的标准队列的数据结构,实现队列的基本操作。(入队、出队、是否为空、队列长度) 实现: 基本实现:通过模板类实现;用T ** tab 存储实际元素,in,out做两个指针,size存储空间大小(不是队列大小
2011-10-09 19:48:44
1092
原创 larbin 编译成功后做什么
larbin编译成功后,有两个主要方向:一是通过相关资料读Larbin的源代码,最终的目的是自己能开发个简单的爬虫;第二个是分析得到的数据,做数据的分析与挖掘。当然,也有人想把这些数据提取出来后,怎么导入数据库。 所有源代码的读法,肯定要用到工具。在windo
2011-10-03 12:06:08
1845
ffmpeg的VS2005工程文件
2011-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人